跳至主要内容

深度

訂閱不同深度的推送

提示
  • 訂閱成功後,會立即得到一個當前快照包的推送消息.
  • websocket將會繼續推送這些增量數據. 收到snapshot的報文,就需要重置本地的orderbook.
  • snapshot=全量orderbook, delta=增量orderbook
  • 如果因為Bybit服務原因,會重新發送snapshot報文,該報文已保證是最新且準確的.
信息
  • USDT合約, USDC合約, 反向合約以及現貨 1檔數據: 若3秒內無變化, 將會再次推送snapshot數據, 此消息中的字段u和前一條消息裡的“u”保持一樣
  • USDT合約, USDC合約, 反向合約以及現貨 1檔數據: 只推送snapshot消息
  • 盤前合約: 直到ContinuousTrading(連續競價)階段, orderbook數據才會下發

USDT合約和USDC合約 & 反向合約:
1 檔數據, 推送頻率: 10ms
50 檔數據, 推送頻率: 20ms
200 檔數據, 推送頻率: 100ms
1000 檔數據, 推送頻率: 200ms

現貨:
1 檔數據, 推送頻率: 10ms
50 檔數據, 推送頻率: 20ms
200 檔數據, 推送頻率: 200ms
1000 檔數據, 推送頻率: 200ms

期權:
25 檔數據, 推送頻率: 20ms
100 檔數據, 推送頻率: 100ms

Topic:
orderbook.{depth}.{symbol} e.g., orderbook.1.BTCUSDT

響應參數

參數類型說明
topicstringTopic名
typestring數據類型. snapshot,delta
tsnumber行情服務生成數據的時間戳 (毫秒)
datamapObject
> sstring合約名稱
> barrayBid, 買方. snapshot數據,是按照價格從大到小
>> b[0]string買方報價
>> b[1]string買方數量
  • 增量數據的推送當出現size=0時,這意味著該價位的報價單全部成交或者全部撤銷
> aarrayAsk, 賣方. snapshot數據,是按照價格從小到大
>> a[0]string賣方報價
>> a[1]string賣方數量
  • 增量數據的推送當出現size=0時,這意味著該價位的報價單全部成交或者全部撤銷
> uinteger更新id
  • 一般情況下該id是連續的。偶爾會因後台的重啟而發送"u"=1的全量數據,接收到後請覆蓋本地保存的orderbook
  • 對於期貨的1檔推送, 3秒內無變化, 則會強推一個snapshot數據, 此消息裡的"u"的值和前一條消息裡的保持一致
> seqinteger撮合版本號
  • 該字段可以用於關聯不同檔位的orderbook, 如果值越小, 則說明數據生成越早
ctsnumber產生此訂單簿數據時來自撮合引擎的時間戳. 可用於與平台成交頻道中的T進行關聯

訂閱示例

from pybit.unified_trading import WebSocket
from time import sleep
ws = WebSocket(
testnet=True,
channel_type="linear",
)
def handle_message(message):
print(message)
ws.orderbook_stream(
depth=50,
symbol="BTCUSDT",
callback=handle_message
)
while True:
sleep(1)

響應示例

{
"topic": "orderbook.50.BTCUSDT",
"type": "snapshot",
"ts": 1672304484978,
"data": {
"s": "BTCUSDT",
"b": [
...,
[
"16493.50",
"0.006"
],
[
"16493.00",
"0.100"
]
],
"a": [
[
"16611.00",
"0.029"
],
[
"16612.00",
"0.213"
],
...,
],
"u": 18521288,
"seq": 7961638724
}
"cts": 1672304484976
}