What Is the Commodity Channel Index (CCI)? How To Calculate

What Is the Commodity Channel Index (CCI)?

The Commodity Channel Index​ (CCI) is a momentum-based oscillator used to help determine when an investment vehicle is reaching a condition of being overbought or oversold.

Developed by Donald Lambert, this technical indicator assesses price trend direction and strength, allowing traders to determine if they want to enter or exit a trade, refrain from taking a trade, or add to an existing position. In this way, the indicator can be used to provide trade signals when it acts in a certain way.

Key Takeaways

  • The Commodity Channel Index (CCI) is a technical indicator that measures the difference between the current price and the historical average price.
  • When the CCI is above zero, it indicates the price is above the historic average. Conversely, when the CCI is below zero, the price is below the historic average.
  • The CCI is an unbounded oscillator, meaning it can go higher or lower indefinitely. For this reason, overbought and oversold levels are typically determined for each individual asset by looking at historical extreme CCI levels where the price reversed from.

The Formula for the Commodity Channel Index (CCI) Is:

 CCI = Typical Price MA . 0 1 5 × Mean Deviation where: Typical Price = i = 1 P ( ( High + Low + Close ) ÷ 3 ) P = Number of periods MA = Moving Average Moving Average = ( i = 1 P Typical Price ) ÷ P Mean Deviation = ( i = 1 P Typical Price MA ) ÷ P \begin{aligned} &\text{CCI} = \frac{ \text{Typical Price} - \text{MA} }{ .015 \times \text{Mean Deviation} } \\ &\textbf{where:}\\ &\text{Typical Price} = \textstyle{ \sum_{i=1}^{P} ( ( \text{High} + \text{Low} + \text{Close} ) \div 3 ) } \\ &P = \text{Number of periods} \\ &\text{MA} = \text{Moving Average} \\ &\text{Moving Average} = ( \textstyle{ \sum_{i=1}^{P} \text{Typical Price} } ) \div P \\ &\text{Mean Deviation} = ( \textstyle{ \sum_{i=1}^{P} \mid \text{Typical Price} - \text{MA} \mid } ) \div P \\ \end{aligned} CCI=.015×Mean DeviationTypical PriceMAwhere:Typical Price=i=1P((High+Low+Close)÷3)P=Number of periodsMA=Moving AverageMoving Average=(i=1PTypical Price)÷PMean Deviation=(i=1PTypical PriceMA)÷P

How to Calculate the Commodity Channel Index

  1. Determine how many periods your CCI will analyze. Twenty is commonly used. Fewer periods result in a more volatile indicator, while more periods will make it smoother. For this calculation, we will assume 20 periods. Adjust the calculation if using a different number.
  2. In a spreadsheet, track the high, low, and close for 20 periods and compute the typical price.
  3. After 20 periods, compute the moving average (MA) of the typical price by summing the last 20 typical prices and dividing by 20.
  4. Calculate the mean deviation by subtracting the MA from the typical price for the last 20 periods. Sum the absolute values (ignore minus signs) of these figures and then divide by 20.
  5. Insert the most recent typical price, the MA, and the mean deviation into the formula to compute the current CCI reading.
  6. Repeat the process as each new period ends.

What Does the Commodity Channel Index Tell You?

The CCI is primarily used for spotting new trends, watching for overbought and oversold levels, and spotting weakness in trends when the indicator diverges with price.

When the CCI moves from negative or near-zero territory to above 100, that may indicate the price is starting a new uptrend. Once this occurs, traders can watch for a pullback in price followed by a rally in both price and the CCI to signal a buying opportunity.


Image by Sabrina Jiang © Investopedia 2021

The same concept applies to an emerging downtrend. When the indicator goes from positive or near-zero readings to below -100, then a downtrend may be starting. This is a signal to get out of longs or to start watching for shorting opportunities.

Despite its name, the CCI can be used in any market and is not just for commodities.

Overbought or oversold levels are not fixed since the indicator is unbound. Therefore, traders look at past readings on the indicator to get a sense of where the price reversed. For one stock, it may tend to reverse near +200 and -150. Another commodity, meanwhile, may tend to reverse near +325 and -350. Zoom out on the chart to see lots of price reversal points, and the CCI readings at those times.

There are also divergences—when the price is moving in the opposite direction of the indicator. If the price is rising and the CCI is falling, this can indicate a weakness in the trend. While divergence is a poor trade signal, since it can last a long time and doesn't always result in a price reversal, it can be good for at least warning the trader that there is the possibility of a reversal. This way, they can tighten stop loss levels or hold off on taking new trades in the price trend direction.

The Commodity Channel Index vs. the Stochastic Oscillator

Both of these technical indicators are oscillators, but they are calculated quite differently. One of the main differences is that the Stochastic Oscillator is bound between zero and 100, while the CCI is unbounded.

Due to the calculation differences, they will provide different signals at different times, such as overbought and oversold readings.

Limitations of Using the Commodity Channel Index

While often used to spot overbought and oversold conditions, the CCI is highly subjective in this regard. The indicator is unbound and, therefore, prior overbought and oversold levels may have little impact in the future.

The indicator is also lagging, which means at times it will provide poor signals. A rally to 100 or -100 to signal a new trend may come too late, as the price has had its run and is starting to correct already.

Such incidents are called whipsaws; a signal is provided by the indicator but the price doesn't follow through after that signal and money is lost on the trade. If not careful, whipsaws can occur frequently. Therefore, the indicator is best used in conjunction with price analysis and other forms of technical analysis or indicators to help confirm or reject CCI signals.