所有 API 已提交订单
reqAllOpenOrders() 用来查询所有 API 客户端提交的未完成订单。它比 reqOpenOrders() 范围更大,适合订单监控后台和账户级风控程序。
app.reqAllOpenOrders()返回仍然走:
openOrder()orderStatus()openOrderEnd()ALL_OPEN_ORDERS_END=TrueOPEN_ORDER_ROWS=0账户没有 API 客户端范围内的未完成订单时,会返回 0 行并触发结束回调。
如果其它 API 客户端有未完成订单,reqAllOpenOrders() 也可能把它们推送给这个连接。做账户级监控时,这正是它的价值;做单一策略时,则要避免误处理不属于自己的订单。
和 reqOpenOrders 的区别
Section titled “和 reqOpenOrders 的区别”| 接口 | 范围 | 推荐用途 |
|---|---|---|
reqOpenOrders() | 这个 clientId 自己的未完成订单 | 单策略、单程序恢复状态。 |
reqAllOpenOrders() | 所有 API 客户端提交的未完成订单 | 账户级监控、风控后台、统一订单看板。 |
- 保存
clientId,否则你不知道订单来自哪个 API 客户端。 - 保存
permId,方便跨客户端追踪同一个 IBKR 订单。 - 不要让单策略程序默认撤掉
reqAllOpenOrders()看到的全部订单。 - 如果你只想恢复自己的策略订单,优先用
reqOpenOrders(),再结合orderRef做业务过滤。