跳转到内容

订单监控

提交订单只是第一步。交易系统还需要持续监控订单是否被接受、部分成交、全部成交、取消或被拒绝。

Client Portal API 的订单监控接口主要用于查询账户的订单状态和近期成交信息。

官方参考:Client Portal API

接口方法用途
/iserver/account/ordersGET查询活动订单。
/iserver/account/order/status/{orderId}GET查询指定订单状态。
/iserver/account/tradesGET查询近期成交。
/iserver/account/ordersGET也常用于刷新订单列表。
Terminal window
curl -k https://localhost:5000/v1/api/iserver/account/orders

返回通常包含订单数组。下面是字段结构示例,订单号、价格和状态以实际返回为准:

{
"orders": [
{
"orderId": "IBKR 订单编号",
"conid": "合约编号",
"ticker": "AAPL",
"status": "Submitted",
"remainingQuantity": "剩余未成交数量",
"filledQuantity": "已成交数量",
"avgPrice": "平均成交价"
}
]
}

字段解释:

字段中文说明
orderIdIBKR 订单编号,用于改单、撤单和状态查询。
conid合约编号。
ticker交易代码。
status订单状态,例如已提交、已成交、已取消等。
remainingQuantity剩余未成交数量。
filledQuantity已成交数量。
avgPrice平均成交价。
Terminal window
curl -k https://localhost:5000/v1/api/iserver/account/trades

成交回报通常用于更新持仓、计算滑点、生成交易日志。程序不要只依赖“提交订单成功”来判断交易完成,应该以成交回报或订单状态为准。

状态类型程序处理
已提交但未成交保持监控,允许撤单或改单。
部分成交更新已成交数量和剩余数量。
全部成交关闭本地订单追踪,写入成交记录。
被取消标记为结束,不再重复撤单。
被拒绝展示错误原因,保留原始返回便于排查。

订单状态接口不是实时推送。轮询过慢会让页面状态滞后,轮询过快可能触发限速。正式系统通常会把轮询、缓存和 WebSocket 通知结合起来。

模拟账户也可能出现订单状态短暂延迟,这是正常现象。