问题描述
解决方案
在 PTrade 量化交易平台中,订单状态码 '7' 代表 部成(部分成交)。
这意味着您的委托单已经成交了一部分数量,但还有剩余数量尚未成交,且剩余部分依然挂在交易所撮合队列中等待成交。
以下是基于 PTrade API 文档整理的完整委托状态和成交/委托方向的代码说明字典。
1. 委托状态 (status)
该字段通常出现在 Order 对象或 get_orders()、get_all_orders() 返回的数据中。
| 状态码 | 含义 | 说明 |
|---|---|---|
| 0 | 未报 | 订单已创建,但尚未发送至柜台或交易所。 |
| 1 | 待报 | 订单正在发送过程中。 |
| 2 | 已报 | 订单已成功报入交易所,正在排队等待撮合。 |
| 3 | 已报待撤 | 已发出撤单请求,正在等待交易所确认撤单。 |
| 4 | 部成待撤 | 订单已部分成交,剩余部分已发出撤单请求,等待确认。 |
| 5 | 部撤 | 订单已部分成交,剩余部分已成功撤销。 |
| 6 | 已撤 | 订单未成交,且已全部撤销。 |
| 7 | 部成 | 订单已部分成交,剩余部分仍在交易队列中等待成交。 |
| 8 | 已成 | 订单已全部成交。 |
| 9 | 废单 | 订单被柜台或交易所拒绝(如资金不足、价格超出涨跌停限制等)。 |
| + | 已受理 | 系统已受理该委托。 |
| - | 已确认 | 委托已确认。 |
| C | 正报 | 正在报送中。 |
| V | 已确认 | 委托已确认。 |
2. 委托方向 (entrust_bs)
该字段用于标识委托单是买入还是卖出,常见于 get_all_orders() 或主推数据中。
| 代码 | 含义 |
|---|---|
| 1 | 买 |
| 2 | 卖 |
3. 成交方向 (business_direction)
该字段通常出现在 Tick 数据 (tick_data) 或逐笔成交数据中,用于描述具体的成交动作方向。
| 代码 | 含义 |
|---|---|
| 0 | 卖 |
| 1 | 买 |
| 2 | 借入 (通常用于融券/转融通) |
| 3 | 出借 (通常用于融券/转融通) |
Q&A
Q: 状态 '7' (部成) 的订单后续会变成什么状态?
A: 状态 '7' 的订单可能会有以下几种后续变化:
- 如果剩余部分全部成交,状态会变为 '8' (已成)。
- 如果您对剩余部分进行了撤单操作并成功,状态会变为 '5' (部撤)。
- 如果收盘后剩余部分仍未成交,交易所会自动撤单,状态通常会更新为 '5' (部撤) 或根据券商逻辑处理。
Q: 如何在代码中判断订单是否已经结束(不再活跃)?
A: 通常认为状态码为 '5' (部撤)、'6' (已撤)、'8' (已成)、'9' (废单) 的订单是终态(Finished),即订单生命周期已结束。而 '2' (已报) 和 '7' (部成) 则是活跃状态,仍有成交的可能。
Q: entrust_bs 和 business_direction 有什么区别?
A: entrust_bs 主要用于描述委托单的属性(你是想买还是想卖);而 business_direction 主要用于描述市场行情或逐笔成交的属性(这一笔撮合是主动买入还是主动卖出,或者是借入/出借行为)。在策略下单查询中,主要关注 entrust_bs。