CCI 指标:公式、参数与读法
顺势指标(CCI,Commodity Channel Index)由 Donald Lambert 于 1980 年提出,衡量K线典型价格与其自身移动平均之间的距离,以平均偏差为单位表示。它绘制在独立面板中,默认周期为 20,上下均无界。
Senzoukria · 指标 · Updated September 2026
CCI — 动量, 显示在图表下方的独立面板中.
CCI 测量的是什么
典型价格为 (high + low + close) / 3。该指数用典型价格减去其 20 周期简单平均,再除以同一窗口内的平均绝对偏差,并以 Lambert 常数 0.015 缩放——在本实现中这是固定值而非参数,因为它属于原始定义。除以 0.015 相当于把距离放大约 66.7 倍,于是 ±100 刻度位于距平均值 1.5 个平均偏差处,这正是这两个熟悉水平的由来。注意分母是平均绝对偏差而不是标准差,因此单根异常大的K线对 CCI 的扭曲小于对 z-score 的扭曲。当窗口完全走平、偏差为零时,指标不返回任何值,而不是返回零。
公式:代码中的实现
这不是别处常见的定义,而是所发布代码实际计算的内容,记录在实现旁边:
CCI (Lambert, 1980) — constante 0.015 (celle de Lambert, non paramétrée) : TP = (high + low + close)/3 CCI = (TP − SMA_N(TP)) / (0.015 · meanDev) meanDev = moyenne des |TP_j − SMA_N| sur la fenêtre meanDev = 0 (fenêtre plate) → null. Défaut N=20 (Lambert).
如何解读
- 正负号表示典型价格位于自身平均值之上还是之下;绝对值表示相距多少个平均偏差,刻度上 100 等于 1.5 个平均偏差。
- ±100 是由常数 0.015 产生的参考水平,而不是屏障——在快市中远超这两个水平的读数很常见,它描述的是距离,而不是衰竭。
- 从 +100 之外回到区间内,说明与平均值的距离在缩小,这既可能是暂停,也可能是转折。
- 价格高点更高而 CCI 高点更低,意味着第二次推升相对于其自身近期偏差走过的幅度更小。
- 在趋势中长时间停留在零轴一侧是正常的,因为平均值本身也在随价格移动;该指数没有必须回到零的义务。
参数与默认值
周期(20,Lambert 的默认值)同时决定平均值和偏差的窗口。周期越短,指数越尖锐,频繁超出 ±100;周期越长,指数越平滑,越少出现大幅偏离。常数 0.015 是固定的、不对外开放,因此周期是改变有效刻度的唯一方式。
| 参数 | 类型 | 默认值 | 取值范围 |
|---|---|---|---|
| Period | number | 20 | 2 – 200 |
它无法显示的内容
CCI 完全由价格推导,无法说明与平均值之间的距离是由主动买盘推动的,还是在空荡的订单簿上滑过的。由于没有上下界,它没有天然的上限,在不同品种或不同K线类型之间比较绝对值会产生误导。在持续趋势中,它可以长时间停留在 ±100 之外,因此只要趋势延续,把每次偏离都当作反转就会一直出错。在走平的窗口上它不输出数值,这是正确的,但会在线条上留下可见的缺口。
相关指标
- RSI — 动量
- MACD — 动量
- Stochastic — 动量
- Stoch RSI — 动量
- ROC — 动量
- Williams %R — 动量
其他语言版本
Frequently asked questions
- 为什么 CCI 要除以 0.015?
- 这个常数是 Lambert 最初的缩放系数,选择它是为了让大部分读数落在 ±100 区间内,这两个惯用水平正是由此而来。它并非统计上的必然,只是一种让指数便于阅读的归一化。在 Senzoukria 中它是写死的,不作为参数开放,因为一旦修改,就不再是 Lambert 的 CCI 了。
- CCI 读数高于 +100 是什么意思?
- 这表示典型价格比自身移动平均高出超过 1.5 个平均绝对偏差:除以 0.015 会把这个距离放大约 66.7 倍,所以 1.5 个偏差对应 100。它描述的只是与近期平均之间的距离异常,仅此而已。在趋势市场中,CCI 可以连续许多根K线保持在 +100 以上。
- CCI 使用收盘价吗?
- 只是部分使用。输入是典型价格 (high + low + close) / 3,因此收盘价只占三分之一,其余来自K线的极值。这使 CCI 会对K线的波动区间作出反应,而不仅仅是收盘位置,这一点使它有别于钱德动量震荡指标(Chande Momentum Oscillator)等只用收盘价的震荡指标。