买卖双色模式与方向图例

方向着色用挂单所在那一侧的渐变为每个热力图单元格上色,买盘或卖盘,于是价格前方的墙能与身后的墙区分开。「仅强度」则只保留单一渐变。一小块图例展示当前主题真实使用的两条渐变。

Senzoukria · 文档 · 更新于 2026 年 9 月


位置

位置
热力图 →「热力图」按钮 → 渲染标签页 →「方向着色」和「显示图例」
默认值
双色(买/卖),显示图例
图例位置
浮于画布之上,卖盘渐变在买盘渐变上方

它做什么

在双色模式下,色相承载方向,亮度承载数量。两侧使用同一套刻度:同等数量的买盘墙和卖盘墙看起来一样亮。某一档的方向是依据该瞬间的聚合订单簿,对照最优买价和最优卖价读出的;这是对快照的测量,绝不会被当作逐笔委托观测呈现。当订单簿交叉或为空时,该档画成中性色,而不是靠猜测归给某一侧。

「仅强度」恢复早先的单渐变渲染。在两者之间切换不需要任何代价:方向早已写在数据纹理的一个通道里,着色器只是不再读取它,因此无需重新打包,也无需重新上传。

设置

方向着色控件
设置默认值影响
方向着色双色(买/卖)双色:买盘渐变与卖盘渐变。仅强度:单一渐变,亮度 = 数量
显示图例开启显示带有卖盘和买盘渐变的「图例」卡片。在仅强度模式下该行不可用,单一渐变没有什么可区分,也就不画图例
主题Senzoukria选择使用哪两条渐变(Classic:蓝色买盘渐变,暖橙色卖盘渐变;Senzoukria:青柠色买盘渐变,品红色卖盘渐变)

图例是怎么生成的

图例并不自行读取 CSS 令牌。它对着色器所消费的同一张 256×2 渐变纹理采样——第 0 行为买盘、第 1 行为卖盘——取九个点,再转成 CSS 渐变。如果某个主题没有声明卖盘渐变,纹理就会把买盘渐变装两遍,图例于是显示两条一模一样的色条,而这正是屏幕上实际的样子。图例只在主题变化时重建,绝不逐帧重建。把鼠标悬停在上面会看到提示:色相承载方向,亮度承载该价格上的数量。

色觉

两个可选主题的两条渐变都在绿色盲模拟下做过测量(Viénot-Brettel-Mollon 1999,等强度下买卖两色的 CIE76 距离,从强度 32 扫到 255;约 2.3 为刚好可辨,10 为清晰可辨)。Classic 在最差情况下保持 15.2,蓝色对暖橙色。Senzoukria 保持 11.9,因为它的卖盘渐变是品红而非红色:品红保留了蓝色分量,也就是在绿色盲下仍然存活的那条轴。早先一条红色卖盘渐变测得 3.0,琥珀色的一条测得 0.9,这就是两者都没有保留的原因。

一个单元测试从样式表读取这些渐变,一旦某个主题不再跨过门槛就失败;第二个测试则在默认主题不属于已测安全主题时失败。未设置主题属性时使用的兜底样式块正是跨不过门槛的那一个;它是安全网,不是你可以选择的主题。无论哪种情况,位置始终是第二个维度:卖盘挂在中价之上,买盘挂在其下。

局限

  • 方向是按快照从聚合订单簿推断出来的。它不是逐笔委托级别的归属。
  • 图例只是对这套映射的提醒,不是阅读机制:在图表上,仅凭色相和位置就必须能读出方向。
  • 热力单元格的买盘与卖盘渐变由主题固定。标记标签页中的买/卖取色器改变的是最优买价线和最优卖价线,DOM 阶梯和分布图标签页中的取色器改变的是阶梯条——它们都不会给热力单元格重新上色。

其他语言版本

常见问题

图例为什么不见了?
要么「显示图例」被关闭,要么「方向着色」设为了仅强度——此时该行不可用,而且只有一条渐变就没有什么可区分,所以不画图例。
双色模式会拖慢热力图吗?
不会。它只切换一个着色器 uniform;数据纹理不变,每帧也不做额外比较。
订单簿交叉时会得到什么颜色?
中性色。当最优买价等于或高于最优卖价,或某一侧为空时,引擎拒绝判定方向。