The EMA 9/20 Pullback Strategy: 62% Win Rate Claimed, 31% Measured
The EMA 9/20 pullback is one of the most-taught entries on trading YouTube: trade with the fast-EMA trend, buy the pullback to the slow EMA, 2:1 reward-to-risk. A trader shared their 61.7% win-rate backtest with us. We ran the same rule on seven years of NQ hourly data with conservative fills and real costs: 31% win rate, negative expectancy. Here's the specific artifact that manufactures win rates like that — and how to check your own backtest for it.
A trader shared a backtest with us: the classic EMA 9/20 pullback. Long-only filter when the fast EMA is above the slow one, buy the pullback into the EMA 20 zone, stop under the swing, target at 2:1 reward-to-risk. Their result: 61.7% win rate at 2:1 — and, to their credit, an honest suspicion that something was off, because the returns still looked modest and it “died in consolidation.”
That suspicion was the most valuable stat in their message. Here’s why: at 2:1 reward-to-risk, breakeven is ~33% winners. A 61.7% win rate at 2:1 implies +0.86R expectancy per trade — a profit factor north of 4. From two moving averages. If that were real, it would be one of the best systematic strategies ever published, available for free on YouTube.
The same rule, tested clean
We ran the mechanical version on seven years of NQ 1-hour bars: EMA9 > EMA20 regime, entry on the pullback tag of the EMA20 zone, stop below the recent structure, 2:1 target, conservative fills (if one bar touches both stop and target, the stop is assumed to hit first), $4.50 commission + slippage. 3,458 trades.
| Claimed | Measured (3,458 trades, 7y) | |
|---|---|---|
| Win rate at 2:1 | 61.7% | 31.0% |
| Expectancy | ~+0.86R | −0.1R |
| Holdout (recent years) | — | 33% (same) |

31% at 2:1 sits just under the 33% breakeven line: a slow, steady bleed once costs are in. Not a catastrophe — a tax. Which matches the trader’s lived experience (“returns are modest, dies in chop”) far better than their backtest’s 62% did.
Where manufactured win rates come from
The gap between 62% and 31% is almost never market regime. It’s one (or more) of three artifacts, in descending order of frequency:
- Same-bar stop-and-target resolution. One hourly bar often spans both your stop and your 2:1 target. A naive backtester books the target — a win. Reality on a pullback entry is usually the opposite: price dips through your stop on the way down, then recovers. Flip that one assumption from optimistic to conservative and win rates routinely fall 20–30 points. This is the big one, and it’s why our engine resolves stop before target on every bar, always.
- No costs. At 3,458 trades, $14.50 of round-trip friction per contract is ~$50k skimmed off the curve — enough on its own to flip a marginal edge negative.
- Entry lookahead. Entering “on the close” of the signal bar using that same close in the signal calculation. Subtle, common, flattering.
The universal check: re-run your backtest with stop-first resolution and real costs. If the edge survives, it earned respect. If the win rate collapses into the 30s — it was the fills, not the market.
Is trend-pullback trading dead, then?
No — and this is worth being precise about. NQ has genuine trend persistence; our multi-timeframe study confirmed a daily-trend bias carries real (if modest) information. What fails is this specific package: hourly EMA tags put the entry inside ordinary noise, the tight stop sits where rotation lives, and the fixed 2:1 target ignores what the trend is actually offering. The edge in trend lives at higher timeframes with wider, structure-based exits — where our own trend strategies operate. The 9/20 tag is the retail-friendly, backtest-flattering version of a real idea, packaged at the timeframe where it doesn’t survive.
Methodology: NQ 1-hour bars, 2019–2026, EMA9/EMA20 regime filter, pullback entries to the EMA20 zone, structure stops, 2:1 targets, stop-before-target resolution on every bar, $4.50 commission + 2 ticks slippage per round trip, train/holdout split with recent years held out.
Frequently asked questions
Does the EMA 9/20 pullback strategy work?
Not as a mechanical rule on NQ. Across 3,458 trades on seven years of 1-hour bars — long when EMA9 > EMA20 and price pulls back to the EMA20 zone, stop below, 2:1 target — the win rate was 31% with an expectancy of −0.1R after real costs. At 2:1 reward-to-risk you need about 33% winners to break even, so 31% is a slow bleed. The recent-years holdout was the same story (33%).
Is a 62% win rate at 2:1 reward-to-risk realistic?
Almost never, and that combination should trigger immediate suspicion. At 2:1, a 62% win rate implies an expectancy of +0.86R per trade — roughly a 4-plus profit factor, hedge-fund-legend territory, from a freely available two-EMA rule. When a simple mechanical backtest shows that, the cause is nearly always an artifact: same-bar stop-and-target both touching counted as wins, zero costs, or entries that peek at the closing price of the bar they enter on.
What is the same-bar fill artifact?
When one bar's range touches BOTH your stop and your target, a naive backtester has to guess which hit first — and most default to the target, booking a win. On intraday bars with tight stops this happens constantly, so the error compounds into absurd win rates. The honest convention is the opposite: if both are inside one bar, assume the stop hit first. Our engine applies stop-before-target on every bar; that single convention explains most of the gap between 62% claimed and 31% measured.
Is trend-pullback trading itself invalid then?
The concept isn't the problem — trend-following pullback entries are a legitimate family, and our separate multi-timeframe test confirmed NQ has genuine trend persistence at the daily level. What fails is the specific mechanical package: hourly EMA tags with tight stops inside noise and fixed 2:1 targets. The trend edge on NQ lives at higher timeframes and with wider, structure-based exits — not at the 9/20 EMA tag.
How do I check my own backtest for these artifacts?
Three checks catch most of it. One: force stop-before-target on any bar that touches both — if your win rate collapses, it was the artifact, not the edge. Two: add real costs (commission plus 1–2 ticks of slippage per side) and re-run. Three: make sure the entry only uses information available at entry time (no acting on a bar's close before that bar has closed). If the edge survives all three, it earned the right to be taken seriously.