Last updated: May 14, 2026

I Tested 16.5 Million Filters on NASDAQ: Here's the Best One

Across 16.5 million tests on 1,000 e-mini NASDAQ day trading strategies, one filter beat every other oscillator, trend indicator, volatility measure, and volume condition: a Commodity Channel Index (CCI) correction filter that fires after the market has been oversold.

It improved net profit on 69% of strategies, lifted average trade by 22% on more than half, and turned 57.8% of losing variations into profitable ones. This is the methodology and the exact condition.

The Overfitting Problem This Solves

Most filter selection looks like this: take a strategy, layer on an indicator, tune the parameters until the equity curve looks great, ship it. The result is a backtest illusion. The filter was fit to the historical path of one specific strategy and breaks the moment anything about the market changes.

There is a very different way to evaluate filters. Instead of asking "does this make my strategy look better?", ask "does this consistently improve the majority of 1,000 similar strategies tested across as many simulated market regimes?" If a filter helps 690 out of 1,000 variations, the edge is structural, not coincidental.

That is exactly what the Indicator Matcher in BreakoutOS does. And on NASDAQ 60-minute data, the answer it returned was unexpected.

The Base Strategy: A Simple NASDAQ Breakout

The starting point was a deliberately plain breakout model on e-mini NASDAQ, 60-minute bars:

That single condition already produces a tradable edge on NASDAQ. The question was not whether the base strategy worked. The question was which filter would push it from "tradable" to "robustly tradable in unseen future market regimes."

How 16.5 Million Tests Were Run in 3 Minutes

The Indicator Matcher does three things in sequence:

  1. Loads the base strategy and its source data (NASDAQ 60-minute OHLC).
  2. Generates 1,000 variations with similar DNA by decomposing the entry and exit logic and creating alternative entry rules, exit rules, and parameter combinations that share the core character of the original.
  3. Runs every supplied filter across all 1,000 variations, sweeping each filter's input parameters.

The filter library included RSI conditions, DMI trend conditions, moving average conditions, ATR-based volatility conditions, and volume conditions. Across all filter types, parameter sweeps, and 1,000 strategy variations, the workload totaled 16.5 million backtest iterations.

Runtime in a web browser on an M4 MacBook: roughly 3 minutes. The same workload on TradeStation would typically take days.

The Winning Filter: CCI Correction

Across the entire test, one condition dominated: a Commodity Channel Index correction filter. The Indicator Matcher reports three uplift metrics, and this filter scored at the top on all of them:

Metric Result What It Means
Net profit improvement rate 69% 690 of 1,000 strategy variations saw net profit go up.
Average trade improvement +22% on 54% of strategies More than half saw average trade size lift by ~22%.
Bounce index 57.8% Of all losing variations, 58 in 100 became profitable.

The bounce index is the most interesting of the three. It does not measure whether already-profitable strategies got marginally better. It measures rescue power: how many strategies that were unprofitable on their own became profitable once the filter was applied. 57.8% is a very large number for a single condition.

When applied back to the base NASDAQ breakout, the change was concrete: net profit / drawdown ratio rose from 7.53 to 8.6, and average trade climbed from 116 to 149.

The Exact Pseudocode

The condition is short. The logic is intuitive:

Filter for long entries:
Lowest( CCI(27), 18 bars ) < -100

Translated into plain English: only take the long breakout if, somewhere in the previous 18 bars, the Commodity Channel Index with period 27 dipped below -100. That is a textbook definition of an oversold extreme. The filter only enters long breakouts after the market has shown a real correction.

That is logical. NASDAQ breakouts taken in unsustainable strength tend to fade. Breakouts taken after a corrective washout have room to run.

The 2D parameter map from the Indicator Matcher also showed something important: the surrounding parameter values (other CCI periods, other lookback lengths) all kept improving the same 1,000 strategies. That neighborhood of green is the signature of a real edge. If the only parameter combination that worked was the single best one, that would be curve fitting. A wide, stable plateau means the underlying behavior is robust.

Why This Is Different From Curve Fitting

Three structural reasons this is not the usual overfit trap:

  1. The filter was validated across 1,000 strategy variations, not one. A single-strategy optimization can almost always be made to look spectacular. A filter that improves 690 of 1,000 similar but distinct strategies is doing something the market actually rewards.
  2. The parameter neighborhood is wide. Many adjacent CCI periods and lookback lengths also improved the majority of strategies. An overfit filter has one sharp peak and nothing around it. This one has a plateau.
  3. The logic is interpretable. "Enter long breakouts after a correction" is a real market mechanism, not a numerological accident. When the why is intuitive, the edge tends to persist.

Applying This to Your Own Strategy

The exact CCI condition above is calibrated for the NASDAQ 60-minute breakout described here. If you want to find the equivalent for a different strategy or different market, the process inside BreakoutOS is the same:

  1. Upload your base strategy and its OHLC data.
  2. Open the Indicator Matcher and select the filter library you want to test.
  3. Run the analysis. The system generates 1,000 strategy variations with similar DNA and sweeps every filter and parameter combination across them.
  4. Sort by uplift index, average trade improvement, or bounce index.
  5. Inspect the 2D parameter map. Pick a configuration in the middle of a green plateau, not on a sharp peak.

The filter that wins for your strategy may not be CCI. The lookback and threshold values will almost certainly differ. But the framework, testing one condition against 1,000 variations to verify the edge is structural, is what separates filters that survive live trading from filters that only survive backtests.

Related Research

CCI vs RSI: 4,500,000 Tests Show a Clear Winner - Head-to-head test of CCI against RSI across millions of iterations.

Finding the Best Trading Filters with BreakoutOS (Index Markets) - 100 indicators tested across 3,500 NASDAQ strategies.

Moving Average Filters Tested on 1,000 Strategies: What the Data Shows - How MA filters score on the same 1,000-strategy framework.

See the Indicator Matcher in Action

Watch how BreakoutOS finds robust filters across 1,000 strategies in minutes.

Watch Demo Videos

Frequently Asked Questions

What does the bounce index of 57.8% actually mean?

Bounce index measures how many losing strategy variations were turned into profitable strategies after the filter was applied. A bounce index of 57.8% means that out of every 100 losing strategies in the test pool, 58 became profitable once this CCI condition was added. That is rescue power, not just optimization.

Why is testing across 1,000 strategies more reliable than testing on one?

A filter that improves one strategy can easily be curve-fitted to that exact dataset. When the same filter improves the majority of 1,000 strategies with similar DNA, that consistency is statistical evidence the edge is real and not an accident of historical noise. It simulates how the filter would behave across many possible market regimes and entry rules.

Why CCI specifically? Why not RSI or stochastics?

CCI measures deviation from a moving average normalized by mean absolute deviation, which makes it especially good at detecting genuine corrections (extreme oversold readings) rather than minor pullbacks. In this test it outperformed every other oscillator and trend indicator. RSI and stochastics generally scored lower across the 1,000-strategy pool.

How long did it take to run 16.5 million tests?

Roughly 3 minutes inside BreakoutOS running in a web browser. The same workload on TradeStation or NinjaTrader would typically take hours or days because those platforms iterate sequentially rather than in parallel.

Can I run this same study on my own strategy?

Yes. The Indicator Matcher in BreakoutOS analyzes the DNA of any uploaded strategy, generates 1,000 similar variations, then tests every supplied filter across all of them. You upload your strategy and your data, pick the conditions, and the system handles the rest.
Tomas Nesnidal

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.