VeighNa量化社区
你的开源社区量化交易平台 | vn.py | vnpy
Member
avatar
加入于:
帖子: 23
声望: 0

比如说,委托未成交,这种状态会多久推送一次过来?还是说针对一个委托order,永久只会推送一次?
on_order中其它状态推送的时间和频率是如何的?

Super Moderator
avatar
加入于:
帖子: 100
声望: 10

on_order 是 VeighNa 量化平台中用于处理委托状态更新的回调函数。它的触发逻辑和推送频率取决于委托状态的变化以及交易所的推送机制。以下是不同状态下的触发逻辑和推送频率的详细说明:

1. 委托状态更新触发逻辑

on_order 会在以下情况下被触发:

  • 委托提交:当委托首次提交时,状态为 SUBMITTING
  • 委托状态变化:当委托状态发生变化时(如从未成交变为部分成交、全部成交、已撤销或拒单),on_order 会被触发。
  • 交易所推送:交易所会定期推送委托状态更新,具体频率取决于交易所的机制。

2. 不同状态的推送频率

  • 未成交(NOTTRADED)

    • 交易所通常会定期推送未成交委托的状态更新,频率可能为几秒到几分钟不等,具体取决于交易所的规则。
    • 如果委托长时间未成交,交易所可能会持续推送未成交状态,直到委托状态发生变化。
  • 部分成交(PARTTRADED)

    • 当委托部分成交时,on_order 会立即触发,推送最新的成交数量和剩余未成交数量。
  • 全部成交(ALLTRADED)

    • 当委托全部成交时,on_order 会立即触发,推送最终成交状态。
  • 已撤销(CANCELLED)

    • 当委托被撤销时,on_order 会立即触发,推送撤销状态。
  • 拒单(REJECTED)

    • 当委托被交易所拒绝时,on_order 会立即触发,推送拒单状态。

3. 推送频率总结

  • 永久推送一次:对于某些状态(如全部成交、已撤销、拒单),on_order 通常只会推送一次,因为这些状态是委托的最终状态。
  • 定期推送:对于未成交和部分成交状态,交易所会定期推送更新,频率取决于交易所的机制。

4. 注意事项

  • 实时性on_order 的触发依赖于交易所的推送机制,因此可能存在一定的延迟。
  • 状态管理:在策略中,可以通过 order.status 字段判断当前委托状态,并根据状态执行相应的逻辑。

总结来说,on_order 的触发逻辑和推送频率与委托状态的变化密切相关,未成交状态会定期推送,而最终状态(如全部成交、已撤销、拒单)通常只会推送一次。

© 2015-2022 上海韦纳软件科技有限公司
备案服务号:沪ICP备18006526号

沪公网安备 31011502017034号

【用户协议】
【隐私政策】
【免责条款】