3 分钟快速生成代码
输入想法,AI 即刻生成可运行代码
在 PTrade 量化交易平台中,on_order_response(委托主推)和 on_trade_response(交易/成交主推)是两个非常重要的异步回调事件。它们的主要作用是在订单状态或成交状态发生变化时,第一时间通知策略,其响应速度比轮询调用 get_orders() 或 get_trades() 更快,非常适合对速度要求较高的高频或微观交易策略。
以下是两者的核心区别及分别处理的信息:
order_list 包含发生变化的委托单列表,每个委托单以字典形式展现,包含以下关键信息:
entrust_no:委托编号status:委托状态(如 '2'已报, '6'已撤, '9'废单等)price / amount:委托价格与委托数量entrust_type / entrust_prop:委托类别与属性error_info:错误信息(如果有)trade_list 包含发生变化的成交单列表,每个成交单以字典形式展现,包含以下关键信息:
business_price:实际成交价格business_amount:实际成交数量business_balance:实际成交金额business_id:成交编号entrust_bs:成交方向(1-买,2-卖)| 特性 | on_order_response (委托主推) |
on_trade_response (交易/成交主推) |
|---|---|---|
| 关注焦点 | 订单的生命周期(报单、撤单、状态流转) | 实际的撮合成交(买到了多少、卖了多少) |
| 触发频率 | 较高(每次状态变更都会触发,如待报->已报) | 仅在发生真实成交(或产生废单结果)时触发 |
| 核心字段 | status, amount (委托量), price (委托价) |
business_amount (成交量), business_price (成交价) |
根据 PTrade 官方文档的提示,对于废单(例如下单价格超过了价格笼子限制),order() 函数依然会返回一个 order_id,此时:
on_order_response(委托回调)中,该订单的状态 status 可能是 '2'(已报)。on_trade_response(成交回调)中,该订单的状态 status 会更新为 '9'(废单)。因此,编写严谨的策略时,不能仅依赖委托主推来判断订单是否有效,必须结合成交主推来确认最终的成交或废单结果。