Balance of Power 指标:公式、参数与读法
均势指标(Balance of Power,BOP)由 Igor Livshin 提出,衡量每根K线在自身波幅中的收盘位置——(close − open) 除以 (high − low)——并在滚动窗口内对这些读数取平均。每个原始值都介于 −1 与 +1 之间,默认平滑 14 根K线。
Senzoukria · 指标 · Updated September 2026
Balance of Power — 动量, 显示在图表下方的独立面板中.
Balance of Power 测量的是什么
分子说明这根K线是买方还是卖方占上风;分母用波幅进行归一化,所以窄幅K线顶部附近的收盘,不会与宽幅K线上同样位置的收盘同等计分。平均采用原始值的普通简单移动平均,因为日内的原始序列本身难以阅读。没有波幅的K线——最高价等于最低价,例如冻结市场中的填充K线——会被整个排除在平均之外,而不是按零计入,因为计入它们会在根本没有拍卖发生的地方虚构出完美的均衡,并把均值拉向中间。由此带来的一个结果是:在清淡区域,实际参与平均的数值个数可能少于周期,而窗口本身仍是 N 根K线;窗口内没有任何可用K线时,不返回值。
公式:代码中的实现
这不是别处常见的定义,而是所发布代码实际计算的内容,记录在实现旁边:
BOP — Balance of Power (Igor Livshin) : où la barre a FERMÉ dans son propre range, lissé par une SMA SIMPLE (pas d'EMA, pas de Wilder — la définition originale) : raw = (close − open) / (high − low) ∈ [−1, 1] BOP = moyenne des `raw` DÉFINIS de la fenêtre des N dernières barres POURQUOI : le numérateur mesure qui a gagné la barre, le dénominateur la normalise par l'amplitude — une clôture haute sur un range étroit ne compte pas comme une clôture haute sur un range large. Défaut N=14, la période de lissage usuelle (le raw seul est illisible en intraday). RANGE NUL (high == low : barre de remplissage, marché figé) → la barre NE CONTRIBUE PAS : elle sort du numérateur ET du dénominateur de la moyenne. L'alternative — la compter pour 0 — inventerait un « équilibre parfait » là où il n'y a eu aucune enchère, et tirerait la moyenne vers zéro. Fenêtre ENTIÈREMENT sans range (aucune barre exploitable) → null, jamais 0. Conséquence documentée : la période EFFECTIVE de la moyenne peut être inférieure à N sur les zones creuses ; la fenêtre, elle, reste de N barres (warm-up i ≥ N − 1).
如何解读
- 高于零,说明K线平均收在波幅的上半部;低于零,收在下半部。
- 接近 +1 或 −1 的读数需要反复收在波幅的极端位置,这通常标志着单边的连续走势,而不是单根的尖峰。
- 穿越零轴描述的是收盘位置的变化,这与价格方向的变化不是同一件事——价格可能仍在下跌,而收盘位置在改善。
- 与足迹图交叉验证:BOP 说明这根K线收得高,足迹图说明买方是否必须主动吃掉卖单才到达那里。
- 在零附近走平的读数说明收盘位置分散在各自的波幅中,这是双向拍卖的常见形态。
参数与默认值
period(14)设定平均多少根K线;原始计算本身没有参数。短周期紧贴单根K线、波动剧烈;长周期需要多根K线朝同一方向推动才会移动。请记住,即使参与计算的K线变少,窗口宽度仍然是 N 根K线。
| 参数 | 类型 | 默认值 | 取值范围 |
|---|---|---|---|
| Period | number | 14 | 1 – 500 |
它无法显示的内容
BOP 只根据 OHLC 四个价格计算。它不知道成交量、主动方向,也不知道收盘价是由一笔大单还是上千笔小单达到的——几乎无成交地收在最高价,与在大量参与下收在最高价,得分相同。在波幅极窄的K线上比值不稳定,开盘与收盘之间一两个 tick 就会产生很大的数值。而且它是比值的平均而不是数量的平均,单根极端K线就可能主导一个短窗口。
相关指标
其他语言版本
Frequently asked questions
- BOP 读数接近 +1 意味着什么?
- 意味着在整个平均窗口内,K线持续收在或接近自身波幅的顶部。该指标按波幅归一化,所以它描述的是收盘位置,而不是走势的幅度。在小波幅K线上接近 +1 的读数,几乎说明不了价格实际走了多远。
- BOP 如何处理最高价等于最低价的K线?
- 这些K线被完全排除在平均之外——既不计入总和,也不计入个数。按零计入等于断言买卖双方完全均衡,而实际上根本没有发生拍卖,还会把平均值拉向中间。如果整个窗口都没有带波幅的K线,指标不返回任何值。
- BOP 和 Delta 是一回事吗?
- 不是。Delta 是主动买入与主动卖出的净额,来自带主动方向的成交数据。BOP 纯粹由K线的开盘、最高、最低和收盘价计算,完全不知道是谁穿越了买卖价差。两者经常一致,而它们不一致时才值得关注:说明价格往一个方向收盘,而订单流偏向另一个方向。