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 微秒时间戳,注意与毫秒时间戳区分。

相关文档