告别实盘焦虑!历时重构,这款「毫秒级」QMT执行引擎终于来了(附福利)
发布时间:28分钟前阅读:33
回测曲线很顺,一开实盘就卡:信号在九点三十一分零五秒就出来了,委托到零七秒才出去,中间两秒不知道花在哪。这类问题多半不是策略写错,而是执行链路的结构问题。
先说毫秒级到底指哪一段。端到端耗时要拆成五段:行情从柜台到本地、策略收到数据并算完信号、风控检查、报单发到柜台、成交回报回到本地。宣传里说的毫秒通常只指其中一段,而你真正要优化的是整条链路,任何一段堵住,另外四段再快也没用。
重构的思路是把算和发拆开。行情回调里只做入队,不做计算;策略线程从队列取数据算信号;下单走独立的报单线程,绝不和行情回调共用;成交回报再用一个回调更新订单状态。线程之间用有界队列,队列满了要报警,而不是静默丢弃。
订单管理要有状态机:待报、已报、部分成交、全部成交、已撤、废单,每个状态只能按固定路径流转,每笔委托用本地编号和柜台编号做映射。没有状态机,重连之后你根本不知道哪些单还活着。
几个必须做的工程动作:一,心跳和断线重连,重连后第一件事不是继续下单,而是查持仓、查委托做对账;二,全链路打时间戳,行情到达、信号生成、报单发出、回报到达各记一个,输出中位数和尾部耗时,只看平均值会被少数慢单骗过去;三,把重计算移出回调,比如指标预热放在开盘前;四,日志异步写,别让磁盘读写卡住报单线程。
还有一个容易被忽略的成本:策略进程和客户端在同一台机器上会互相抢资源,回测和实盘最好别同时跑,机器上该留的余量要留出来,不然拖慢链路的是你自己的进程在排队,跟网络一点关系都没有。
什么算可以上实盘:在模拟环境连续压一整天,尾部耗时在你设定的容忍范围内,中途人为断网两次,重连后持仓和委托完全对齐、没有重复下单。这两条过不了,谈毫秒没有意义。
股票/量化开户欢迎找我!满足条件股票佣金万0.854、etf 可转债佣金万0.5、国债逆回购一折(百万分之一)!期权1.8元一张全包价!量化软件QMT+ptrade免费使用!还有888、999资金靓号等你选!
温馨提示:投资有风险,选择需谨慎。



问一问
从业认证

+微信
分享该文章
