Skip to content
Works with conditionsNQ · ES · CL·Any

Adding a filter to a strategy that already works

A filter that keeps half the trades needs a 41% lift in average R to draw level, which is the bar to design against.

Verdict
Works under the right conditions
Decided by
Sub-sampling deficit
The number
Keep 50% of trades, need +41% avg R

The hypothesis, as pre-registered

Declining the worst trades should improve a strategy: fewer losers, a higher win rate, a smoother curve. A filter that removes bad trades can only help.

What the test found

Declining trades at random and keeping a fraction f of them scales total return by f, but scales daily standard deviation by only the square root of f. Measured at f = 0.40, 0.50, 0.60, 0.75 and 0.90, the realised standard-deviation ratios were 0.630, 0.705, 0.772, 0.865 and 0.949, against square roots of 0.632, 0.707, 0.775, 0.866 and 0.949. An exact match, not an approximation.

So the break-even for any filter is that the trades it keeps must average at least the original average R divided by the square root of f. Keep half the trades and you need a 41% lift in average R before the filter has paid for itself against simply running the unfiltered strategy at matched risk.

That hurdle is why a skill-free filter does not merely fail to help — it loses. On the deployed streams the permutation null for a random filter centres 17 to 20 R below zero. Comparing a filter's result against zero, which is the natural thing to do, scores it against the wrong reference and makes a losing filter look marginal.

It also explains a run of failures that had looked unrelated: a pullback-entry rule (0 of 50 cells), a confirmation rule (0 of 3 streams), and a meta-label that lifted average R from +0.278 to +0.343 when it needed +0.388.

What would make this work

Compute the required lift from the fraction the filter will keep, before building it. If the mechanism cannot plausibly deliver that much, it cannot pay — and it has to be scored against matched-risk leverage, not against zero.

Every insight ends with this line: the exact condition that would turn the finding into a tradeable edge. That is what makes each entry a next experiment rather than a full stop.

filterswin rateriskstatistics

Screened September 2, 2026