聚宽策略如何连接QMT实盘?完整链路与注意事项
解释聚宽产生信号、服务器接收与校验、QMT客户端拉取并执行订单的完整自动交易链路。
为什么要分两段
聚宽跑在云端,你的 QMT 跑在自己电脑上。云端和本地之间没有直连通道,中间必须有一个「信号中转」:
聚宽把信号推给中转站,中转站排队、校验、留痕,QMT 侧再主动拉取并执行。
完整链路
- 聚宽策略在模拟/实盘环境下产生信号。
- 接入代码把信号 POST 到中转站,带策略名、标的、方向、数量、幂等键。
- 中转站做风控校验(时段、价格笼子、金额、笔数),通过后入队。
- QMT 跟单策略按固定间隔来「领」待处理信号(领取时会写下 90 秒租约),在本地下单。
- QMT 侧回写成交回报,服务端关闭租约、更新状态,工作台实时展示。
关键设计:回测不能被影响
同一份策略代码既要能回测、又要能实盘,这是最基本的要求。
判断当前运行环境的依据是聚宽提供的运行参数:回测(simple_backtest / full_backtest)必须完全跳过、不推送任何信号;模拟(sim_trade)与实盘(live_trade)才推送。判断不了时宁可跳过,也不要误推。
第二道保险:信号新鲜度
即便判断逻辑出错,回测信号携带的是历史时间戳。
服务端只要拒绝「时间戳落后超过阈值」的信号,回测信号就永远进不了实盘队列。这是低成本、高收益的一道防线,强烈建议开启。
注意事项
- 接入代码要粘在策略代码最前面,确保下单函数被接管发生在策略定义之前。
- 推送失败必须只打日志、绝不打断策略主流程。
- 幂等键要包含标的与分钟级时间,避免重连导致同一逻辑信号被重复执行。
- 联调阶段先把 QMT 跟单策略的「空跑模式」保持为【是】(只写日志、不报单),用真实链路确认信号能到、能回报;要验证真实报单,再用模拟账号把空跑模式改成【否】并配合「测试模式」固定小数量。
