Adding a confirmation filter to a strategy is the most-suggested fix for any disappointing backtest. Sometimes it's the right move; sometimes it's curve-fitting in disguise. This article covers when filters earn their cost and when they're a tell that the original idea was weak.
The Filter's Purpose
A confirmation filter is a rule that must also be true for an entry to fire. Examples:
- RSI says oversold, AND volume confirms (RVOL > 1.5).
- Crossover triggers, AND ADX shows trend strength (ADX > 25).
- Breakout occurs, AND price closes beyond level (not just wicks).
The filter should reject false positives without rejecting too many true positives. The trade-off is always: fewer trades, higher hit rate.
The Three Honest Reasons to Add a Filter
- You have a structural reason. Volume confirmation in breakouts is mechanistically grounded — order flow at the level. ADX in crossovers reflects whether the trend is real. The filter has independent justification beyond "improves Sharpe."
- You see a clear failure pattern. Looking at losing trades reveals a common feature — most losers fire during high-vol regimes, or during earnings windows, or in the first hour after open. A filter that excludes those situations addresses a real pattern.
- You're trading with explicit costs. If transaction costs are eating your edge on borderline signals, a filter that takes only the highest-quality signals can be the difference between profit and loss after costs. The filter pays for itself in cost reduction.
Before adding any filter, write down — in plain English — why you expect it to help, before you re-run the backtest. If you can't articulate the mechanism, the filter is fishing for noise. If you can articulate it, the filter is testing a real hypothesis.
The Three Dishonest Reasons
- "The Sharpe is too low without it." If your strategy's edge depends on adding filters until Sharpe crosses some threshold, the original idea didn't have edge — you're curve-fitting your way to one.
- "It improves things in the backtest." Of course it does. Filtering out losing trades retroactively will always improve historical performance. The question is whether the filter's logic is robust to OOS, which "improves things in backtest" cannot establish.
- "Other strategies have this filter, so I should too." Filter selection by social proof is curve-fit by community.
The Filter Cost-Benefit Analysis
Every filter has a cost: trade count drops. The drop must be earned by improvement in something else. Frame it explicitly:
- Trade count drop: typically 30–60%.
- Hit-rate improvement: ≥ 5 percentage points.
- Average win improvement: meaningful, ideally proportional to filter strictness.
- Walk-forward Sharpe lift: consistent across multiple folds.
- Drawdown reduction: usually present if filter avoids high-loss conditions.
If the filter cuts trade count without producing all of these improvements, it's probably noise.
The Marginal-Filter Test
For any stack of filters, run the marginal-impact test: remove each filter individually, observe the change in walk-forward Sharpe.
- Filter A removed → WF Sharpe drops materially: filter A is doing real work. Keep it.
- Filter B removed → WF Sharpe roughly unchanged: filter B isn't pulling weight. Drop it.
- Filter C removed → WF Sharpe improves: filter C is hurting. Drop it definitely.
Most retail strategies have 1–2 filters that earn their cost and 1–3 that don't. The marginal test reveals which is which.
Filter Categories Ranked By Reliability
- Volume confirmation (most reliable). Mechanistically grounded, decades of validation, robust across markets.
- Regime filter (ADX, Hurst). Conditions strategy on appropriate market state. Reliable when matched to strategy archetype.
- Time-of-day / session filter. Often picks up real microstructure effects (open hour, last hour) but can also overfit.
- Volatility filter (ATR ranges). Useful when strategy has clear vol-sensitivity. Watch for parameter overfit.
- Cross-asset filter (SPY trend, sector index). Reduces broad-market risk but introduces dependency on regime classifier.
- Multi-indicator agreement (RSI + Stochastic + Williams%R). Mostly redundant — these all measure the same thing. Low marginal value.
- Custom multi-condition filters. Highest overfit risk. Only justified when you can articulate each condition's independent contribution.
The Bottom Line
One well-chosen filter from a different dimension than your primary signal is the safest improvement to any strategy. Two such filters is the upper limit before you should be suspicious. The discipline isn't to avoid filters — it's to require each one to justify its existence beyond "the backtest looks better with it."
Further Reading
Foundational papers
- Brock, W., Lakonishok, J. & LeBaron, B. (1992). Simple Technical Trading Rules and the Stochastic Properties of Stock Returns. Journal of Finance, 47(5), 1731–1764.
- Lo, A. W., Mamaysky, H. & Wang, J. (2000). Foundations of Technical Analysis: Computational Algorithms, Statistical Inference, and Empirical Implementation. Journal of Finance, 55(4), 1705–1765.
Textbook references
- Kaufman, P. J. (2013). Trading Systems and Methods (5th ed.). Wiley.
- López de Prado, M. (2018). Advances in Financial Machine Learning. Wiley.
Related QuanterLab articles
Try it in QuanterLab
Pick your favorite strategy and run it without any filter. Run it again with one filter. Compare WF Sharpes. If the no-filter version has higher WF Sharpe, the filter is overfit; drop it.