聚宽转 QMT:生命周期、后缀、定时对不上
聚宽策略回测能跑,整段贴进 QMT 两天就歪,多半不是信号写错,是底层对不上。下面按优先级改。不构成投资建议,不代操盘。
手册:handlebar · run_time · passorder · .SS / .SH
若你不想重写整套策略,只想让聚宽模拟盘的 order 在本机 QMT 执行,走 信号同步,不必先整段迁移。
1. 生命周期不是换个函数名
| 聚宽 | QMT |
|---|---|
initialize(context) | init(ContextInfo) |
handle_data(context, data) | handlebar(ContextInfo)(按 K 线) |
| 盘中定时 | run_time / schedule_run(回测不进) |
python
#coding:gbk
def init(C):
C.set_account(account) # 交易界面会注入 account
def handlebar(C):
if not C.is_last_bar():
return
# 原来写在 handle_data 里的逻辑,挪到这里
pass源码第一行建议 #coding:gbk。见 运行机制对比。
2. 上交所后缀:.XSHG → .SH
| 场景 | 聚宽 | QMT |
|---|---|---|
| 上交所 | 600000.XSHG | 600000.SH |
| 深交所 | 000001.XSHE | 000001.SZ |
取行情、下单、持仓比对走同一套后缀。和 PTrade 的 .SS 也不要混,见 .SS / .SH。
3. 定时:run_time 回测看不到
聚宽里「每天 9:31 跑一次」很常见。QMT 里若写成 run_time,回测日志不会进,只有盘中运行才触发。要回测,把条件写进 handlebar,用 K 线时间或日期戳卡住。详见 run_time 回测不跑。
4. 下单:order → passorder
QMT 综合下单用 passorder。返回值只表示「发出去了」,不等于成交。状态走 order_callback / deal_callback。
5. 想先出一版骨架再改
可用 AI 量化代码 做「聚宽 → QMT」转换:按本站手册检索后再出结构。出的是骨架,要自己对账户和回测。
相关:聚宽转 PTrade · 通达信放到 QMT · API 查询
