數據格式
WebSocket 交易推送使用 JSON 消息。每條推送消息對應一個交易事件,客戶端應先按 event_type 字段區分事件類型,再解析 order_info 和 fill_infos 等具體字段。
INFO
交易事件中的數值字段(如價格、數量)均以字符串類型傳輸,以避免浮點精度問題。時間字段使用微秒時間戳(Unix 微秒)。解析時請按字段說明做類型處理,未知字段建議忽略以保持向前兼容。
消息結構
每條推送消息的頂層為一個 TradeEvent 對象:
json
{
"event_id": "a1b2c3d4-e5f6-7890-abcd-ef1234567890",
"event_type": "EVENT_FILL",
"event_time_us": 1751433600000000,
"user_info": {
"uid": 123456789,
"acc_id": 987654321098765432
},
"order_info": {
"order_id": "ORDER_001",
"side": "BUY",
"order_type": "LIMIT",
"order_status": "FILLED_ALL",
"code": "US.AAPL",
"stock_name": "Apple Inc.",
"security_type": "STOCK",
"qty": "100",
"price": "180",
"currency": "USD",
"create_time": 1751433500000000,
"updated_time": 1751433600000000,
"dealt_qty": "100",
"dealt_avg_price": "179.98",
"time_in_force": "DAY",
"session": "RTH"
},
"fill_infos": [
{
"side": "BUY",
"deal_id": "DEAL_001",
"order_id": "ORDER_001",
"code": "US.AAPL",
"stock_name": "Apple Inc.",
"qty": "100",
"price": "179.98",
"create_time": 1751433600000000,
"updated_time": 1751433600000000,
"status": "OK"
}
]
}TradeEvent 頂層字段
| 字段 | 類型 | 說明 |
|---|---|---|
event_id | string | 事件唯一 ID(UUID),可用於客戶端冪等處理。 |
event_type | string | 事件類型,詳見下方事件類型說明。 |
event_time_us | integer | 事件發生時間,Unix 微秒時間戳。 |
user_info | object | 用戶信息,詳見 user_info 字段。 |
order_info | object | 訂單信息,詳見 order_info 字段。 |
fill_infos | object[] | 成交信息列表,詳見 fill_infos 字段。僅在 EVENT_FILL、EVENT_FILL_CORRECT、EVENT_FILL_CANCEL 事件中有值,其他事件該字段為空數組。 |
事件類型
event_type 字段的可選值:
| 值 | 說明 |
|---|---|
EVENT_NEW | 下單成功事件。訂單已被交易所或系統受理。 |
EVENT_REPLACED | 改單成功事件。訂單價格或數量已修改。 |
EVENT_CANCELED | 撤單成功事件。訂單已被撤銷。 |
EVENT_EXPIRED | 訂單過期事件。訂單因有效期到期被系統撤銷。 |
EVENT_FILL | 成交事件。fill_infos 包含本次成交明細,可能為部分成交或全部成交。 |
EVENT_NEW_REJECTED | 下單失敗事件。訂單被拒絕,拒絕原因見 last_err_msg。 |
EVENT_REPLACE_REJECTED | 改單失敗事件。改單請求被拒絕,拒絕原因見 last_err_msg。 |
EVENT_CANCEL_REJECTED | 撤單失敗事件。撤單請求被拒絕,拒絕原因見 last_err_msg。 |
EVENT_FILL_CORRECT | 成交修正事件。已有成交信息被更正,fill_infos 包含更正後的成交明細,對應成交的 status 為 CHANGED。 |
EVENT_FILL_CANCEL | 成交撤銷事件。已有成交被系統撤銷,fill_infos 中對應成交的 status 為 CANCELLED。 |
user_info 字段
| 字段 | 類型 | 說明 |
|---|---|---|
uid | integer | 用戶 ID(nnid)。 |
acc_id | integer | 長業務賬號 ID。如果同一用戶持有多個交易賬戶,可通過該字段區分事件來源賬戶。 |
order_info 字段
| 字段 | 類型 | 說明 |
|---|---|---|
order_id | string | 訂單 ID。 |
side | string | 交易方向,見 trd_side。 |
order_type | string | 訂單類型,見 order_type。 |
order_status | string | 訂單狀態,見 order_status。 |
code | string | 證券代碼,格式為 {exchange}.{symbol},例如 US.AAPL、SEHK.00700。 |
stock_name | string | 證券名稱。 |
security_type | string | 品類,見 security_type。 |
qty | string | 訂單數量。 |
price | string | 訂單價格。市價單可能為空。 |
currency | string | 交易貨幣,見 currency。 |
create_time | integer | 訂單創建時間,Unix 微秒時間戳。 |
updated_time | integer | 訂單最後更新時間,Unix 微秒時間戳。 |
dealt_qty | string | 已成交數量。 |
dealt_avg_price | string | 平均成交價格。未成交時為空。 |
last_err_msg | string | 最近一次失敗描述。僅在 EVENT_NEW_REJECTED、EVENT_REPLACE_REJECTED、EVENT_CANCEL_REJECTED 等失敗事件中有值。 |
remark | string | 下單時填寫的備注。 |
time_in_force | string | 有效期類型,見 time_in_force。 |
session | string | 交易時段,見 trading_session。 |
aux_price | string | 條件單觸發價。僅適用於 STOP、STOP_LIMIT、MARKET_IF_TOUCHED、LIMIT_IF_TOUCHED 等條件單類型。 |
trail_type | string | 跟蹤止損類型,見 trail_type。僅適用於 TRAILING_STOP、TRAILING_STOP_LIMIT 類型。 |
trail_value | string | 跟蹤金額或比例。僅適用於跟蹤止損類型。 |
trail_spread | string | 指定價差。僅適用於 TRAILING_STOP_LIMIT 類型。 |
multi_leg_info | object | 多腿訂單信息,詳見 multi_leg_info 字段。僅適用於多腿期權訂單(security_type 為 MULTILEG_OPTION)。 |
fill_infos 字段
| 字段 | 類型 | 說明 |
|---|---|---|
side | string | 交易方向,見 trd_side。 |
deal_id | string | 成交 ID。最長不超過 32 字符的 Base58 編碼,大小寫敏感。 |
order_id | string | 訂單 ID,與 order_info.order_id 對應。 |
code | string | 證券代碼,格式為 {exchange}.{symbol}。 |
stock_name | string | 證券名稱。 |
qty | string | 成交數量。 |
price | string | 成交價格。 |
create_time | integer | 成交創建時間,Unix 微秒時間戳。 |
updated_time | integer | 成交最後更新時間,Unix 微秒時間戳。 |
counter_broker_id | integer | 對手方券商編號。 |
counter_broker_name | string | 對手方券商名稱。 |
status | string | 成交狀態,見 deal_status。 |
multi_leg_info 字段
多腿期權訂單的附加信息,僅在 order_info.security_type 為 MULTILEG_OPTION 時存在。
| 字段 | 類型 | 說明 |
|---|---|---|
underlying_symbol | string | 底層標的代碼。 |
underlying_stock_name | string | 底層標的名稱。 |
leg_infos | object[] | 各腿訂單信息列表,詳見 leg_infos 字段。 |
leg_infos 字段
多腿期權中單條腿的信息。
| 字段 | 類型 | 說明 |
|---|---|---|
symbol | string | 腿對應的證券代碼。 |
exchange | string | 腿對應的交易所,見 exchange。 |
ratio_qty | string | 最大公約數原則下每條腿的比例。 |
side | string | 腿的交易方向,見 trd_side。 |
security_type | string | 腿對應的證券類型,見 security_type。 |
stock_name | string | 腿對應的證券名稱。 |
hp_multiplier | string | 腿對應的合約乘數。 |
avg_fill_price | string | 腿的平均成交價。 |
兼容性建議
- 按
event_type分發處理:不同事件的fill_infos是否有值差異較大,建議 switch/match 處理。 - 未知字段忽略:服務端可能新增字段,客戶端應保持向前兼容。
- 未知
event_type兼容:記錄日誌後跳過,避免因新增事件類型導致處理異常。 - 數值字段以字符串解析:價格、數量等字段均為字符串,需自行轉換為 Decimal 或 float 處理精度。
- 微秒時間戳:
event_time_us、create_time、updated_time均為 Unix 微秒時間戳,注意與毫秒時間戳區分。