教程

如何管理本地订单簿:Binance 与 OKX 对比(Checksum 已停用)

4 分钟

本文用来源映射核对 Binance 本地订单簿与 OKX Checksum 深度对比:行情控制清单 的可行动边界,先给出结论,再保留未知项。

收起完整分析

NexuAlpha 直接答案:Binance 与 OKX 都要求客户端先证明本地订单簿仍与交易所推送一致,才能让它驱动下单,但两者的完整性信号不同。Binance 开发者文档《How to manage a local order book correctly》给出快照加增量的流程:先缓存推送事件,再获取深度快照,丢弃过期事件,只在更新 ID 连续时继续应用增量。OKX 已不再支持用 checksum 校验:自 2026 年 6 月 23 日起,books、books-l2-tbt 和 books50-l2-tbt 频道的 checksum 字段固定为 0,不能再用于完整性校验,OKX 要求改用 seqId 与 prevSeqId 校验连续性。

决策结果:只有当客户端能够从快照启动、按顺序应用增量、发现序列断档(Binance 看更新 ID,OKX 看 seqId 与 prevSeqId,而不是已停用的 OKX checksum)、重建订单簿,并阻止过期深度进入执行策略时,才使用任一行情源。

证据快照。本文在 2026-09-20T20:37:33.123Z 读取 Binance Developers、OKX API Docs。本地队列、旧草稿、搜索摘要、社交转述、价格图或 AI 摘要都不被当作事实证明。它们最多提示问题,不能替代本文公开来源列表中的来源映射。更正(2026 年 10 月 11 日):本文初版把 OKX 深度校验写成基于 checksum;OKX 相关段落现已按 OKX API 更新日志 2026-06-23 条目及其 checksum 停用公告改正。

核验事实。主张 c1:Binance Spot WebSocket documentation describes diff depth streams used to locally manage an order book. 主张 c2:Binance Futures documentation describes buffering stream events, obtaining a depth snapshot, matching update IDs and reinitializing when continuity breaks. 主张 c3:OKX API 文档提供订单簿 WebSocket 行情频道;自 2026 年 6 月 23 日起,books、books-l2-tbt 和 books50-l2-tbt 的 checksum 字段固定为 0,OKX 要求改用 seqId 与 prevSeqId 校验数据连续性。 主张 c4:A working WebSocket connection alone does not prove that a local book is current, gap-free or safe for automated execution.这些事实刻意保持窄口径,不证明个人资格、未来可用性、执行质量、超出原文的法律状态、税务处理、账户批准、客服结果、赎回成功、价格方向、流动性深度或平台偿付能力。

OKX 改了什么。OKX API 更新日志 2026-06-23 条目写明:books、books-l2-tbt 与 books50-l2-tbt 频道在快照和增量推送中都已停用 checksum 字段;字段仍然存在,但值固定为 0,不得再用于完整性校验。OKX 订单簿文档说明,新消息的 prevSeqId 等于上一条消息的 seqId,快照消息的 prevSeqId 恒为 -1;长时间没有深度变化时会推送 asks、bids 为空的保活消息,其 seqId 与上一条相同;维护期间序列号可能重置,此时会收到一条 seqId 小于 prevSeqId 的增量消息。books5 与 bbo-tbt 频道本来就不带 checksum,不受影响。仍在比对 checksum 的客户端应把断档检测改为 seqId 与 prevSeqId,并在链条断开时重新订阅、获取新快照。

Binance 的流程怎么走。Binance 现货 WebSocket 文档在《How to manage a local order book correctly》中列出步骤:先打开增量深度流并缓存事件,记下收到的第一个更新 ID(U);再通过 REST 深度接口获取快照;如果快照的 lastUpdateId 严格小于这个 U,就重新获取快照;丢弃缓存中最后更新 ID(u)小于或等于 lastUpdateId 的事件;把本地订单簿设为快照;然后按顺序应用缓存事件和之后收到的每个事件。如果某个事件的最后更新 ID 小于本地订单簿的更新 ID,就忽略它;如果事件的第一个更新 ID 大于本地订单簿更新 ID 加一,说明漏收了事件,Binance 要求丢弃本地订单簿并从头开始。每个价位的数量为零时删除该价位,否则用新数量替换,处理完后把订单簿更新 ID 设为该事件的最后更新 ID。Binance 还提示,REST 快照每边最多 5000 档,快照之外的价位在发生变化之前都是未知的。Binance 合约文档采用同样的“缓存、快照、匹配更新 ID”方式,连续性中断时重新初始化。

围绕 Binance local order book vs OKX checksum depth controls 的决策纪律,不是寻找绝对赢家,而是建立来源绑定的评分卡:哪个官方来源回答了当前问题,哪个控制项仍为空白,哪个空白会改变用户风险,哪个测试可逆,哪个条件会重开决策。诚实的空白比编造优势更安全。

FAQ。短答案是什么?两家都需要“快照加增量”重建并检测连续性:Binance 用更新 ID,OKX 用 seqId 与 prevSeqId,因为 OKX 的订单簿 checksum 自 2026 年 6 月 23 日起固定为 0。 首先核验什么?核验官方来源和准确控制表面。不能推断什么?不能推断资格、未来支持、法律处理、税务处理、恢复、执行质量、流动性、赎回、消费者保护或账户批准。何时停止?当来源、对象、用户状态、权限、路径、发行人、司法辖区或故障处理不清楚时停止。

公开文档不是私人账户保证。 证明合理决策不应要求暴露秘密。

可见的空白能阻止读者用乐观填补缺口。

公开文档不是私人账户保证。 证明合理决策不应要求暴露秘密。

可见的空白能阻止读者用乐观填补缺口。

来源与证据

05
  1. Binance DevelopersSpot WebSocket Market Streams · developers.binance.com
  2. Binance DevelopersHow to manage a local order book correctly · developers.binance.com
  3. OKX API DocsOrder book channel · okx.com
  4. OKXOrder Book Channels Checksum Field Deprecation · okx.com
  5. OKX API DocsAPI Changelog · okx.com