Shannon Entropy 指标:公式、参数与读法
香农熵(Shannon Entropy)衡量近期收益率的分散程度,以比特(bit)表示。Senzoukria 把最近 N 个收益率离散化到覆盖窗口自身范围的等宽区间中,再计算该分布的熵,其取值介于 0 与区间数的以 2 为底的对数之间。
Senzoukria · 指标 · Updated September 2026
Shannon Entropy — 波动率, 显示在图表下方的独立面板中.
Shannon Entropy 测量的是什么
区间宽度等于窗口范围——最大收益率减最小收益率——除以区间数,因此刻度来自数据本身,而不是固定的 tick 阈值,这使得该数值可在不同品种之间比较。每个收益率落入一个区间,计数转为概率,再以 2 为底的对数计算熵。默认 8 个区间时,最大可能读数为 3 比特,在收益率均匀分布于每个区间时达到;接近零的数值表示几乎所有收益率都落在同一个区间。窗口最大值本会落入最后一个区间之外,按通行的右闭惯例并入最后一个区间。所有收益率都相同的窗口不返回任何值,因为此时区间边界无定义,报告零比特就等于断言一个并不存在的分组得出的结果。
公式:代码中的实现
这不是别处常见的定义,而是所发布代码实际计算的内容,记录在实现旁边:
Entropie de Shannon des N derniers rendements, discrétisés en B paniers de LARGEUR ÉGALE sur l'étendue de la fenêtre, résultat en BITS : largeur = (max − min)/B ; panier(r) = min(B−1, ⌊(r − min)/(max−min)·B⌋) p_b = compte_b / N ; H = −Σ_b p_b · log₂ p_b (p_b = 0 ignoré) Bornes : H ∈ [0, log₂B] — 3 bits au maximum avec le défaut B=8. Lecture : H proche du max = rendements étalés/imprévisibles ; H bas = régime concentré (le marché fait toujours le même pas). Paniers sur l'ÉTENDUE de la fenêtre (pas des bornes fixes en ticks) : la mesure devient sans échelle, comparable entre MNQ et 6E — c'est aussi ce qui la rend insensible au tick size, que la famille ne consomme pas. Le max de la fenêtre tomberait sur le panier B (hors tableau) : il est rabattu sur B−1, la convention habituelle du binning à droite fermée. Fenêtre CONSTANTE (max == min) → null : les bornes des paniers sont indéfinies (0/0) et « 0 bit » serait déduit d'un binning qui n'existe pas — règle du catalogue, dénominateur nul → null. Défauts B=8, N=50.
如何解读
- 接近上限的读数——默认设置下为 3 比特——描述的是收益率散布在整个观测范围内:市场没有在重复同样的步幅。
- 低读数描述的是一种集中状态,大多数K线产生相近的收益率,这既会出现在安静的区间中,也会出现在稳定、机械的趋势中。
- 数值是相对于窗口自身极值的,因此平静时期的熵可能很高,剧烈时期的熵反而可能很低。应把它读作形态度量,而不是波动水平。
- 从接近上限降到低读数,标志着收益率的分布方式发生了变化;绝对水平本身取决于你选择的区间数。
- 当你需要知道这种分布是由大幅还是小幅波动构成时,把它与 ATR % 这样的刻度度量结合使用。
参数与默认值
区间数默认 8,可设为 2 到 64,上限为区间数以 2 为底的对数——默认为 3 比特。区间越多,估计越精细,但噪音越大,因为每个区间容纳的样本更少。窗口默认 50 个收益率,可设为 2 到 1000;应让它明显大于区间数,否则大多数区间会是空的,结果将由抽样噪音而非市场行为主导。
| 参数 | 类型 | 默认值 | 取值范围 |
|---|---|---|---|
| Bins | number | 8 | 2 – 64 |
| Window | number | 50 | 2 – 1000 |
它无法显示的内容
熵按构造与刻度无关,因此无法说明波动是大还是小——区间适配窗口范围时,这部分信息就被去掉了。它完全忽略收益率的顺序:打乱顺序的窗口得到相同的数值,这意味着由相同大小收益率构成的趋势和震荡可能读数相同。估计值取决于样本数与区间数之比,所以 50/8 的配置无法与 200/32 的配置比较。恒定的窗口完全不产生数值,在面板中显示为空洞,而不是零。
相关指标
- True Range — 波动率
- Std Dev — 波动率
- Squeeze — 波动率
- Chaikin Volatility — 波动率
- Realized Vol — 波动率
- Skewness — 波动率
其他语言版本
Frequently asked questions
- 香农熵在价格图上衡量什么?
- 它衡量近期收益率在一组适配窗口自身范围的等宽区间中分布得有多均匀。数值高表示出现了许多不同大小的收益率;数值低表示大多数K线产生了相近的收益率。它描述的是收益率分布的形态,而不是其大小,也不是其方向。
- 熵指标的最大值是多少?
- 区间数以 2 为底的对数。默认 8 个区间时最大值为 3 比特,只有在每个区间容纳相同数量的收益率时才会达到。提高区间数会提高上限——16 个区间为 4 比特——因此不同区间数下取得的读数不能直接比较。
- 熵指标应该用多少个区间?
- 默认是在 50 个收益率的窗口上使用 8 个区间,平均每个区间有几个样本。增加区间数会提高分辨率,但会把同样的收益率摊得更薄,估计因而噪音更大。应让窗口明显大于区间数,并且只在使用完全相同设置的图表之间比较读数。