What it measures

The commodity channel index measures how far the current typical price is from its recent average, in units of the average deviation from that average. Donald Lambert built it for cyclical commodities; the scaling constant was chosen so that roughly three quarters of readings fall between −100 and +100.

The calculation

typical price = (high + low + close) / 3 CCI = (typical price − SMA(typical price, n)) / (0.015 × mean deviation of typical price over n)

Mean deviation is the average absolute distance from the SMA, not the standard deviation.

Inputs and defaults

  • Length: 20.
  • Thresholds: +100 and −100; some rules use ±200 for extremes.

How it is read

Two opposite readings exist. The reversion reading treats +100 as overbought and −100 as oversold. Lambert's own reading was the reverse: a move above +100 means a strong trend has begun, buy; a drop back below +100 means it is over. Both are in the screened universe, sometimes with the same default parameters, and they cannot both be right on the same market.

Where it fails

It is unbounded, so there is no natural ceiling: in a trend it runs to +300 and stays there. The mean-deviation scaling is what makes it comparable across assets, and also what makes it jumpy when volatility collapses, because a small move divided by a small deviation is a large reading.

How the desk reads it

A CCI rule is read first for which of the two opposite interpretations it codes, and then on its trade count in the sideways months. The same thresholds with the opposite sign produce a different strategy, and the backtest only shows the one the author kept.

In the desk's screen

Of the 614 screened strategies in the library, 8 (1.3%) use this indicator somewhere in their logic.

4 of those were gross-profitable on enough cells to reach the after-fee replay.

The count is read from the compiled code of each strategy in the library; a strategy that computes the indicator by hand under another name is not counted. The desk's own rules are not part of the count.