QMT使用避坑指南!这些坑我替你踩过了
发布时间:13小时前阅读:47
QMT功能强大,但坑也不少。下面把新手最容易踩的坑按严重程度排序,每一条都是血泪教训
坑一:ContextInfo存变量会回滚(最隐蔽!)
QMT底层机制限制:ContextInfo对象中存储的变量值会在每次handlebar调用后被重置(回滚)。
❌ 错误写法:
def init(ContextInfo):
ContextInfo.stock_list = ['000001.SZ']
def handlebar(ContextInfo):
ContextInfo.stock_list.append('600000.SH') # 下次调用时stock_list会回到初始值!
✅ 正确写法:用全局变量类class G():
pass
g = G()
def init(ContextInfo):
g.stock_list = ['000001.SZ']
def handlebar(ContextInfo):
g.stock_list.append('600000.SH') # 正确!
坑二:策略里不能写阻塞代码
QMT所有策略在同一个线程中执行:
❌ 不能写sleep()、死循环、threading、多进程- ❌ 一个策略阻塞→所有策略都被卡住
- ✅ 需要异步/并行→用MiniQMT+xtquant在外部Python跑
坑三:下单是异步的,别指望立刻查到
passorder调用后立刻返回,不等待委托回报:
- 卖出后立刻查可用资金→查不到(还没更新)
- 卖出后立刻查委托→查不到(回报还没推送)
- 客户端本地缓存定期刷新:有交易主推的柜台50ms一次,没有的1-6秒一次
- ✅ 正确做法:用全局变量字典保存委托状态,给每笔委托独立备注作key
坑四:quickTrade参数用错不下单
passorder的quickTrade参数:
- =0(默认):只在K线结束时委托,日线及以上周期等于全天不委托
- =2:运行到立刻发出委托,适合高频
- 很多人写日线策略用默认参数,结果发现"有信号但从不下单"——就是这个问题!
坑五:复权方式差异导致回测失真
QMT用等比复权(乘除法),同花顺等软件多用等差复权(加减法):
- 等差复权可能出现负值,计算涨跌幅不准
- 等比复权可避免负值,但和历史软件显示不一致
- 回测推荐用"等比前复权价",避免除权除息造成信号失真
坑六:模拟盘和实盘模式搞混
QMT策略运行分两种模式:
- 模拟信号模式:只显示买卖信号,不实际发出委托
- 实盘交易模式:信号直接发往交易所,真实成交
- 很多人写完策略直接切实盘,结果"有信号但没成交"——其实是还在模拟模式!
坑七:回测过度拟合
这是策略失效的头号原因:
- ❌ 只测最近1-2年→没经历完整牛熊
- ❌ 参数扫描只取最优组→必然过拟合
- ✅ 建议测至少5年,覆盖牛熊转换
- ✅ 保留样本外数据做最终验证,不参与参数选择
坑八:设备绑定限制
- QMT通常绑定一台设备,换电脑需重新授权
- 没有手机版,需远程桌面查看
- 多地点办公建议用一台主力电脑跑策略,其他设备远程连接
坑九:MiniQMT和标准QMT环境差异
很多人不知道自己用的是哪个:
- 标准QMT:用内置编辑器跑策略,第三方库受限
- MiniQMT:极简客户端只做通道,策略在本地原生Python(VS Code/PyCharm + xtquant)跑,自由度更高但要自己管第三方库
- 登录时看界面有无"极简模式"和"独立交易"选项,判断自己用的是哪个。
坑十:L2行情权限要单独确认
- 部分券商QMT不支持L2行情接口
- 即使支持,通常也需额外付费订阅(交易所版权费)
- 开通前务必问清:"QMT能不能用L2?要不要另付费?"
想避开这些坑少走弯路? 找我协助开通QMT+全程指导,费率优惠+策略答疑~欢迎联系我咨询
温馨提示:投资有风险,选择需谨慎。
-
REITs打新日历:四川成都 ⌈锦江 REIT⌋ 本周四售!(附认购操作指南)
2026-07-27 16:59
-
2026夜市委托怎么操作?个人经验攻略全分享
2026-07-27 16:59
-
新股发行:【展芯股份】+【国仪公司】+【超纯应材】本周可申购!(附打新神器)
2026-07-27 16:59


问一问

+微信
分享该文章
