如何在QMT中实现双均线趋势策略:完整代码与回测
发布时间:15小时前阅读:11

双均线策略是量化入门的经典例子,代码简单且逻辑清晰。本文用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万资金即可开通实盘权限。同时,两融全线上办理,可将双均线策略用于信用账户,但注意融资利息会增加成本。量化社群中有更高级的双均线策略变种,如自适应均线、均线斜率过滤等。
温馨提示:投资有风险,选择需谨慎。
-
国常会力挺“六张网”,利好哪些板块?普通人如何稳健布局?
2026-05-18 15:52
-
REITs打新: 风电项目 ⌈中核新能⌋ 今日发售!点击领取认购操作指南~
2026-05-18 15:52
-
华泰AI涨乐APP超实用提示词分享,直接复制使用~
2026-05-18 15:52


问一问

+微信
分享该文章
