Independent strategy research

Do filters make a breakout system better? We tested a dozen.

Honest answer: zero of them beat doing nothing. We took a working, cost-aware breakout system on liquid futures — one that made money every year across a 13-year, 600,000-plus-trade backtest — and bolted on 10+ classic sizing and regime filters to see if any could improve it. None beat the plain flat baseline. The most convincing one was an artefact.

flat baseline — do nothing vol-regime artefact range-width 2× drawdown whipsaw down-weight two stacked worst of all gamma look-ahead config knobs 10+ overlays tested Better is above the line. Nothing cleared it.
Risk-adjusted return of each overlay relative to the flat baseline. The dashed line is doing nothing. Every filter lands on it or below; stacking two was the deepest hole of all. Shapes are illustrative — absolute figures stay in the paid product.
10+sizing & regime filter overlays plus selection-config knobs tested
0that beat the plain flat baseline under all three gates
13yand 600,000+ trades in the base backtest, cost-aware throughout

The question people never actually test

Every retail trader with a working setup asks the same next question: how do I make it better? Add a volatility filter. Size up in the good regime. Skip the choppy days. It feels like free money — you already have an edge, you're just steering it. We had the rare thing that makes this testable: a breakout system that already works after real costs. So we ran the experiment properly instead of eyeballing an equity curve.

The base system is boring on purpose. Pick the best-decorrelated legs, size them flat, hold. No regime cleverness. It made money in every one of 13 years. Then we tried, one at a time, to beat it with the filters everyone reaches for. Each overlay had to clear the same three gates the base system passes: a best-of-N placebo shuffle, a look-ahead audit, and a nested, rolling out-of-sample check. Same bar, no exceptions.

What we tried, and how each one died

Name-free by rule — this is a proprietary system, so no strategy, no basket, no tickers. What follows is the filter type and the exact failure mode. That's the useful part anyway.

Overlay / knob (what was tested)PlaceboVerdictWhy it failed
Volatility-regime position sizerP100ARTEFACTcircular — returns divided by an auto-correlated volatility term, so the "regime" was roughly 1/its own denominator; tail-fragile on FX
Range-width sizer (size up on narrow ranges)FAILEDreal on one instrument class alone, but on the basket it concentrated whipsaw risk and roughly doubled drawdown
Whipsaw / second-break down-weighterFAILEDimproved the worst year slightly, lowered risk-adjusted return and net; a real structure that doesn't monetize as a filter
Two overlays stackedWORSTcumulated variance — risk-adjusted return fell by roughly two-thirds and drawdown ballooned
Selection-config knobs (lookback, decorrelation, cadence, breadth)NO GAINcurrent settings are a genuine interior optimum; a short lookback inflated drawdown +44% to +109% over 13 years
Options-gamma regime (same-day)LOOK-AHEADthe day's realized regime leaks into an overnight-started book; the honest prior-day version predicts nothing
Options-gamma regime (intraday, at-entry)P100WEAK / OPENlook-ahead-safe and robust, but small (~+14% relative per-trade); portfolio benefit still being quantified

Placebo percentile is where the overlay ranks against thousands of shuffled-label copies of itself. P100 means it topped every shuffle — which, as the vol-regime sizer shows, is not the same as an edge.

The one that looked like a winner

The volatility-regime sizer was the seductive one. It looked significant in every single year and scored at the 100th placebo percentile — it beat every one of its own shuffled copies. On a normal day that's a green light. Here it was a red flag, because the effect was too big. A headline lift north of nine times should never come from a sizing tweak, and when a number is that good you go looking for the leak.

The leak was arithmetic. The sizer divided returns by a volatility term that was itself auto-correlated with those returns, so the "regime signal" was roughly one-over-its-own-denominator. It was measuring itself. Clean on metals, noise on energy, and on FX it was tail-fragile — dropping the top 5% of days flipped the sign. That's not a regime edge. That's a divide-by-volatility circularity artefact wearing a perfect placebo score.

A 100th-percentile placebo score is not proof of an edge. It's the moment you should get most suspicious, not least.

The real lesson: filters mostly add variance

Here's the pattern across all 10+ overlays. The base system's edge doesn't live in cleverness about when to trade. It lives in leg selection and decorrelation — picking positions that don't all lose on the same day. Every filter we added was a bet on top of that bet. And a bet on top of a bet doesn't compound the edge. It compounds the noise.

Stacking made this brutally visible. Combine the two least-bad overlays and you don't get the average of two mild tilts. You get their variance stacked: risk-adjusted return fell by roughly two-thirds and drawdown ballooned. Double-tilting is double-jeopardy. The range-width sizer told the same story more quietly — dazzling on one instrument class in isolation, a drawdown-doubler once it had to survive at the basket level, where its "narrow is better" mirage ignored the correlation it was quietly concentrating.

Even the config knobs said it. Sweep the selection lookback and a short, recency-weighted setting looks brilliant on the last two years — then inflates drawdown +44% to +109% across the full 13. That's a textbook recency overfit: the market's most recent character sold you a parameter that the other eleven years reject. The middle lookback beat both the shorter and longer ones on every metric. The current settings aren't a lucky best-of-many pick; they're an interior optimum that holds up when you actually roll it forward.

The one clean thing we did learn

The audit wasn't empty. Its cleanest result was diagnostic, not a filter: the system's losses concentrate in whipsaw ranges that break both directions. One-sided breaks were solidly positive. The first break that then reverses was the primary loss source. A genuine second break was roughly flat. This held across every instrument class and all 13 years — a real structural signature that explains why the system loses when it loses.

You'd think that's a filter waiting to happen: just down-weight the whipsaw. We tried. It improved the worst year a touch and lowered risk-adjusted return and net everywhere else. A real structure that still doesn't beat doing nothing once you price the variance it adds. Knowing your loss mechanism is worth a lot. It is not the same as having a knob that pays you to avoid it.

Why believe a null this flat

A null is only worth reading if the test could have found something. Ours could — the base system passes these exact gates, so the machinery clearly distinguishes signal from noise. Every overlay was judged on risk-adjusted return (net over max drawdown), its placebo percentile, and its worst year, with the tail checked separately so a fragile winner couldn't hide behind a good average. The look-ahead audit is what caught the same-day gamma regime leaking tomorrow's information into a book opened last night — the sort of look-ahead that turns a backtest into fiction.

How we test

Same pipeline we run on everything. Systems are ported to Python and run against real costs — spreads and commissions modelled from tick data, not a flat guess. Futures come from 13 years of CME data; FX from tick-level bid/ask; crypto as spot and perps. A fast model does the bulk porting, then the strongest model tries to break every apparent winner, hunting look-ahead and impossible fills. It is the same process that rejects roughly 78% of the retail strategies we test — and here, turned inward, it rejected every filter we tried to bolt onto a system that already worked. The uncomfortable honesty cuts both ways.

Research and education, not financial advice. No signals, no return promises. Independent, and not affiliated with TradingView.

Want the named verdicts?

This page gives you the method: which filters die on a working system, and exactly how. What it doesn't give you is the roster — every strategy and indicator we audited, named, with its verdict and the exact reason it lived or died. That is The No List.

Get The No List → or join the Discord first →

FAQ

Can adding a filter make a working breakout system better?

In our testing, no. We stress-tested 10+ sizing and regime filters on a breakout system that already worked after costs. Zero beat the plain flat baseline once each had to clear a placebo shuffle, a look-ahead audit and rolling out-of-sample. On an already-honest system, filters mostly add variance.

The best filter scored at the 100th placebo percentile — wasn't that a real edge?

No, and that's the lesson. The top-scoring overlay beat every shuffled copy of itself, but the effect was a divide-by-volatility circularity artefact — it divided returns by a term auto-correlated with those returns, so it was measuring itself. A headline lift over nine times is a red flag, not a green light.

What about stacking two filters together?

Worst of all. Combining the two least-bad overlays didn't average their tilts, it stacked their variance: risk-adjusted return fell by roughly two-thirds and drawdown ballooned. Double-tilting is double-jeopardy.

If filters don't help, where does the edge come from?

Leg selection and decorrelation — holding positions that don't all lose on the same day — not from timing filters. The base system sizes flat and picks the best-decorrelated legs. Every filter added on top was a bet on a bet, which compounds noise rather than edge.

Does a "failed" filter mean the idea never works anywhere?

No. It means not a robust improvement on this 13-year, 600,000-plus-trade book under our gates. Some overlays weren't cost-fatal so much as never a real edge — they didn't beat their own placebo before costs entered. A null on this data and window is not a proof of impossibility.