跳至主要内容

Orderbook 維護

如何正確在本地維護一個orderbook副本

全深度頻道 depth@<symbol> 採用訂閱即下發快照 + 增量的範式(類 Bybit)。不再 REST 拉快照、不再對齊撮合 updateId。

所有幀使用統一信封 {ch, event, data}。按 ch = depth_update 分發;下列字段(type、u、pu、b、a)位於 data 內。

1.訂閱 depth@btc_usdt。

2.第一幀爲快照(data.type = snapshot):整本替換本地簿,並記錄 lastU = data.u。

3.之後每個增量(data.type = delta):若 data.pu == lastU,逐檔應用並令 lastU = data.u;否則丟棄本地簿並重訂閱(或等待服務端主動重發快照)。

4.每檔爲該價位掛單量絕對值;量爲 "0" 表示刪除該價位,否則 upsert。

5.服務端在重啓 / 客戶端落後時主動重發快照,故序列斷裂在下一個快照自愈。

注意:此處 data.u 爲 push 本地序列(per-symbol 單調 +1),與定檔深度頻道(depth5|depth10|depth20|depth50|depth100@<symbol>,ch = depth,其 data.id 爲撮合 updateId 字符串)不同源,切勿混用。