Skip to content

數據格式

WebSocket 交易推送使用 JSON 消息。每條推送消息對應一個交易事件,客戶端應先按 event_type 字段區分事件類型,再解析 order_infofill_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_idstring事件唯一 ID(UUID),可用於客戶端冪等處理。
event_typestring事件類型,詳見下方事件類型說明。
event_time_usinteger事件發生時間,Unix 微秒時間戳。
user_infoobject用戶信息,詳見 user_info 字段
order_infoobject訂單信息,詳見 order_info 字段
fill_infosobject[]成交信息列表,詳見 fill_infos 字段。僅在 EVENT_FILLEVENT_FILL_CORRECTEVENT_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 包含更正後的成交明細,對應成交的 statusCHANGED
EVENT_FILL_CANCEL成交撤銷事件。已有成交被系統撤銷,fill_infos 中對應成交的 statusCANCELLED

user_info 字段

字段類型說明
uidinteger用戶 ID(nnid)。
acc_idinteger長業務賬號 ID。如果同一用戶持有多個交易賬戶,可通過該字段區分事件來源賬戶。

order_info 字段

字段類型說明
order_idstring訂單 ID。
sidestring交易方向,見 trd_side
order_typestring訂單類型,見 order_type
order_statusstring訂單狀態,見 order_status
codestring證券代碼,格式為 {exchange}.{symbol},例如 US.AAPLSEHK.00700
stock_namestring證券名稱。
security_typestring品類,見 security_type
qtystring訂單數量。
pricestring訂單價格。市價單可能為空。
currencystring交易貨幣,見 currency
create_timeinteger訂單創建時間,Unix 微秒時間戳。
updated_timeinteger訂單最後更新時間,Unix 微秒時間戳。
dealt_qtystring已成交數量。
dealt_avg_pricestring平均成交價格。未成交時為空。
last_err_msgstring最近一次失敗描述。僅在 EVENT_NEW_REJECTEDEVENT_REPLACE_REJECTEDEVENT_CANCEL_REJECTED 等失敗事件中有值。
remarkstring下單時填寫的備注。
time_in_forcestring有效期類型,見 time_in_force
sessionstring交易時段,見 trading_session
aux_pricestring條件單觸發價。僅適用於 STOPSTOP_LIMITMARKET_IF_TOUCHEDLIMIT_IF_TOUCHED 等條件單類型。
trail_typestring跟蹤止損類型,見 trail_type。僅適用於 TRAILING_STOPTRAILING_STOP_LIMIT 類型。
trail_valuestring跟蹤金額或比例。僅適用於跟蹤止損類型。
trail_spreadstring指定價差。僅適用於 TRAILING_STOP_LIMIT 類型。
multi_leg_infoobject多腿訂單信息,詳見 multi_leg_info 字段。僅適用於多腿期權訂單(security_typeMULTILEG_OPTION)。

fill_infos 字段

字段類型說明
sidestring交易方向,見 trd_side
deal_idstring成交 ID。最長不超過 32 字符的 Base58 編碼,大小寫敏感。
order_idstring訂單 ID,與 order_info.order_id 對應。
codestring證券代碼,格式為 {exchange}.{symbol}
stock_namestring證券名稱。
qtystring成交數量。
pricestring成交價格。
create_timeinteger成交創建時間,Unix 微秒時間戳。
updated_timeinteger成交最後更新時間,Unix 微秒時間戳。
counter_broker_idinteger對手方券商編號。
counter_broker_namestring對手方券商名稱。
statusstring成交狀態,見 deal_status

multi_leg_info 字段

多腿期權訂單的附加信息,僅在 order_info.security_typeMULTILEG_OPTION 時存在。

字段類型說明
underlying_symbolstring底層標的代碼。
underlying_stock_namestring底層標的名稱。
leg_infosobject[]各腿訂單信息列表,詳見 leg_infos 字段

leg_infos 字段

多腿期權中單條腿的信息。

字段類型說明
symbolstring腿對應的證券代碼。
exchangestring腿對應的交易所,見 exchange
ratio_qtystring最大公約數原則下每條腿的比例。
sidestring腿的交易方向,見 trd_side
security_typestring腿對應的證券類型,見 security_type
stock_namestring腿對應的證券名稱。
hp_multiplierstring腿對應的合約乘數。
avg_fill_pricestring腿的平均成交價。

兼容性建議

  • event_type 分發處理:不同事件的 fill_infos 是否有值差異較大,建議 switch/match 處理。
  • 未知字段忽略:服務端可能新增字段,客戶端應保持向前兼容。
  • 未知 event_type 兼容:記錄日誌後跳過,避免因新增事件類型導致處理異常。
  • 數值字段以字符串解析:價格、數量等字段均為字符串,需自行轉換為 Decimal 或 float 處理精度。
  • 微秒時間戳event_time_uscreate_timeupdated_time 均為 Unix 微秒時間戳,注意與毫秒時間戳區分。

相關文檔