CCI settings: does the ±100 fade or the breakout actually win?
2,448 CCI settings swept on USD/JPY: the line sits outside ±100 for 40% of the year, the breakout beat the fade everywhere, and the best reading is a moving average.
CCI (Commodity Channel Index) measures how far price has travelled from its own average, divided by how far it usually travels. Two lines are drawn at +100 and −100, and crossing them is described as the market having gone too far.
What you do next is where the advice splits. One school fades the ±100 line: past it, take the other side. The other school follows it: a break through +100 is a buy. Same line, opposite trades, and the indicator's definition does not settle which is right.
There is a quieter assumption underneath both. The ±100 lines are supposed to be rare. The 0.015 constant in the formula is usually explained as the number that keeps roughly 70–80% of readings inside the band.
That is where this test starts. The line sat outside ±100 for about 40% of the year.
What CCI actually measures
Three steps:
- Typical price = (high + low + close) ÷ 3
- Mean deviation = the average distance of the last N typical prices from their own average
- CCI = (typical price − average) ÷ (0.015 × mean deviation)
The numerator is how far price has gone; the denominator is how far it normally goes. CCI is a multiple of a normal move.
Three arbitrary choices sit inside that: the typical price, the mean deviation rather than a standard deviation, and the constant. Each one is checkable.
The constant and the level are one knob
0.015 is a divisor, so changing it rescales the whole line. A different constant is the same indicator read at a different level, not a different indicator.
| Constant | Equivalent level at 0.015 | Largest error |
|---|---|---|
| 0.010 | 66.7 | 1.1e-13 |
| 0.015 | 100 | 0 |
| 0.020 | 133.3 | 5.7e-14 |
| 0.030 | 200 | 0 |
The errors are floating-point rounding. There are not two settings here; there is one.
The period sets a hard ceiling on the level
Deviations from a mean sum to zero, so the positive ones and the negative ones total the same amount. A single bar can hold at most all of the positive half, which caps |CCI| at period ÷ 0.03.
| Period | Ceiling | Largest reading in 2025 (H1) |
|---|---|---|
| 7 | 233.3 | 233.3 |
| 10 | 333.3 | 333.3 |
| 14 | 466.7 | 466.7 |
| 20 | 666.7 | 507.2 |
| 30 | 1000.0 | 596.4 |
| 50 | 1666.7 | 592.1 |
This is not a theoretical bound the market stays away from. Nine of the eighteen timeframe-and-period cells hit their ceiling exactly during the year.
The practical consequence: shorten the period and the higher levels stop existing. In this sweep, seven settings per cell — period 7 waiting at ±250 — never fired once, in all twelve timeframe-and-window cells. Period and level are not independent.
Mean deviation or standard deviation
Swapping the denominator for a standard deviation (H1, 2025):
| Period | Correlation | Bars that disagree about ±100 | Bars that disagree about zero |
|---|---|---|---|
| 7 | 0.9961 | 9.73% | 0% |
| 14 | 0.9950 | 9.11% | 0% |
| 50 | 0.9957 | 9.57% | 0% |
Not one bar disagrees about the zero line. The denominator is never negative, so no measure of spread can change the sign. It only moves the scale — and there it flips the ±100 reading on about one bar in ten.
Setting it up and reading it
It ships with everything. CCI draws in its own panel below the price chart, not over the candles.
| Platform | Where to add it |
|---|---|
| MT4 / MT5 | Insert → Indicators → Oscillators → Commodity Channel Index |
| TradingView | Search the indicator list for Commodity Channel Index |
| Browser (Formiq) | Pick "CCI" from the indicator list |
The fields in the settings dialog
| Field | Default | What it does |
|---|---|---|
| Period | 14 | How many bars go into the calculation. Some traders use 20 |
| Apply to | Typical price (HLC/3) | The average of high, low and close — not the close |
| Levels | −100 and +100 | Two horizontal lines drawn inside the panel; the decision points |
MT4 sometimes opens with no level lines at all. Add −100 and 100 on the "Levels" tab, otherwise nothing in this article is visible on your screen.
What appears
One line moving up and down inside the panel. Unlike RSI or the stochastic, it has no ceiling and no floor — it can travel far above or below zero.
| Where the line is | The usual reading |
|---|---|
| Above +100 | Overbought, or a strong push upward |
| Between −100 and +100 | Neutral, nothing to do |
| Below −100 | Oversold, or a strong push downward |
| Crossing zero | The direction turned |
The "or" is there because two schools read the same position in opposite ways. This article measures both.
How people trade it
| Name | Entry | The idea |
|---|---|---|
| Fade | Buy below −100, sell above +100 | It went too far, so it comes back |
| Breakout (±100) | Buy when it breaks above +100, sell when it breaks below −100 | Breaking out means momentum |
| Zero cross | Buy crossing above 0, sell crossing below | The direction changed |
Looking at the same ±100 lines, the fade and the breakout place opposite trades. The indicator's definition does not settle which is right, so both were run under identical conditions here.
There are fewer knobs than it looks
Period and level look like two settings, but as the article shows below, the period also caps the level — a 7-bar CCI can never travel past ±233.3. Changing the applied price to the close gives a different line too: the ±100 state disagrees on 14.68% of bars at period 7 and 5.00% at period 50. Not a difference to wave away.
How this was measured
| Item | Value |
|---|---|
| Pair | USD/JPY |
| Window | 2025-01-01 to 2025-12-31, with 2024 run identically for comparison |
| Timeframes | 15-minute / 1-hour / 4-hour |
| Readings | Fade (take the other side past ±level) / breakout (take the side it broke) / zero cross |
| Periods | 7, 10, 14, 20, 30, 50 |
| Levels | Fade: entry 100/150/200/250 × exit 0/50/100. Breakout: 50/100/150/200/250. Zero cross: −100/−50/0/50/100 |
| Combinations | 204 per cell; 3 timeframes × 4 windows = 2,448 runs |
| Exit | The opposite signal. Only the fade carries a separate exit level |
| Stops and targets | None in the main sweep, measured separately below |
| Spread | 0.3 pips fixed, filled at the close |
| Size | 0.1 lot |
The fade points one way — "below −100 is a buy" only ever buys — so the long and the short were swept as separate systems. The breakout and the zero cross are symmetric, so entry and exit share one rule set.
What price does after ±100, with no strategy involved
Before backtesting anything, look at price alone. No entry rule, no exit rule, so nothing is left but whether ±100 says anything.
Every bar where a 14-period CCI broke out of ±100, and every bar where it came back inside, is collected, and the move over the next 10, 20 and 50 bars is measured. Raw moves would be meaningless: USD/JPY rose 1,632 pips in 2024, so any long-side number is mostly drift. The unconditional average move over the same horizon is subtracted, leaving how much more the move was than an average bar's.
| Timeframe | After breaking out (+10 / +20 / +50 bars) | After coming back inside | Events |
|---|---|---|---|
| M15 | +0.46 / +0.93 / +2.04 | −0.86 / −1.01 / −1.92 | 5,776 |
| H1 | +2.51 / +3.93 / +2.89 | −2.61 / −3.06 / −3.17 | 1,396 |
| H4 | −3.89 / −3.14 / −9.79 | +2.91 / +5.02 / +12.50 | 346 |
Both years and both directions pooled. On the 15-minute and hourly charts, breaking out is followed by more move than usual and coming back inside by less. Split by year, timeframe and horizon, the break-out cells beat the drift in 22 of 24 and the come-back cells fell short of it in 24 of 24.
The four-hour chart does the opposite of both — but on 6 of 12 and 5 of 12, which is a coin flip, over only 346 events.
So ±100 leans towards keep going, not too far. At least on the two faster charts.
The three readings, backtested
Period 14 and level 100, read three ways. The fade column is the long and the short added together.
| Timeframe | Year | Fade | ±100 breakout | Zero cross |
|---|---|---|---|---|
| M15 | 2025 | −1,175.2 | +643.4 | −1,136.4 |
| M15 | 2024 | −805.2 | −203.2 | −910.7 |
| H1 | 2025 | −1,193.7 | +424.8 | +2,294.4 |
| H1 | 2024 | −2,249.8 | +1,839.9 | +2,579.8 |
| H4 | 2025 | −156.2 | +577.5 | +569.5 |
| H4 | 2024 | −995.8 | +863.8 | +1,363.3 |
The fade lost in all six cells. The breakout made money in five, the zero cross in four. The trading result agrees with the price-only measurement above.
Trade counts, hourly 2025: the fade takes 210 longs and 212 shorts, the breakout 321, the zero cross 693.
Why the fade loses
Always the same shape: high win rate, small wins, large losses.
| Reading | Timeframe | Mean win rate | Mean win | Mean loss | Profitable in 2025 |
|---|---|---|---|---|---|
| Fade, long | H1 | 59.9% | +44.4 | −68.7 | 27/69 |
| Fade, short | H1 | 56.7% | +44.0 | −83.1 | 2/69 |
| ±100 breakout | H1 | 40.1% | +101.6 | −71.8 | 20/29 |
| Zero cross | H1 | 31.2% | +59.5 | −23.3 | 27/30 |
Settings with at least one trade. Ranking these by win rate reverses the ranking by profit — the eighteenth article in this series to find it.
The short fade is the worst of the set: on the 15-minute chart, 0 of 69 live settings finished 2025 in profit. That is not just the trend, either; 2025 closed 56 pips below where it opened.
What survived both years
One year on its own is a selection problem, so here is the count of settings profitable in 2024 and 2025.
| Reading | M15 | H1 | H4 |
|---|---|---|---|
| Fade, long | 2/72 | 8/72 | 22/72 |
| Fade, short | 0/72 | 0/72 | 1/72 |
| ±100 breakout | 17/30 | 20/30 | 11/30 |
| Zero cross | 6/30 | 22/30 | 13/30 |
The hourly zero cross is the most durable at 22 of 30. The short fade survives 1 of 216.
The four-hour long fade is the one respectable fade number at 22/72 — but 56 of 69 live settings were profitable in 2025 alone. A reading that works for six settings in ten one year is not a reading that works.
Settings, by reading
The same knob points in opposite directions depending on the reading, so these are split.
Zero cross, 15-minute chart, by period
| Period | Mean 2025 | Mean trades | Profitable 2025 | Profitable 2024 |
|---|---|---|---|---|
| 7 | −1,121 | 4,551 | 0/5 | 0/5 |
| 14 | −730 | 3,030 | 0/5 | 0/5 |
| 30 | +328 | 1,956 | 3/5 | 3/5 |
| 50 | +1,255 | 1,419 | 5/5 | 4/5 |
On the 15-minute chart the zero cross improves the longer you make it, and the reason is the trade count. Period 7 at level 0 trades 4,533 times a year, which is 1,359.9 pips of spread at 0.3 pips. It lost 1,699.3 — so four fifths of the loss is the cost of trading at all. The same rule at period 50 takes 1,469 trades and finishes +614.1 in 2025 and +189.5 in 2024.
±100 breakout, hourly, by level
| Level | Mean 2025 | Mean trades | Profitable both years |
|---|---|---|---|
| ±50 | +1,551 | 404 | 6/6 |
| ±100 | +1,395 | 292 | 6/6 |
| ±150 | +1,519 | 182 | 6/6 |
| ±200 | −936 | 85 | 2/6 |
| ±250 | −675 | 29 | 0/6 |
Flat from ±50 to ±150, then it falls apart. ±250 fires 29 times a year.
Zero cross, hourly, by level
| Level | Mean 2025 | Mean 2024 | Profitable both years |
|---|---|---|---|
| −100 | +166 | +1,892 | 3/6 |
| −50 | +1,325 | +2,309 | 6/6 |
| 0 | +1,548 | +1,817 | 6/6 |
| +50 | +1,763 | +653 | 4/6 |
| +100 | +1,710 | −425 | 3/6 |
No reason to move the line off zero. Only −50 and 0 are 6/6. The positive offsets look better in 2025 and collapse in 2024.
Where the default lands
Most platforms open CCI at period 14, and the lines are drawn at ±100.
| Reading | Timeframe | Rank in 2025 | Rank in 2024 |
|---|---|---|---|
| ±100 breakout | H1 | 18/30 | 10/30 |
| Zero cross (14 @ 0) | H1 | 6/30 | 4/30 |
| ±100 breakout | M15 | 13/30 | 26/30 |
The default period on the zero line is top-quartile in both years. The default breakout is mid-table — not bad, but ±50 or ±150 held up better.
Out-of-sample: last year's best, applied to this year
The check at the centre of this series.
| Reading | Timeframe | Best of 2024 | Applied to 2025 |
|---|---|---|---|
| ±100 breakout | H1 | 20 @ ±100 (+3,393.7) | +1,048.5 (16/30, median +1,113.0) |
| Zero cross | H1 | 30 @ −50 (+3,046.7) | +1,729.0 (13/30, median +1,294.1) |
| ±100 breakout | M15 | 30 @ ±50 (+3,250.8) | +1,717.2 (5/30, median +549.8) |
| Fade, long | H4 | 10 / 200→100 (+946.1) | +176.7 (54/72, median +387.5) |
Two of the four beat the median: the 15-minute breakout (5th of 30) and the hourly zero cross (13th of 30). The hourly breakout landed 64.5 pips below its median, at +1,048.5 against +1,113.0.
Only the fade sank clearly — 54th of 72, +176.7 against a median of +387.5. By rank none of the trend readings fell into the bottom half, which is an unusually mild result for this series; but only half of them actually cleared the median.
Rank correlations between the two years:
| Reading | M15 | H1 | H4 |
|---|---|---|---|
| ±100 breakout | +0.527 | +0.255 | −0.408 |
| Zero cross | +0.605 | −0.112 | −0.514 |
| Fade, long | +0.316 | +0.008 | −0.214 |
Only the 15-minute chart is positive. Every four-hour figure is negative — last year's ranking there points at this year's bottom half.
For scale: the best four-hour breakout of 2025 was period 50 at ±250, +1,777.3 pips — on 2 trades. Numbers like that cannot choose a setting.
The zero cross is a moving average crossover
This is the clearest result in the test.
CCI's denominator is 0.015 × mean deviation, and a mean deviation is never negative. So the sign of CCI is exactly the sign of (typical price − its own simple moving average). Measured across periods 7 to 50: zero sign disagreements, zero crossing-bar disagreements.
The best-performing reading in this article is therefore reproducible without CCI. What CCI contributes is the typical price. Comparing it against the identical rule reading the close — an SMA(1)/SMA(N) crossover, since SMA(1) is the close — over all 36 matched runs:
| CCI zero cross | Close / SMA cross | |
|---|---|---|
| Trades (H1, 2025, period 14) | 693 | 885 |
| Win rate | 30.45% | 26.44% |
| Net pips | +2,294.4 | +1,801.6 |
Across all 36:
- Fewer trades in 36 of 36
- Higher win rate in 36 of 36 (by 1.5 to 8.0 points)
- More net pips in only 25 of 36
(H+L+C)/3 filters whipsaw. A close-only rule counts every bar that pokes through the average and comes back; averaging the bar's own range means it never poked through. That effect is completely consistent — no exceptions in 36 runs.
But some of the trades it removed were good ones, which is what the other 11 runs are. The filtering is certain; the improvement is not.
Filters, stops and cost
An ADX filter breaks the trend readings
Filtering for a strong trend ought to help a trend rule. It does the opposite.
| Setting | Baseline | ADX ≥ 20 | ADX ≥ 25 | ADX ≥ 30 |
|---|---|---|---|---|
| ±100 breakout, M15, 2025 | +643.4 (1,298) | −183.8 (854) | −618.9 (577) | −229.5 (358) |
| Zero cross, H1, 2025 | +2,294.4 (693) | +786.0 (399) | +617.2 (285) | −19.7 (179) |
Adding a trend filter to a trend rule is a duplicated condition. The GMMA test found the same thing; this is the third time in the series.
The four-hour fade is the exception — 2025 improves from +796.2 to +1,091.2 at ADX ≥ 30, on 16 trades — but the same filter takes 2024 from +26.6 to −527.9. It does not cross the year boundary.
Sessions
The Tokyo window (UTC 0–8) helped the breakout: M15 2025 +643.4 → +877.0, M15 2024 −203.2 → +1,718.7, H1 2025 +424.8 → +1,146.8. H1 2024 slipped from +1,839.9 to +1,746.0, so three of four. It did not help the zero cross (H1 2025 +2,294.4 → +571.3).
Stops and targets
On the hourly zero cross, a 100-pip stop with a 200-pip target lifts 2025 to +2,807.8 but drops 2024 to +2,089.5 against a +2,579.8 baseline. A 24-bar time exit gives +3,588.2 in 2025 and +2,303.0 in 2024. Nothing improved both years.
Cost
Net pips fall linearly with the spread. Pips lost = trades × spread held with no error on all four settings.
| Setting | Trades | Spread 0 | 0.3 | 1.0 | Break-even |
|---|---|---|---|---|---|
| ±100 breakout, M15 | 1,298 | +1,032.8 | +643.4 | −265.2 | 0.80 pips |
| ±100 breakout, H1 | 321 | +521.1 | +424.8 | +200.1 | 1.62 pips |
| Zero cross, H1 | 693 | +2,502.2 | +2,294.4 | +1,809.3 | 3.61 pips |
The hourly zero cross breaks even at 3.61 pips, the widest margin in this series. The 15-minute breakout has 0.80 pips of room and does not survive a one-pip spread.
What this test can say
- ±100 is not unusual. The share of readings inside the band is 57.5–61.9%, not 70–80%, on every one of eighteen timeframe-and-period cells
- ±100 leans towards continuation, not exhaustion. The move after breaking out beats the drift in 22 of 24 fifteen-minute and hourly cells; the move after coming back inside falls short in 24 of 24. The fade lost in all six backtested cells
- Period and level are not independent. |CCI| cannot exceed period ÷ 0.03, nine of eighteen cells touched their ceiling, and period 7 waiting at ±250 never fired
- The 0.015 constant is the level. Setting it to 0.01 is numerically identical to moving the level to 66.7
- The most durable reading is not specific to CCI. The zero cross is a typical-price moving average crossover. What CCI adds is the (H+L+C)/3 input, which cut trades in 36 of 36 runs and lifted win rate in 36 of 36, but improved net pips in 25
Related
- RSI period and levels — the same "one line, two systems" split, measured separately for the fade and the follow
- Bollinger Band deviation — the first article to split a band into a fade and a breakout
- GMMA line count — another trend rule that an ADX filter destroys
- The Alligator's forward shift — the same one-choice-at-a-time approach, applied to a displacement along the time axis
- Moving average crossover periods — where this article's zero cross ends up
- Psychological line settings — the same "is the indicator doing anything" test, run on an indicator that discards the size of every move
- Heikin Ashi settings — the Heikin Ashi colour turns out to be a price/average cross too
- MA disparity settings — the same distance from an average, read as a raw percentage with no divisor in the way
Limits of this test
- One pair, two years. CCI was built for commodity futures; on a different market even the share of time outside ±100 would change
- 2024 rose 1,632 pips and 2025 closed 56 pips lower. The short fade failed in both, but "both" here means one trending year and one flat one
- The spread is fixed at 0.3 pips. In practice it widens around releases, and a setting with 0.80 pips of room does not survive that
- Exits are the opposite signal. Adding stops and targets produces the separate numbers above, and none of them improved both years
- The four-hour samples are small — about 40 breakout trades a year, about 20 for the fade. The four-hour chart also inverted in the price-only measurement, but on 6 of 12 cells, which decides nothing
- "The typical price helps" is consistent for trade count and win rate only. For net pips it is 25 of 36, and whether that counts as helping depends on which column you read
Questions people ask
- What are the best CCI settings?
- In this test the reading mattered more than the numbers. Reading ±100 as a breakout beat reading it as an overbought/oversold fade in every one of six timeframe-and-year cells at period 14. The single most durable setting was the zero-line cross on the hourly chart, which finished +2,294.4 pips in 2025 on 693 trades and +2,579.8 pips in 2024 on 727, and stayed profitable in both years for 22 of 30 settings.
- Is a CCI reading past ±100 unusual?
- No. The 0.015 constant in the formula is usually explained as putting roughly 70-80% of readings inside ±100. Measured on USD/JPY in 2025, the share inside the band was 57.5-61.9% on every one of eighteen timeframe-and-period cells, so the line spends about 40% of the year outside it.
- Should CCI be used for mean reversion or trend following?
- Trend following won. At period 14 and level 100 the fade lost money in all six timeframe-and-year cells, while the breakout made money in five of six. Price agrees: measured with no strategy at all, the move after breaking out of ±100 beat the unconditional drift in 22 of 24 fifteen-minute and hourly cells, and the move after coming back inside fell short of it in 24 of 24.
- What does the CCI zero line mean?
- It is the typical price crossing its own simple moving average, exactly. CCI's denominator is never negative, so the sign of CCI is the sign of (typical price minus its average). Across periods 7 to 50 there were no sign disagreements and no crossing-bar disagreements. The only thing CCI adds over a close-price moving average crossover is the (H+L+C)/3 input, which cut the trade count in all 36 matched runs and lifted the win rate in all 36, but improved net pips in only 25.
- Does the CCI period change what levels are reachable?
- Yes, and it is a hard limit. Deviations from a mean sum to zero, so |CCI| can never exceed the period divided by 0.03. A 7-bar CCI tops out at ±233.3, which is why every rule waiting at ±250 with period 7 sat dead in all twelve timeframe-and-window cells of this sweep. Nine of eighteen timeframe-and-period cells actually touched their own ceiling during the year.
Formiq is a free browser-based FX terminal with replay practice and no-code backtesting. Open the chart or see what the free plan includes.