如何让 QMT 在运行 Python 策略时实现高效调试
发布时间:14小时前阅读:4
策略写完点运行,界面一片安静,既没有报错也没有成交,这是新手用 QMT 最常见的卡点。问题往往不在代码逻辑,而在调试方式不对:QMT 的策略跑在它自己的 Python 环境里,你习惯的打印输出和断点,默认并不会按你想的方式出现。
先搞清三个层次。第一层是编辑器的语法检查,只查语法不查逻辑;第二层是策略回测里的日志窗口,能看到每根 K 线的执行输出;第三层是实盘运行的日志文件,写在安装目录的 userdata 下面。大部分人的错误是只在第一层通过就上了实盘,出问题又不知道去哪看日志。
高效调试有四个具体做法。
第一,把 print 换成写文件。QMT 的实盘进程不保证控制台可见,最稳的办法是每根 K 线把关键变量追加写到一个文本文件,跑完再翻。变量包括当前时间、标的、信号值、下单数量、账户可用资金,五行够用。
第二,用 try 包住下单函数。下单失败最常见的不是策略错,是资金不足、标的停牌、涨跌停无法成交,异常被吞掉后策略继续跑,看起来就是「信号有、单没有」。捕获异常并记录返回信息,一眼就能分辨。
第三,先跑单标的、单条件的最简版本。把选股、择时、风控全部砍掉,只留一条「满足条件就买一手」,确认这条链路通了,再逐个加回模块。很多人一上来就跑完整策略,出错时无法判断是哪一段。
第四,固定一份可复现的参数。把参数写在文件顶部,每次改动记录一行注释,回测和实盘用同一份。QMT 里手动改的参数有时不会回写到代码,第二天重新加载就失效,这是很多「昨天还好好的」的真相。
判断标准很简单:如果一段策略你不能在五分钟内说清它上一次为什么没下单,那它还没到可以放实盘的程度。先让日志说话,再谈优化。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
