迅投QMT交易系统 延迟 委托/成交/持仓/账号信息延迟 get_trade_detail_data延迟

很多朋友问过我,为什么感觉迅投的QMT有延迟:

  1. 委托order数据延迟,order_callback()
  2. 成交deal数据延迟, deal_callback()
  3. 持仓position数据延迟, position_callback()
  4. 账号account数据延迟, account_callback()

第一类原因:

官方给的提示如下:

委托/成交/持仓/账号信息的更新, 是在客户端后台进行的, python策略中无法手动控制。

解释如下:
python提供的取账号信息接口 get_trade_detail_data, 与四种交易回调函数(order_callback, deal_callback, position_callback等等), 都是从客户端本地缓存中读取数据 / 触发调用,不是调用时查询柜台再返回。

客户端本地缓存状态定期接收柜台推送刷新,有交易主推的柜台50ms一次,没有交易主推的柜台1-6秒一次。

不能认为get_trade_detail_data查到的状态是与柜台完全一致的, 比如卖出委托后立刻查询, 不会查到对应委托, 可用资金也不会变多。

实盘策略需要设计盘中保存/更新委托状态的机制。常见的做法是用全局变量字典保存委托状态, 给每一笔委托独立的投资备注作为字典的key,委托状态作为字典的value, 下单后默认设置为待报, 之后查到委托后更新状态。如果某品种股票存在待报状态委托, 暂停该品种后续报单, 防止发生超单的情况。(实现可以参考实盘示例7-调整至目标持仓Demo)

简单来说:
不同的券商下的QMT交易系统推送频率不同。从券商向你的QMT软件,有的券商50ms推送一次交易信息,有的是1-6秒才会推送一次信息。也就是说,你如果感觉到延迟,需要问你的券商,问他们所给你提供的QMT交易系统,是多久推送一次。如果是1-6秒,你肯定会感觉有延迟的。

推送之后,你的QMT软件,才会知道最新的信息,然后相应的给你各种callback。当然你自己使用get_trade_detail_data也是从你本地的QMT软件获取的信息,无法直接从券商那边直接获取信息,只能等券商那边给你的QMT软件推送最新的信息之后,你才能get到最新信息。

第二类原因

就是你自己要在QMT软件右下角那块看行情/交易连接的延迟,正常是ms级的延迟,如果你在连接行情/交易服务器处就有很大的延迟,就可能是因为你的宽带连接质量不高,或者网速比较慢等原因。可以通过换成手机热点、换宽带等等各种方式排查一下,看看是不是用了其他的网络就能变好。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值