流动性热力图(liquidity heatmap)

流动性热力图是一张把订单簿中每个价格上的挂单量随时间画出来的图表,颜色亮度与显示数量成正比。它把一连串 DOM 快照变成一幅画面,于是一个已经被守了好几分钟的档位,就能和一秒钟前才出现的档位区分开来。

Senzoukria · 术语表 · 更新于 2026 年 9 月


这幅画面是怎么构建的

输入是一串订单簿更新:每一侧每个价格在那一瞬间的显示总量。热力图保留这些更新的滚动历史,把每个价格画成一条水平色带,颜色亮度跟随挂单量。时间从左向右推进,因此右边缘是当前的订单簿,它左边的一切是订单簿更早的样子。成交通常以圆点叠加其上,大小跟随已成交量,这样读图的人就能看出某个档位上的数量是被吃掉了,还是单纯消失了。

  • 色阶:自适应(自动灵敏度)或手动,带一个对比度控件;同样的数量在买方和卖方应该读起来一样亮。
  • 深度:只画数据流发布的那些档位。「已接收深度」是数据流的属性,不是一项显示设置。
  • 分辨率:每个跳动点一行;纵向平滑可以把相邻行混合以提高可读性,代价是精度。

读一条色带

  • 价格一直没靠近、色带却始终明亮,那是还没有人去测试过的显示数量。
  • 价格逼近时色带逐渐淡去、而该价格上没有成交圆点,那是撤单流动性:数量没有成交就离开了。
  • 成交圆点不断堆在一条始终明亮的色带上,这与补单是一致的,但若干笔互不相关的委托也能画出同样的画面。
  • 一条色带正好在一簇成交圆点开始的地方结束,那是被成交掉的数量。
  • 一个没有颜色的空洞,要么是订单簿真的空了,要么是数据缺失;由数据流的覆盖情况决定是哪一种,覆盖间隙绝不能读成零。

热力图、足迹图与 DOM

这三种显示读的是不同的数据集。足迹图按价格、按 K 线聚合已成交量;DOM 显示此刻的订单簿;热力图显示订单簿随时间的变化。一堵消失的大墙只在热力图上看得见,一次完成的撮合只在足迹图上看得见,而排在你自己委托前面的队列只在 DOM 上看得见。流动性热力图也不同于爆仓热力图:后者建模的是杠杆头寸可能在哪里被平掉,而不是显示被观测到的委托。

在 Senzoukria 中

热力图屏幕把每个价格上的挂单随时间画出来,旁边就是吃掉它们的那些成交。它的设置窗口把控件分组在「渲染」「流动性」「成交」「标记」和「DOM 阶梯」之下:强度、自动灵敏度或手动刻度、对比度、低量下限(手)、纵向平滑、带成交量过滤的成交量圆点、最优买卖价线、累计深度和大单高亮。一个带「挂单着色」和「撤单着色」的配色模式,把正在挂出的流动性和未经成交即被撤走的流动性区分开,它由聚合订单簿推断得出,并被明确标注为推断。在加密货币上,「历史订单簿」视图加载已记录的深度(Bybit,每侧 200 档,一秒一次采样),没有观测的地方留空白列;在 CME 上,实时深度通过经纪商或 Databento 数据流到达,由供应商计费。

常见误区

  • 在价格还没测试过某个档位的表现之前,一看到大墙出现就去交易它。
  • 无视撤单流动性。一堵消失的大墙是一件值得记录的事件,不是一件没发生的事。
  • 把深度或聚合方式不同的数据流所画出的热力图,当成显示同一个订单簿来对比。
  • 跨越一次色阶变化去读强度:重新调整灵敏度之后,更早的色带与更新的色带不再可比。

其他语言版本

常见问题

流动性热力图会显示已成交量吗?
它本身不会。那些色带是来自订单簿的挂单量。已成交量是单独叠加上去的,通常画成按成交数量决定大小的圆点,数据来自成交流。让这两个图层在视觉上保持清晰可分,才能让读图的人把「被提供了什么」和「真正成交了什么」放在一起比较。
历史热力图能用成交历史重建出来吗?
不能。成交归档里只有已完成的交易。一张被显示出来、随后未经成交即被撤销的委托没有留下任何打印,因此无法恢复。历史热力图需要那段时期被记录下来的订单簿数据,包括两次快照之间的更新。
一条明亮的色带能证明什么?
只能证明在那段时间里、那个价格上存在过显示数量。它不能证明委托人会把它留在那里,不能证明它属于同一个参与者,也不能证明它会吸收下一次测试。这些都是假设,要拿到达该档位的成交去验证。

继续阅读