MarketTrace
M1持仓状态M2订单簿M3强平M4资金费率
方法论 · v2.0.0 · 更新于 2026-05-09

跨交易所订单簿

热力图如何将 Binance、Bybit 与 OKX 永续合约深度合并为单一时间轴视图:数据源、归一化、时间对齐、边界场景、限制。

查看实时小部件: /perpetuals/order-book.

数据源

三家交易所数据源,仅公开深度流。无需 API 密钥。

归一化:价格与数量

跨交易所聚合只有在所有数据源使用相同单位时才有效。摄取阶段做两项调整,然后才到达聚合器。

数量转换为基础币。Binance 与 Bybit 直接以基础货币返回数量(BTC-USDT 永续以 BTC 计,等等)。OKX 以合约张数返回数量,其中一张合约对应 ctVal 单位的基础币。BTC-USDT-SWAP 的 ctVal = 0.01;DOGE-USDT-SWAP 为 1000。OKX 数据源在启动时从公开 instruments 端点解析 ctVal,并在发布前对每一档应用乘数。若没有此步骤,DOGE 深度在跨交易所视图中会被读成 1000 倍。

价格归入每资产桶。每家交易所的跳动单位略有不同;聚合器把价格向下舍入到最近的桶边界,使跨交易所相邻的跳动合并到同一面墙。每资产主桶大小:

btc:  $1.0
eth:  $0.10
sol:  $0.05
bnb:  $0.10
xrp:  $0.001
doge: $0.0001

多桶视图

每个周期同一份原始深度都会被并行归入每资产两种桶大小:主跳动(上方)与 5× 更粗的变体。用户选择展示哪一种;热力图无需重新建立连接即可切换到正确的桶。

对于 BTC,这意味着一个 $1 视图(细粒度,在中价附近密集)和一个 $5 视图。在 $1 下每侧 200 个桶意味着热力图从中价覆盖 ±$200;$5 视图可达 ±$1 000,那里正是整数磁吸($79k / $80k / $81k)所在之处。同样逻辑按资产缩放:ETH 发布 $0.10 + $0.50,DOGE 发布 $0.0001 + $0.001。

聚合:求和 + 按交易所拆分

对每个桶,聚合器把三个数据源的数量相加,并保留每交易所的贡献与总量并列。这使 UI 能渲染单行墙,并在悬停时显示堆叠分解,无需第二次往返。

for src in (binance, bybit, okx):
    for (price, qty_base) in src.depth.bids:
        bucket = floor(price / BUCKET_SIZE) × BUCKET_SIZE
        bid_buckets[bucket].total      += qty_base
        bid_buckets[bucket].by[src]    += qty_base
    # asks: 相同,然后按价格升序
top_bids = sorted(bid_buckets, by price desc)[:200]
top_asks = sorted(ask_buckets, by price asc)[:200]

输出 payload 单独包含数据源列表与每交易所的最佳买价/最佳卖价。我们暴露单一的合并最佳买卖价;见限制。

节奏与 spoof 解析

聚合器以 10 Hz 发布(每 ~100 ms 一个快照)。生产者数据源写入可达 ~20 Hz,但约束在于交易所推送速率(原生 ~50-100 ms)。

在热力图 100 ms 的单元宽度下,墙与 spoof 的呈现如下:

100 ms 以下的 spoof 无法检测。这需要三家交易所对我们的访问层级均锁定的逐笔(TBT)频道。

时间对齐

每个生产者从其原生深度流中提取交易所事件时间戳(Binance 的 E 字段、Bybit 的顶级 ts、OKX 的每档 ts),并与生产者自身的发布时间一同传播。

在聚合器,每个快照都暴露按数据源的事件时间戳以及跨交易所偏斜(在 OK 状态数据源之间事件时间的最大减最小)。热力图快照 ts仍是聚合器的轮询时刻,以便时间线均匀间隔;偏斜在 ≥ 100 ms 时显示在工具提示中(≥ 300 ms 为红色),使单元格中的“共识”诚实地有界。

典型观测偏斜:稳态下 < 100 ms;在某一交易所数据源短暂滞后的基差紧张时刻,峰值至 300-500 ms。如果没有这种归因,在 Binance 于 T+0、在 Bybit 于 T+200 ms 出现的墙会被读作单一瞬时共识,而它并不是。

过期处理

每个生产者写入其数据源键,带 60 秒 TTL 与一个时间戳。聚合器在每个周期计算每个数据源的年龄,并把任何超过 60 秒的数据源从合并视图中剔除;被剔除的数据源仍出现在 sources 数组中,带 stale 状态,以便前端渲染降级指示。

在前端:工具栏中的数据源圆点显示颜色与状态,热力图继续以剩余数据源运作。持续的过期状态通常意味着生产者触发了看门狗重置,或 WebSocket 在没有干净重连的情况下断开,页面以可见而非静默的方式降级。

限制与已知坑

版本

v1.0.0 初始发布于 2026-05-08(4 Hz 聚合,50 档)。v2.0.0 于 2026-05-09:升级至 10 Hz、200 档、多桶视图(每资产 $1 + $5)、按数据源事件时间戳对齐并暴露跨交易所偏斜。计算路径的实质性变更会升级版本并更新发布日期;外观调整不会。