CCI (Commodity Channel Index) is an oscillator that measures how far the current price has strayed from its statistical average — originally built for commodities, now used across forex the same way RSI and Stochastic are, to flag price that has moved further, faster than usual.
How CCI Is Calculated (the Intuition)
CCI compares the "typical price" (average of High, Low, Close) to its own moving average over a lookback period — 14 candles by default — and scales the difference by the average deviation from that mean. The result is a value that's usually roughly between -100 and +100 during normal conditions, but unlike RSI or Stochastic, it has no hard ceiling or floor — a genuinely extreme move can push CCI to 200, 300, or beyond. That's the core difference to remember: RSI and Stochastic measure position within a bounded range, CCI measures distance from normal, and distance has no upper limit.
How to Read the Zones
- Above +100 — considered Overbought, price has stretched well above its recent average.
- Below -100 — considered Oversold, price has stretched well below its recent average.
- Near 0 — price is trading close to its recent average, no real extreme in either direction.
- BUY — CCI crosses back above -100 after having been in the Oversold zone.
- SELL — CCI crosses back below +100 after having been in the Overbought zone.
As with RSI, the exit from the extreme zone is generally the more useful signal than the entry into it — CCI first reaching -100 just means a sharp move happened, not that it's over.
The ±100 Convention Isn't a Hard Rule
The ±100 thresholds are a convention, not a law of the indicator — some traders use ±200 on higher timeframes specifically to filter out CCI's more frequent "wiggle" signals, since a value that touches +100 happens fairly often while a genuine move to +200 is comparatively rare. If CCI is generating too many signals on your timeframe, widening the thresholds is the first thing to try before abandoning the indicator entirely.
A Worked Example
Say EUR/USD has been trading in a tight band around 1.0850 for a session, then a news release sends it climbing fast. As the typical price pushes further above its 14-period average with each new candle, CCI climbs past +100, then +180, then briefly touches +240 as the move peaks — a reading RSI simply cannot produce, since RSI would already have been capped near 100 for several candles by that point. Price then stalls and starts drifting back toward the average: CCI falls from +240 back through +100. That cross back below +100 is the SELL entry condition described above — not the moment CCI first got extreme, but the moment it started giving the extreme back. A trader watching only price might not have a clean way to quantify "how stretched is this move"; CCI's unbounded reading gives a direct number for it.
CCI vs RSI and Stochastic
All three are momentum oscillators, but they answer subtly different questions: RSI weighs the size of up vs down closes, Stochastic looks at where the close sits within the recent range, and CCI measures how far price has strayed from its own average with no ceiling on the answer. That "no ceiling" property is what makes CCI useful for spotting genuinely unusual moves — a reading of +250 says something RSI's capped-at-100 scale can't say on its own. As with the other oscillators, running two or three of these together and calling agreement "confirmation" mostly just double-counts the same underlying price action; pick one, and pair it with a tool that measures something different.
How Traders Combine CCI with Other Tools
CCI answers "how far has price stretched," which is most useful paired with a tool that answers a different question entirely:
- ADX for trend strength — a CCI oversold reading inside a strong uptrend (high ADX, price above a rising Moving Average) is a pullback-buy candidate; the same reading inside a directionless, low-ADX market is just noise.
- ATR for volatility-based stops — CCI tells you when price has stretched, but not how far a stop needs to sit to avoid getting clipped by normal noise on the way back.
- Support and Resistance for where — a CCI reversal signal that lines up with a known support or resistance level carries more weight than one that fires in the middle of open space.
A Word of Caution
Like every oscillator on this site, CCI can stay pinned in the Overbought or Oversold zone for an extended stretch during a strong trend, repeatedly "signaling" a reversal that doesn't come — the same trap RSI has in strong trends. Check market structure first (see Trend vs Range) and treat CCI reversal signals as most reliable in ranging conditions, or filter them with a trend tool so you only take oversold buy signals inside an uptrend.
Download the Indicator
This custom indicator plots CCI with automatic alerts when it enters the overbought or oversold zone. It's available for both MetaTrader 4 and MetaTrader 5 below.
How to Install — MetaTrader 4
- Download the
cci-alert.mq4file below. - Open MetaTrader 4 → click
File→Open Data Folder. - Place the file in the
MQL4/Indicatorsfolder. - Restart MetaTrader 4, then drag the indicator from the Navigator window onto the chart.
How to Install — MetaTrader 5
- Download the
cci-alert.mq5file below. - Open MetaTrader 5 → click
File→Open Data Folder. - Place the file in the
MQL5/Indicatorsfolder. - Restart MetaTrader 5, then drag the indicator from the Navigator window onto the chart.
Both files are source code — open and review the full code before using it, for your own safety.