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