跳转到内容

智能订单重新提交

Maintain and resubmit orders when connection is restored 的意思是:连接中断期间收到的订单,在连接恢复后是否由 TWS 自动维护或重新提交。

官方位置:

Global Configuration / 全局配置 -> API -> Settings / 设置

官方文档说明:

  • TWS 10.28 及以上,该设置默认启用。
  • TWS / IB Gateway 10.40 开始,API 设置里提供 Maintain and resubmit orders when connection is restored
  • 如果 TWS 在断线期间被关闭,订单会被删除,不会因为该设置而保留。

这个设置只处理“连接恢复后 TWS 是否帮你维护或重新提交订单”。
它不是完整的订单容灾系统。

程序仍然应该在重连后主动同步:

  • 未完成订单。
  • 订单状态。
  • 成交记录。
  • 持仓变化。

自动重新提交可能带来行为不确定性。尤其是网络刚恢复、价格快速变化、策略状态已经改变时,程序必须确认订单是否还符合策略意图。

连接恢复后,不要只依赖本地内存里的订单状态。建议按顺序处理:

步骤目的
等待新的 nextValidId()确认 API 会话恢复。
请求 open orders获取仍在市场中的订单。
请求 executions获取断线期间可能已经成交的记录。
刷新 positions用实际持仓校验策略状态。
判断是否撤单或补单先确认市场和账户状态,再决定动作。

如果程序在断线前已经发出订单,但没有收到最终状态,恢复后必须用 TWS 返回的订单状态和成交记录作为准,不要凭“本地以为已经提交成功”继续下一个动作。

官方文档说明,该设置在 TWS 10.28 及以上默认启用;从 TWS / IB Gateway 10.40 开始,API 设置页提供该选项。