数据格式
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",
"position_open_type": "",
"algo_info": null
},
"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。 |
EVENT_WAIT_OPEN | 订单预埋事件。 |
EVENT_PRICE_PROTECT | 订单价格保护事件。 |
EVENT_TRIGGER_WAITING | 条件单监听事件。 |
EVENT_TRIGGER | 条件单触发事件。 |
user_info 字段
| 字段 | 类型 | 说明 |
|---|---|---|
uid | integer | 用户 ID(nnid)。 |
acc_id | integer | 长业务账号 ID,与 REST 路径中的 acc_id 是同一个业务账户。JSON 为数字;超过 JavaScript 安全整数时不要用 Number 解析。 |
order_info 字段
| 字段 | 类型 | 说明 |
|---|---|---|
order_id | string | 订单 ID。 |
side | string | 交易方向,见 trd_side。 |
order_type | string | 订单类型,见 order_type。 |
order_status | string | 订单状态,见 order_status。 |
code | string | 证券代码。格式:market.symbol,例如 US.AAPL、HK.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)。 |
exchange | string | 证券所属交易所(如 SEHK、COMEX),与 code 配套下发。 |
expire_time | integer | 订单截止时间,Unix 微秒时间戳。 |
sub_acc_id | string | JP 子账户 ID。仅适用于 JP 账户。 |
margin_trading_type | string | JP 信用类型(GENERAL / STANDARDIZED)。仅适用于 JP 信用账户。 |
margin_period_type | string | JP 信用期限(INDEFINITE)。仅适用于 JP 信用账户。 |
position_open_type | string | 开仓类型(跟踪止损单专用):DISABLE_POSITION_OPEN / ENABLE_POSITION_OPEN。 |
algo_info | object | 算法单参数。非算法单为空。详见 algo_info 字段。 |
fill_infos 字段
| 字段 | 类型 | 说明 |
|---|---|---|
side | string | 交易方向,见 trd_side。 |
deal_id | string | 成交 ID。最长不超过 32 字符的 Base58 编码,大小写敏感。 |
order_id | string | 订单 ID,与 order_info.order_id 对应。 |
code | string | 证券代码。格式:market.symbol,例如 US.AAPL、HK.00700。 |
stock_name | string | 证券名称。 |
qty | string | 成交数量。 |
price | string | 成交价格。 |
create_time | integer | 成交创建时间,Unix 微秒时间戳。 |
updated_time | integer | 成交最后更新时间,Unix 微秒时间戳。 |
counter_broker_id | string | 对手方券商编号。 |
counter_broker_name | string | 对手方券商名称。 |
status | string | 成交状态,见 deal_status。 |
sub_acc_id | string | JP 子账户 ID。仅适用于 JP 账户。 |
multi_leg_info 字段
多腿期权订单的附加信息,仅在 order_info.security_type 为 MULTILEG_OPTION 时存在。
| 字段 | 类型 | 说明 |
|---|---|---|
underlying_symbol | string | 底层标的代码。 |
underlying_stock_name | string | 底层标的名称。 |
leg_infos | object[] | 各腿订单信息列表,详见 leg_infos 字段。 |
leg_infos 字段
多腿期权中单条腿的信息。
| 字段 | 类型 | 说明 |
|---|---|---|
code | string | 腿代码,格式 market.symbol(同下单 / 订单详情侧 leg_code)。 |
ratio_qty | string | 最大公约数原则下每条腿的比例。 |
side | string | 腿的交易方向,见 trd_side。 |
security_type | string | 腿对应的证券类型,见 security_type。 |
stock_name | string | 腿对应的证券名称。 |
hp_multiplier | string | 腿对应的合约乘数。 |
avg_fill_price | string | 腿的平均成交价。 |
algo_info 字段
算法单参数。仅算法单有值,非算法单为空。
| 字段 | 类型 | 说明 |
|---|---|---|
start_time | integer | 开始执行时间,Unix 微秒时间戳。 |
end_time | integer | 结束执行时间,Unix 微秒时间戳。 |
pricing_strategy | string | 子单价格策略:ADAPTIVE / GHOST / PASSIVE。 |
layering | string | 子单下单档位:AUTO / 1–10。 |
twap | object | TWAP 参数,详见 twap 字段。 |
vwap | object | VWAP 参数,详见 vwap 字段。 |
pov | object | POV 参数,详见 pov 字段。 |
slicer | object | Slicer 参数,详见 slicer 字段。 |
peg | object | PEG 参数,详见 peg 字段。 |
iceberg | object | Iceberg 参数,详见 iceberg 字段。 |
twap 字段
| 字段 | 类型 | 说明 |
|---|---|---|
participation_rate | string | 最大跟随比例,1%–99%。 |
vwap 字段
| 字段 | 类型 | 说明 |
|---|---|---|
participation_rate | string | 最大跟随比例,1%–99%。 |
pov 字段
| 字段 | 类型 | 说明 |
|---|---|---|
participation_rate | string | 最大跟随比例。 |
slicer 字段
| 字段 | 类型 | 说明 |
|---|---|---|
slice_interval | integer | 子单间隔(秒),≥ 10。 |
display_qty | integer | 子单单次下单量(手)。 |
display_qty_var | integer | 下单量随机化程度,0–99。 |
peg 字段
| 字段 | 类型 | 说明 |
|---|---|---|
display_qty | integer | 子单单次下单量(手)。 |
peg_offset | string | 盯住位置。 |
display_qty_var | integer | 下单量随机化程度,0–99。 |
iceberg 字段
| 字段 | 类型 | 说明 |
|---|---|---|
display_qty | integer | 子单单次下单量(手)。 |
display_qty_var | integer | 下单量随机化程度,0–99。 |
兼容性建议
- 按
event_type分发处理:不同事件的fill_infos是否有值差异较大,建议 switch/match 处理。 - 未知字段忽略:服务端可能新增字段,客户端应保持向前兼容。
- 未知
event_type兼容:记录日志后跳过,避免因新增事件类型导致处理异常。 - 数值字段以字符串解析:价格、数量等字段均为字符串,需自行转换为 Decimal 或 float 处理精度。
- 微秒时间戳:
event_time_us、create_time、updated_time(订单、成交)均为 Unix 微秒时间戳,注意与毫秒时间戳区分。