订单生命周期
本页面描述订单从创建到完成所经历的各个状态,并将其映射到 REST 响应和 WebSocket 通知中返回的数值状态码。
订单状态
┌─────────────┐
┌──────────▸│ INSERTED │──────────────┐
│ │ (status 2) │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ ▼
│ ┌─────────────────┐ ┌──────────────────┐
Place │ │ PARTIALLY │ │ FULLY │
Order │ │ FILLED │ │ TRANSACTED │
│ │ (status 5) │ │ (status 4) │
│ └────────┬───────┘ └──────────────────┘
│ │
│ ▼
│ ┌──────────────────┐
│ │ CANCELLED │
│ │ (status 6) │
│ └──────────────────┘
│
▼
┌──────────────┐ ┌ ──────────────────┐
│ REJECTED │ │ TIMEOUT │
│ (status 15) │ │ (status -1) │
└──────────────┘ └──────────────────┘
状态码
| 状态 | 常量 | 说明 | 是否终态? |
|---|---|---|---|
-1 | TIMEOUT | 请求超时 — 订单可能已下单也可能未下单。请查询订单以确认。 | 否 |
2 | ORDER_INSERTED | 订单已接受并挂在订单簿上 | 否 |
4 | ORDER_FULLY_TRANSACTED | 订单完全成交 | 是 |
5 | ORDER_PARTIALLY_TRANSACTED | 订单部分成交 — 剩余数量仍在挂单 | 否 |
6 | ORDER_CANCELLED | 订单已取消(由用户、系统或到期触发) | 是 |
7 | ORDER_REFUNDED | 订单已退款 | 是 |
8 | INSUFFICIENT_BALANCE | 已拒绝 — 余额不足 | 是 |
9 | TRIGGER_INSERTED | 触发/止损订单已接受 — 等待触发条件 | 否 |
10 | TRIGGER_ACTIVATED | 触发条件已满足 — 订单已转换为限价/市价单 | 否 |
15 | ORDER_REJECTED | 订单被拒绝(参数无效、风险限制等) | 是 |
65 | STATUS_ACTIVE | 订单处于活跃状态 | 否 |
85 | STATUS_PROCESSING | 订单正在处理中 | 否 |
88 | STATUS_INACTIVE | 订单处于非活跃状态 | 是 |
123 | AMEND_ORDER | 订单已成功修改 | 否 |
参见错误代码了解完整的枚举表。
典型流程
限价单 — 完全成交
下单 → status 2 (INSERTED) → status 4 (FULLY_TRANSACTED)
限价单 — 部分成交后取消
下单 → status 2 (INSERTED) → status 5 (PARTIALLY_TRANSACTED)
→ 取消请求 → status 6 (CANCELLED)
市价单 — 立即成交
下单 → status 4 (FULLY_TRANSACTED)
市价单通常会立即成交。您可能不会看到 status 2。
止损/触发订单
下单 → status 9 (TRIGGER_INSERTED)
→ 价格触发 → status 10 (TRIGGER_ACTIVATED)
→ status 2 (INSERTED) → status 4 或 5(成交)
被拒绝的订单
下单 → status 15 (REJECTED) 或 status 8 (INSUFFICIENT_BALANCE)
检查响应中的 message 字段了解拒绝原因。
超时
下单 → status -1 (TIMEOUT)
订单可能已下单也可能未下单。请始终通过 clOrderID 或 orderID 查询订单以确认实际状态。
实时跟踪订单
使用 WebSocket notificationApiV3 主题(现货)或 notificationApiV4 主题(期货)实时接收状态更新:
{
"topic": "notificationApiV3",
"data": {
"symbol": "BTC-USD",
"orderID": "990db9b6-...",
"status": 5,
"filledBaseSize": 0.5,
"totalFilledBaseSize": 0.5,
"remainingBaseSize": 0.5,
"avgFilledPrice": 36000.0
}
}
建议方法:
- 通过 REST 下单 — 保存
orderID - 在
notificationApiV3上监听与您的orderID匹配的状态更新 - 当
status为4(完全成交)或6(已取消)时,订单已达终态
参见 WebSocket 指南了解连接设置,以及快速入门 → 第 4 步获取代码示例。
订单类型代码
这些数值类型代码出现在 orderType 字段中:
| 代码 | 类型 |
|---|---|
76 | 限价单 |
77 | 市价单 |
80 | Peg / 算法订单 |
81 | OTC 订单 |