跳到主要内容

订单生命周期

本页面描述订单从创建到完成所经历的各个状态,并将其映射到 REST 响应和 WebSocket 通知中返回的数值状态码。


订单状态

┌─────────────┐
┌──────────▸│ INSERTED │──────────────┐
│ │ (status 2) │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ ▼
│ ┌─────────────────┐ ┌──────────────────┐
Place │ │ PARTIALLY │ │ FULLY │
Order │ │ FILLED │ │ TRANSACTED │
│ │ (status 5) │ │ (status 4) │
│ └────────┬───────┘ └──────────────────┘
│ │
│ ▼
│ ┌──────────────────┐
│ │ CANCELLED │
│ │ (status 6) │
│ └──────────────────┘


┌──────────────┐ ┌──────────────────┐
│ REJECTED │ │ TIMEOUT │
│ (status 15) │ │ (status -1) │
└──────────────┘ └──────────────────┘

状态码

状态常量说明是否终态?
-1TIMEOUT请求超时 — 订单可能已下单也可能未下单。请查询订单以确认。
2ORDER_INSERTED订单已接受并挂在订单簿上
4ORDER_FULLY_TRANSACTED订单完全成交
5ORDER_PARTIALLY_TRANSACTED订单部分成交 — 剩余数量仍在挂单
6ORDER_CANCELLED订单已取消(由用户、系统或到期触发)
7ORDER_REFUNDED订单已退款
8INSUFFICIENT_BALANCE已拒绝 — 余额不足
9TRIGGER_INSERTED触发/止损订单已接受 — 等待触发条件
10TRIGGER_ACTIVATED触发条件已满足 — 订单已转换为限价/市价单
15ORDER_REJECTED订单被拒绝(参数无效、风险限制等)
65STATUS_ACTIVE订单处于活跃状态
85STATUS_PROCESSING订单正在处理中
88STATUS_INACTIVE订单处于非活跃状态
123AMEND_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)

订单可能已下单也可能未下单。请始终通过 clOrderIDorderID 查询订单以确认实际状态。


实时跟踪订单

使用 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
}
}

建议方法:

  1. 通过 REST 下单 — 保存 orderID
  2. notificationApiV3 上监听与您的 orderID 匹配的状态更新
  3. status4(完全成交)或 6(已取消)时,订单已达终态

参见 WebSocket 指南了解连接设置,以及快速入门 → 第 4 步获取代码示例。


订单类型代码

这些数值类型代码出现在 orderType 字段中:

代码类型
76限价单
77市价单
80Peg / 算法订单
81OTC 订单