Last updated: April 16, 2026
CCI vs RSI: I Tested Both on 4,500,000 Iterations - Here Is What Won
Both CCI (Commodity Channel Index) and RSI (Relative Strength Index) are widely used as filters in breakout strategies. Most traders pick one based on habit or a vague sense that one "feels better." That is not how you validate an indicator. In this test, I ran 4,500,000 iterations - 1,000 strategy variants against 1,000 different market conditions on e-mini NASDAQ - to find out which one actually improves strategy performance in a statistically meaningful way. The results were not close.
How the Test Was Designed
The starting point is a simple foundational breakout strategy on e-mini NASDAQ, 60-minute timeframe. Long only. Entry when price breaks above yesterday's low plus 0.8x ATR(40). Exit at end of the trading day. No indicator filter - just the raw ATR-based breakout entry.
From that base strategy, BreakoutOS extracts the strategy DNA and generates 1,000 sibling variations - all sharing the same core structure, same market, same timeframe, but with small differences in parameters that reflect different possible strategy builds. This is the key principle behind the test: we are not comparing CCI and RSI on a single cherry-picked strategy. We are comparing them across 1,000 different versions of the same strategy type.
Each of those 1,000 strategies is also tested across 1,000 different market condition samples. So the filter is not just proven on one data set - it has to work across the full diversity of market regimes those strategies encounter.
Then we add the indicator test layer: 4,500 parameter combinations (input parameters N1 and N2, each ranging from 1 to 20) for each of the 15 indicator conditions being tested. Multiply 4,500 combinations by 1,000 strategies and you reach 4,500,000 total iterations.
This approach eliminates the single biggest problem with most indicator research: overfitting. If an indicator only works when you find the one "right" parameter on the one "right" strategy and the one "right" date range, it is useless in live trading. What we want is an indicator that works on the vast majority of 1,000 different strategy variants and 1,000 different market conditions. That is objective, non-cherry-picked proof.
The 15 Conditions Being Tested
The test covers 15 distinct indicator conditions split between RSI and CCI - different ways each indicator can be configured as a filter. The optimization framework uses two input parameters: N1 (1 to 20) and N2 (1 to 20), which are then scaled by multipliers to cover the realistic usable range for each indicator.
For RSI, the conditions include:
- Period 2-40 (multiplier 2), threshold above or below 50 - the standard RSI trend filter
- Period 3-60 (multiplier 3), above or below 50 - wider period range, same threshold logic
- Period 3-60, above 75 or below 25 - classic overbought/oversold thresholds
For CCI, the conditions include:
- Period 20-200 (multiplier 10), above or below 0 - CCI reacts better with higher periods, so the range is wider than RSI
- Period 20-200, above 100 or below -100 - the standard CCI overbought/oversold zone
- Highest or lowest CCI value over a lookback window - the highest/lowest condition, which turned out to be the decisive one
The RSI conditions are standard and widely understood. The CCI conditions include one that most traders never use - and it is the one that changed everything in this test.
The Secret Sauce: CCI's Highest/Lowest Value Condition
Standard CCI usage asks: where is CCI right now? Is it above 100, below -100, above 0? That is useful, but it only captures the current reading.
The highest/lowest condition asks a different question: has CCI reached a specific extreme at any point over the last N bars? For a long breakout strategy, the condition looks like this:
- Take the lowest value of CCI(period) over the last N2 bars
- If that lowest value is below -100, the trade is allowed
What this is actually testing: has the market experienced a pullback - a dip into oversold CCI territory - at some point in the recent lookback window? If yes, the breakout attempt is being made from a cleaner base, with less directional momentum already priced in. That makes the breakout more reliable.
This is different from asking "is the market currently oversold." It is asking "has there been a meaningful reset in recent bars." That distinction is what gives this condition its edge.
The optimization tested CCI period from 3 to 60 bars and lookback from 2 to 40 bars. The resulting optimization map - which shows improvement across combinations - showed a large stable green region, meaning the condition worked across a wide range of parameter choices, not just a narrow spike.
The Indicator Scorecard Results
After 4,500,000 iterations, BreakoutOS produces an indicator scorecard. Each condition is evaluated on three fitness functions: net profit/drawdown ratio, average trade, and bounce index. A condition must pass all three to earn a strong recommendation.
Here are the results for the best CCI condition - the lowest/highest value filter:
| Metric | Strategies Improved (out of 1,000) | Average Improvement |
|---|---|---|
| Net Profit / Drawdown Ratio | 640 | +1.5% |
| Average Trade | 650 | +65% |
| Bounce Index | 610 | +60% |
640 out of 1,000 strategies showed an improved net profit/drawdown ratio. 650 out of 1,000 showed improved average trade - by 65% on average. And 610 out of 1,000 showed an improved bounce index - meaning the filter rescued 60% of originally losing strategy variants and turned them profitable.
For comparison, the scorecard across all 15 conditions ranked like this:
| Rank | Indicator & Condition | Recommendation |
|---|---|---|
| 1st-5th | CCI (various conditions) | 100% |
| 6th-10th | CCI (additional conditions) | 75% |
| 11th+ | RSI (best condition) | 50% - "viable" |
The top 10 conditions in the scorecard were all CCI. RSI did not appear until the conditions with a 50% recommendation - the minimum threshold to be considered usable at all.
CCI After Calibration: Real Strategy Impact
After identifying the best CCI condition, the next step is calibration - picking specific parameter values from the validated range and applying them to the base strategy to see the actual before/after numbers.
The calibrated parameters: CCI period 30, lookback 14 bars, threshold below -100 for the lowest value. The resulting condition: if the lowest value of CCI(30) over the last 14 bars is below -100, enter the trade.
Strategy performance before and after adding this condition:
| Metric | Without Filter | With CCI Filter |
|---|---|---|
| Average Trade | $116 | $128 |
| Maximum Drawdown | $40,000 | $30,000 |
The average trade improvement of $12 per trade is modest in isolation - but it is not the point. The point is that this improvement was validated across 1,000 different strategies and 1,000 different market conditions before we even looked at the base strategy. These are not overfitted numbers. The maximum drawdown cut from $40,000 to $30,000 - a 25% reduction - is the more significant result for real account management.
Most traders would optimize their CCI settings on the single backtest they are looking at and get much bigger numbers. But those numbers would fall apart in live trading. The calibrated values here are deliberately conservative - because they are supported by 4,500,000 iterations of proof, not one lucky backtest curve.
What the Optimization Maps Show
BreakoutOS generates a 2D optimization map for each condition - a grid where the X axis is N1 (CCI period) and the Y axis is N2 (lookback bars), and each cell is colour-coded green (improved) or red (degraded) relative to the baseline strategy.
For the best CCI condition, the map showed an unusually large green region. Almost any combination of CCI period and lookback in the tested range produced an improvement. This is the critical robustness signal.
A narrow spike of green surrounded by red is a red flag - it means you found a parameter that happened to work in the backtested period, but any deviation breaks the result. That is curve-fitting. A wide green plateau means the condition works because there is a real underlying market dynamic, not because you found the one magic number.
The safe calibration range identified from the map:
- CCI period: 24-36, step 3 (central value: 30)
- Lookback bars: 8-16, step 2 (central value: 12-14)
You can pick any value within those ranges and the result remains robustly validated. The blue dot on the optimization map marks the local optimum - but because the entire surrounding green area is also validated across 1,000 strategies and 1,000 market conditions, you are not dependent on hitting that exact value.
See BreakoutOS in Action
Watch a live demo and see how traders build and test breakout strategies - including indicator filtering like this.
Watch the DemoCCI vs RSI: The Verdict
There is nothing subjective about this result. Across 4,500,000 iterations, every top condition in the scorecard was CCI. RSI's best performance was a 50% recommendation - meaning it improved roughly half of tested strategies under the most favourable configuration. That is the minimum threshold for "viable," not a strong endorsement.
This does not mean RSI is a bad indicator in general. But for breakout strategy filtering on e-mini NASDAQ at the 60-minute timeframe, CCI is the stronger tool. The data is explicit.
More importantly, this test reveals why the specific way you use CCI matters. Standard CCI conditions - above 100, below -100, above 0 - performed well. But the highest/lowest lookback condition outperformed them all. The logic is sound: it captures whether the market has recently experienced a momentum reset, not just its current reading. That context matters for breakout entries.
If you are using RSI as a filter right now, the practical takeaway is straightforward: swap it for CCI with the highest/lowest lookback condition, calibrate to period 30 and lookback 12-14, and test the result against your own strategies across a range of parameter values. Do not optimize for a single backtest - validate across variants. That is the only way to know if the improvement is real.
A future test will scan dozens of additional indicators using the same framework. CCI may not be the best option overall - it is simply the best of these two. But based on what the broader indicator research already shows (see the 100-indicator study linked below), CCI will likely hold up well against most oscillator-class alternatives.
Frequently Asked Questions
Is CCI a better indicator than RSI for trading?
What period should I use for CCI as a breakout filter?
What is the "bounce index" in algorithmic trading?
How do you use CCI to filter breakout trades?
Does RSI work as a filter for breakout strategies?
About the Author
Tomas Nesnidal is a breakout trading specialist, hedge fund co-founder, and creator of BreakoutOS. He has managed institutional portfolios using breakout strategies for over 15 years, trading from 65+ countries. He is the author of The Breakout Trading Revolution and co-founder of Breakout Trading Academy.