🚀 AI 一键生成 ptrade 策略代码

ptrade 平台中 get_orders 和 get_all_orders 接口有什么区别?

ptrade | 发布时间: 2026/5/25
以下内容由 EasyQuant 生成。

问题描述

get_orders接口和get_all_orders接口分别会获取哪些订单?有什么区别?

/

解决方案

在 ptrade 量化交易平台中,get_ordersget_all_orders 都是用于查询订单信息的接口,但它们在查询范围返回数据类型以及**后续操作(如撤单)**上存在显著区别。

1. get_orders 接口

  • 功能说明:用于获取策略内所有订单,或按条件获取指定标的的订单。
  • 获取范围:仅限于当前运行的策略代码所产生的订单,包括待报、未报等各种状态的订单。
  • 返回类型:返回一个 list,列表中包含多个 Order 对象 (list[Order,...])。
  • 撤单方式:获取到的 Order 对象或其 id 可以直接传递给 cancel_order(order_param) 接口进行撤单。

2. get_all_orders 接口

  • 功能说明:用于获取账户当日所有订单,或按条件获取指定代码的订单。
  • 获取范围:包含账户当日在柜台的全部委托记录,不仅包括当前策略产生的订单,还包括**非本交易(如其他策略、手动下单等)**产生的订单记录。注意:不能查询策略中待报、未报状态的委托。
  • 返回类型:返回一个 list,列表中包含多条订单记录的字典 (list[dict, ...])。字典包含如 symbolentrust_noamountstatus 等字段。
  • 撤单方式:该接口返回的可撤委托,仅可通过 cancel_order_ex(order_param) 函数进行撤单。非本交易的委托进行撤单,也仅可通过本函数查询委托状态更新。

总结对比

特性 get_orders get_all_orders
查询范围 仅当前策略内产生的订单 账户当日所有订单(含其他策略及手动下单)
能否查询待报/未报 不能
返回数据类型 list[Order] (Order 对象列表) list[dict] (字典列表)
对应撤单接口 cancel_order() cancel_order_ex()

使用建议

  • 如果您只需要管理当前策略自己下的单,使用 get_orders 即可,配合 cancel_order 撤单非常方便。
  • 如果您需要监控整个账户的委托情况,或者需要撤销非当前策略下的单,则必须使用 get_all_orders,并配合 cancel_order_ex 进行撤单操作。