
前言习惯CTP 原生开发的期货量化者习惯在 OnRtnOrder 里改状态、在 OnRtnTrade 里改持仓。转用天勤TqSdk后常问回报去哪了实际上仍在只是合并进每次wait_update()后的内存对象你用get_order、get_trade读取用is_changing判断本帧是否变了某委托的status。本文帮助国内期货程序化开发者建立CTP 事件 ↔ 天勤对象对照并说明get_order返回字典的用法、刚下单后字段可能为空官方文档提示。不默认你已运行过模拟盘。一、对照表读这张表即可迁移思维CTP 里你等待的事件天勤里常见读法委托状态变化order api.get_order(order_id)is_changing(order, status)成交order.trade_records文档建议优先或get_trade()全部委托orders api.get_order()当 dict 用key 为委托号持仓api.get_position(symbol)行情仍用get_quoteK 线用get_kline_serial其datetime仍由行情服务更新与委托回报无关。二、监控单笔委托示例含义orderapi.get_order(order_id)whileTrue:api.wait_update()ifapi.is_changing(order,status):print(order.status,order.volume_left)order_id来自你insert_order或 task 内部报单返回的标识以实际 API 为准。刚下单后可能各字段仍为空需再等若干次wait_update收到柜台回单。三、在途挂单量官方示例思路ordersapi.get_order()whileTrue:api.wait_update()alive_volsum(o.volume_leftforoid,oinorders.items()ifo.statusALIVE)ALIVE等状态字以你安装的 SDK 文档为准表示仍挂在交易所的委托。不必每 tick 重新get_order()创建新对象首次取得orders引用后靠wait_update更新其内容。四、为何建议优先 trade_records全量get_trade()在活跃交易日数据多每帧扫描费 CPU。查某一委托的成交用该 order 的trade_records更贴切见get_trade文档说明。五、与手写 CTP 并行验证小规模并行CTP 日志打印 order_sys_id天勤打印 oid 与 status做一张映射表团队统一枚举含义避免“CTP 说成交、程序以为未成交”。六、多账户account1.get_order()需在TqMultiAccount模式下指定账户实例文档 Example2。总结期货实盘委托查询在天勤里不是丢回调而是wait_update 后读 get_order/get_trade。用法是持有对象引用 → 每帧 is_changing 过滤 → 需要全量再遍历 dict。与 CTP 对照清晰后策略层可少维护一套全局 order 变量。刚下单字段为空是正常现象继续 wait_update 即可。FAQ1回报会延迟吗取决于网络与主循环是否阻塞 wait_update。2找不到刚下的单核对 order_id、多等几帧、是否连错账户。3TargetPosTask 的单同样 get_order勿混 insert_order。4回测有 order 吗模拟/回测有模拟成交逻辑。风险提示本文讨论接口对照不构成投资建议。