跳到主要内容

如何正确在本地维护一个orderbook副本

  1. 订阅 wss://fstream.binance.com/stream?streams=btcusdt@depth
  2. 开始缓存收到的更新。同一个价位,后收到的更新覆盖前面的。
  3. 访问Rest接口 **https://fapi.binance.com/fapi/v1/depth?symbol=BTCUSDT&limit=1000**获得一个1000档的深度快照
  4. 将目前缓存到的信息中u< 步骤3中获取到的快照中的lastUpdateId的部分丢弃(丢弃更早的信息,已经过期)。
  5. 将深度快照中的内容更新到本地orderbook副本中,并从websocket接收到的第一个U <= lastUpdateId**且**u >= lastUpdateId 的event开始继续更新本地副本。
  6. 每一个新event的pu应该等于上一个event的u,否则可能出现了丢包,请从step3重新进行初始化。
  7. 每一个event中的挂单量代表这个价格目前的挂单量绝对值,而不是相对变化。
  8. 如果某个价格对应的挂单量为0,表示该价位的挂单已经撤单或者被吃,应该移除这个价位。