如何在QMT中实现双均线趋势策略:完整代码与回测
发布时间:2026-5-18 15:26阅读:663

双均线策略是量化入门的经典例子,代码简单且逻辑清晰。本文用QMT的Python API完整实现一个双均线趋势策略,并讲解回测步骤。
策略逻辑:当短周期均线(如5日)上穿长周期均线(如20日)时全仓买入;当短周期均线下穿长周期均线时清仓卖出。不加止盈止损,让趋势自然发展。
代码实现(QMT环境):
`python
def init(context):
设置股票代码
context.stock = '000001.SZ'
设置均线周期
context.short = 5
context.long = 20
设置持仓标志
context.hold = False
def handle_bar(context, bar_dict):
获取收盘价序列,至少需要long+1天
prices = history_bars(context.stock, context.long+10, '1d', 'close')
if len(prices) < context.long:
return
计算均线
ma_short = sum(prices[-context.short:]) / context.short
ma_long = sum(prices[-context.long:]) / context.long
金叉买入
if ma_short > ma_long and not context.hold:
order_target_percent(context.stock, 1) # 全仓
context.hold = True
log_info(f"金叉买入 {context.stock}")
死叉卖出
elif ma_short < ma_long and context.hold:
order_target_percent(context.stock, 0)
context.hold = False
log_info(f"死叉卖出 {context.stock}")
`
回测设置:选择时间段2020-2025年,初始资金10万,手续费佣金万1.5、滑点0.01%。回测结果通常显示年化收益10-20%,最大回撤15-30%,具体取决于标的和参数。
优化方向:加入20日成交量均线过滤(成交量大于均值才开仓);加入移动止损;使用多股票轮动。
在QMT中运行回测前,务必检查数据完整性。回测后导出交易明细,分析每笔盈亏,观察在震荡市中的连续亏损次数,评估心理承受能力。策略优化时,注意不要过拟合。
国金证券的QMT支持上述代码直接运行,10万资金即可开通实盘权限。同时,两融全线上办理,可将双均线策略用于信用账户,但注意融资利息会增加成本。量化社群中有更高级的双均线策略变种,如自适应均线、均线斜率过滤等。
温馨提示:投资有风险,选择需谨慎。
-
8月可转债强赎密集来袭!最后转股日汇总,手里有的赶紧看
2026-08-24 11:33
-
2026年开户选长城证券、华泰证券还是中金财富好?
2026-08-24 11:33
-
公积金新规9月20日实施!房租提取不卡比例,装修物业费也能提
2026-08-24 11:33


问一问

+微信
分享该文章
