跳至主要内容

深度

訂閱不同深度的推送

提示
  • 訂閱成功後,會立即得到一個當前快照包的推送消息.
  • websocket將會繼續推送這些增量數據. 收到snapshot的報文,就需要重置本地的orderbook.
  • snapshot=全量orderbook, delta=增量orderbook
  • 如果因為Bybit服務原因,會重新發送snapshot報文,該報文已保證是最新且準確的.
信息

USDT永續, USDC永續, USDC交割 & 反向合約 1檔數據: 若3秒內無變化, 將會再次推送snapshot數據, 此消息中的字段u和前一條消息裡的“u”保持一樣

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

現貨:
1 檔數據, 推送頻率: 10ms
50 檔數據, 推送頻率: 20ms
200 檔數據, 推送頻率: 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
    }