双均线股票策略-股票日频_new
由qxiao创建,最终由qxiao 被浏览 91 用户
策略介绍
双均线策略是一种简单而又广泛使用的技术分析工具,主要用于识别市场趋势的变化和生成交易信号。这种策略涉及两条移动平均线——一条短期(快速)和一条长期(慢速)——并通过观察这两条线的交叉点来决定买入或卖出的时机。
策略流程
- 筛选条件:将5日平均收盘价作为短线,50日平均收盘价作为长线;短线上穿长线买入,长线下穿短线卖出
- 策略回测:开盘买入,收盘卖出,回测时间为2017-11-24至2024-11-24
策略实现
输入特征模块
- 将5日均线作为短线,
m_avg(close, 5) AS _mean_short
;50日均线作为长线,m_avg(close, 50) AS _mean_long
- 过滤条件中筛选股票代码为贵州茅台(600519.SH)
\
数据抽取模块
- 将数据抽取出来,在这当中设置起始时间为2017-11-24,结束时间为2024-11-24
\
BigTrader模块
- 在
m4
”BigTrader“模块中,实现交易逻辑,依据发出信号进行买卖。 - K线处理函数
def bigquant_run(context, data):
import pandas as pd
try:
# 获取当前日期
current_date = data.current_dt.strftime("%Y-%m-%d")
# 获取当日数据
current_day_data = context.data[context.data["date"] == current_date]
if len(current_day_data) == 0:
return
buy_sig = current_day_data['buy_sig'].iloc[0]
sell_sig = current_day_data['sell_sig'].iloc[0]
# 获取当前已持有股票
current_hold_instruments = set(context.get_account_positions().keys())
ins = '600519.SH'
# 若长线大于短线且有持仓
if sell_sig == 1 and ins in current_hold_instruments:
context.order_target(ins, 0)
# 若短线大于长线且没有持仓
if buy_sig == 1 and ins not in current_hold_instruments:
context.order_target_percent(ins, 0.99)
except:
pass
https://bigquant.com/codesharev2/d595093b-482b-4be4-bb43-4a53753bafb4
\