跳到主要内容

深度流

订阅指定交易对的订单簿快照推送。

WebSocket 地址:wss://stream.pipai.io/ws

订阅

订阅:

{
"op": "subscribe",
"channel": "market.depth",
"params": { "symbol": "BTCUSDT", "depth": 20 },
"req_id": "client-301"
}

取消订阅:

{
"op": "unsubscribe",
"channel": "market.depth",
"params": { "symbol": "BTCUSDT", "depth": 20 },
"req_id": "client-302"
}

订阅参数

名称类型必填说明
symbolstring交易对,大写,例如 BTCUSDT
depthenum每侧返回的价格档位数量。取值之一:5102050100

消息体

{
"event": "depth",
"ts": 1745923200412,
"symbol": "BTCUSDT",
"lastUpdateId": 9823412531,
"bids": [
["67431.90", "0.4221"],
["67431.80", "1.0312"],
["67431.50", "0.8800"],
["67431.10", "2.5410"],
["67430.90", "0.0500"]
],
"asks": [
["67432.40", "0.3110"],
["67432.60", "0.7821"],
["67432.90", "1.4422"],
["67433.20", "0.2200"],
["67433.80", "3.1100"]
]
}

消息字段

字段类型说明
eventstring恒为 "depth"
tsinteger服务端推送时间,Unix 毫秒(ms)。
symbolstring交易对,大写。
lastUpdateIdinteger该快照的单调递增更新 id。在相邻消息间严格递增。
bidsarray[price, qty] 二元组数组(均为字符串)。按价格 降序 排列。长度等于订阅的 depth
asksarray[price, qty] 二元组数组(均为字符串)。按价格 升序 排列。长度等于订阅的 depth

推送频率

100 ms 推送一次订单簿顶部直到订阅 depth 档位的完整快照。每条消息直接替换上一条——这是设计上的快照流,而非增量 diff 流,因此客户端无需在本地维护订单簿。

重连

重连并重新订阅后,下一条快照(约 100 ms 内)即可提供完整、权威的盘口视图。仅需可见档位的消费者无需通过 REST 引导。如果两条接收到的消息之间 lastUpdateId 没有严格递增,应将较早的那条视为过期数据并丢弃。

未来:增量 diff 流

后续版本计划推出 market.depth.diff 频道,提供订单簿增量 diff(并配合 REST 快照引导)。当该频道上线时,将提供其 schema 与引导流程文档;在此之前,上述快照频道是唯一可用的深度流。