More Indicators~10 min+25 XP

Commodity Channel Index (CCI)

A z-score that pretends to be bounded

CCI — Commodity Channel Index — is conceptually closer to a z-score than the bounded oscillators you've seen. It measures how far price has deviated from its recent mean, normalized by typical volatility.

Despite the name, it's not for commodities only. Kaufman spells this out:

The Commodity Channel Index (CCI) isn't necessarily for commodities and uses a channel only in the broadest sense. — Perry Kaufman

Murphy confirms:

While the Commodity Channel Index was originally developed for commodities, it is also used for trading stock index futures and options like the S&P 100 (OEX).

Donald Lambert published CCI in Technical Analysis of Stocks & Commodities in October 1980. One of the few TA indicators whose primary source our books cite directly — Kaufman gives the full citation at kaufman.txt:7405.

The formula

TP=H+L+C3\text{TP} = \frac{H + L + C}{3} CCI=TPSMAN(TP)0.015×Mean Deviation\text{CCI} = \frac{\text{TP} - \text{SMA}_N(\text{TP})}{0.015 \times \text{Mean Deviation}}

Where Mean Deviation (MD) is the average absolute deviation of TP from its N-period SMA:

MDN=1Ni=tN+1tTPiSMAN(TP)\text{MD}_N = \frac{1}{N} \sum_{i=t-N+1}^{t} |\text{TP}_i - \text{SMA}_N(\text{TP})|

Murphy's prose version:

In the construction of his Commodity Channel Index (CCI), Donald R. Lambert compares the current price with a moving average over a selected time span. He then normalizes the oscillator values by using a divisor based on mean deviation.

The 0.015 constant — where it comes from

The curious 0.015 factor was Lambert's original choice, calibrated so that roughly 70–80% of CCI readings fall within ±100 in typical commodity markets. It's a normalization constant, not a mathematical necessity.

Neither Murphy nor Kaufman explicitly defends the 0.015 value — it traces to Lambert's 1980 article (primary source not in our library). The practical consequence: ±100 marks the typical extreme zone but CCI is fundamentally unbounded. Readings above +200 or below −200 happen regularly in strong trends.

Default period and thresholds

  • N = 20 is the canonical default. Murphy: "Although 20 days is the common default value for CCI, the user can vary the number."
  • Extreme zones: ±100 on either side.

Lambert's original intent was a breakout system: buy above +100, short below −100. Murphy's note:

Lambert recommended long positions in those markets with values over +100. Markets with CCI values below −100 were candidates for short sales.

But modern practice flipped the interpretation — most users treat CCI as a mean-reversion oscillator:

It seems, however, that most chartists use CCI simply as an overbought/oversold oscillator. Used in that fashion readings over +100 are considered overbought and under −100 are oversold.

Same thresholds, opposite trade direction. Know which philosophy your system is running on.

Play with it

Market
Latest CCI137.98
CCI is unbounded — Lambert sized the 0.015 constant so that ~75% of readings fall within ±100. Readings beyond ±200 in strong trends are common. Zero-line crossings mark regime shifts; divergence at extremes is the actionable signal.

Flip to up and watch CCI run above +100 for extended stretches. In strong trends, +200 is routine; Kaufman's warning applies:

The CCI is essentially a variation on a standard deviation channel. When price becomes overbought during a strong upward move (price above the channel), it can stay that way for weeks at a time. Simple rules for buying and selling oversold and overbought prices will give frequent small profits and an occasional very large loss.

The mean-reversion interpretation of CCI dies in trending markets, just like RSI 70+ and %R −20.

CCI vs RSI

Both are oscillators around a midpoint; both flag extremes; both support divergence signals. Key differences:

PropertyRSICCI
Bounded?Yes (0–100)No (unbounded)
Midpoint500
Extreme zones70/30 (or 80/20)±100 (or ±200)
Formula basisGain/loss ratioDeviation from SMA, scaled by MAD
FeelSmooth (Wilder smoothing)Noisier (direct deviation)

One trader quoted by Bulkowski called them "my two favorite indicators, RSI and CCI" and noted CCI gave a cleaner divergence signal where RSI went flat (bulkowski.txt:37803). They're complementary, not redundant.

Signal types

  1. Zero-line cross — CCI moving above/below 0 = price moved above/below its N-period mean. Basic regime indicator.
  2. Extreme reading — ±100 mark the classic overbought/oversold zones. Used both as Lambert's breakout trigger and as mean-reversion fade.
  3. Divergence — the most reliable signal per Murphy: "the CCI turns before prices at each top and bottom." Same as RSI divergence in spirit.

Hidden traps

  • Treating ±100 as a hard ceiling. CCI is unbounded. +250 happens.
  • Mechanical mean-reversion fading in strong trends. CCI can camp at +200 for weeks. Fading extreme readings in a bull market is the fastest way to give money away.
  • Confusing Lambert's breakout system with the modern mean-reversion usage. They use identical thresholds but opposite trade direction. Check which your system assumes.
  • Default 20 doesn't match daily close focus. CCI uses typical price (HLC/3). If you're porting between platforms, confirm the TP definition matches.
  • Treating CCI as a commodity-specific tool. Name is misleading — it works on stocks, indices, FX, crypto. Kaufman and Murphy both explicit.

Quick check

Question 1 / 20 correct

Why does Lambert divide by (0.015 × Mean Deviation) in the CCI formula?

What you now know

  • CCI (Donald Lambert, October 1980) measures typical-price deviation from its SMA, normalized by mean absolute deviation.
  • Formula: CCI = (TP − SMA(TP)) / (0.015 × MeanDeviation) with TP = (H+L+C)/3. The 0.015 constant is Lambert's empirical calibration; ~70–80% of readings fall within ±100 in typical markets.
  • Unbounded — can run ±200 or more in strong trends.
  • Default N = 20.
  • Two opposing usage philosophies: Lambert's original breakout (buy > +100, short < −100) vs modern mean-reversion (fade extremes).
  • CCI vs RSI: both oscillators, different math; CCI is noisier, unbounded, better for divergence per some traders.
  • Name is misleading — works on any instrument, not just commodities.

Next: Rate of Change — the simplest momentum oscillator, the mathematical ancestor of everything you've covered.

Press complete when you're done.
Back to tree