Legend's EMA β€” full receipts

A reply asked for the trade list, costs & slippage, year-by-year P/L, and out-of-sample / walk-forward before trusting the 71% win / PF ~2.2 numbers. All four, below β€” nothing summarized away. Rule: Linda Raschke's 15-minute EMA(20) next-day reversion, mechanized and back-tested on NQ 1-min RTH bars.
Original claim (posted Sept 1): on 1 NQ, 1.25 pt round-trip cost, 2008 β†’ Aug 2026 β€” 270 trades, 71% win rate, 2.19 profit factor, +$86,119 total. This page is the backup for that claim: every trade, what happens to the edge as costs rise, the year that actually made the money, and what the same rule did on data it wasn't shaped on.

πŸ“¦ Full reproduction package

Everything on this page, reproducible: 01–04 Python scripts (setup detection, trade sim, cost/stop sweep, parameter sweep, %-of-notional), the raw trade-level CSVs, the parameter-robustness grid, and a README with the exact rule and every formula.

⬇ download full package.zip
Statistical significance
Risk-adjusted (annualized at ~14.9 trades/yr, not daily)
1 Β· The rule, in words

Where it comes from. Linda Raschke (@LindaRaschke), X, 2026-07-31: "If no trade to pit session 15 minute EMA on a trend day, it WILL revert to the mean the next day." She did not give an EMA period or a trend-day threshold. Everything below is our mechanization of that one sentence. The observation is hers; the rule, the backtest, and any mistakes in them are ours.

Session. Regular trading hours only, 09:30–15:59 ET, on NQ 1-minute bars. The 15-minute EMA(20) is computed continuously through the session.

Setup — both conditions, on the prior completed RTH session. (1) Trend day: |close − open| / (high − low) is in the top quintile (≥80th percentile) of all sessions in the sample. (2) No touch: price never traded through that session's own 15-minute EMA(20) at any point in regular hours.

Trade. Next session, buy or sell at the 09:30 ET open, in the direction of the EMA: open above the EMA → short; open below it → long. One contract. Nothing after the entry is used to decide the direction.

Target. A resting limit at the EMA of the last completed 15-minute bar, refreshed every bar as the EMA moves. The level is always known before the bar that can fill it, so the order is armable in live trading.

Exit. No stop. If the target is never touched, close flat at 15:59 ET. Those are the 18 EOD exits, and they hold the left tail of the distribution.

Cost. 1.25 NQ points round trip ($25 at $20 per point), applied to every trade on this page unless a panel sweeps the cost on purpose. Section 4 runs it to 4× and adds an honest-fill replay at the live venue.

One caveat on the threshold. The ≥80th-percentile trend-day cut is measured on the whole 2008–2026 sample, not re-estimated period by period, so the walk-forward blocks in section 8 test the rule forward but not that one constant. Section 7 shows what happens across EMA periods and threshold quantiles.

2 Β· Trade list270 rows
Every SETUP-population trade, 2008-01-07 β†’ 2026-08-05, with entry/exit timestamp and price (ET). Entry = 09:30 ET RTH open, direction toward the prior session's 15m EMA20. Exit = limit at the EMA of the last completed 15m bar (refreshed every bar), timestamped to the minute the level was actually crossed, else flat 15:59 ET. Cost 1.25 NQ pts round trip baked into every net-$ figure (β‰ˆ$25 at $20/pt) β€” entry/exit prices are the raw, uncosted fill levels, on the ratio-adjusted continuous series (back-adjusted across contract rolls, same convention the whole study uses) β€” point differences and $P&L are correct, but the price levels themselves, especially pre-2020, are not literal historical NQ prints.
⬇ Download full CSV
Filter All Winners Losers Never touched (EOD) Since 2022 2026 only
3 Β· Distribution & statistical significance
Win rate and PF alone don't say whether the edge is real or whether a couple of huge trades are carrying it. Below: the return distribution, its concentration, a t-test against zero, and the long/short split.
Net $ per trade (1 NQ), binned. Skew , kurtosis β€” a fat left tail, consistent with the 18 EOD (never-touched) exits below.
t-stat vs 0
Win-rate 95% CI
binomial, n=270
Top-10 trades
of gross profit (53% of net $)
Streaks
max consecutive W / L
Long vs short
4 Β· Costs & slippage
Left: the same 270-trade file re-costed at multiples of the deployed 1.25-pt round-trip assumption, from free (0Γ—) to 4Γ— (5 pts RT β€” well past any realistic NQ/NDX spread+slippage). Right: an independent honest-fill replay at the actual live venue (NDX CFD, not NQ futures) β€” real observed spread plus 0.1 pt adverse per fill, from the fill-armability audit (analyst/dashboard_bt_fill/), not the backtest's flat assumption.
Cost assumptionWin%PFAvg/trTotal $Max DD $
0Γ— (gross, no cost)74.1%2.32+17.20 pts$92,869$-14,173
0.5Γ— (β‰ˆ0.62 pts RT)71.9%2.25+16.57 pts$89,494$-14,223
1Γ— (deployed assumption, 1.25 pts RT)70.7%2.19+15.95 pts$86,119$-14,273
1.5Γ— (β‰ˆ1.88 pts RT)70.4%2.13+15.32 pts$82,744$-14,323
2Γ— (β‰ˆ2.50 pts RT)68.1%2.07+14.70 pts$79,369$-14,374
3Γ— (β‰ˆ3.75 pts RT)62.6%1.94+13.45 pts$72,619$-14,499
4Γ— (β‰ˆ5.00 pts RT)60.0%1.83+12.20 pts$65,869$-14,669
Independent replay β€” NDX CFD, observed spread + 0.1 pt adverse/fill (R = initial-risk multiples, not $)
WindownWin%PFAvg/trMax DDTotalSharpe
Full replay (2024‑01‑22 β†’ 2026‑07‑01)4276.19%2.166+0.194R+3.432R+8.142R1.11
2025 β†’2466.67%1.203+0.050R+3.432R+1.204R0.29
2026 YTD1154.55%0.422βˆ’0.215R+3.432Rβˆ’2.364Rβˆ’1.81
5 Β· Year-by-year P/L
1 NQ contract, 1.25-pt cost. 13 of 19 years positive (2010, 2011, 2013, 2014, 2020, 2026 negative); 2026 is the first red year since 2020, and the worst per-trade year in the whole test (βˆ’19.08 pts/tr, β‰ˆβˆ’$382/trade). 2024's 106.96 PF isn't a typo β€” it won 17 of 18 trades that year.
6 Β· Notional-adjusted view
1-contract $P&L over 18 years is scale-inflated: NQ ran ~2,376 (Jan 2008) β†’ ~29,291 (Aug 2026), roughly 12Γ—, so a 2008 trade and a 2026 trade aren't comparable in $ terms even at "1 contract." This re-expresses every trade as a % return on notional (net pts / entry price), compounded trade-to-trade β€” what a trader sizing a constant fraction of equity would actually have experienced (Avg/tr and PF below are per-trade, not compounded; Total and Max DD are the compounded equity curve). A reader (@rd2k_) caught the flat stretch this reveals.
cumulative % returnunderwater (below running peak)
WindownWin%PFAvg/trTotalMax DD
Full (2008 β†’ 2026)27070.7%1.92+0.150%+48.5%βˆ’7.11pp
Since 20227582.7%2.61+0.213%+17.1%βˆ’3.42pp
Fixed-fraction sizing doesn't kill the edge (+48.5% compounded total, PF 1.92) but it does show what 1-contract $P&L hides: 6.3 years (2009-10-02 β†’ 2016-02-03) with no new equity high. Whole-history stats are real; so is the fact that a real account would have sat flat for a third of the sample's length before the current stretch.
7 Β· Parameter-neighborhood robustness
Raschke's tweet didn't specify an EMA period or exact trend-day threshold. The study uses EMA(20) / top-20% (quintile) β€” is that a robust neighborhood or an isolated lucky cell? Each cell below independently re-derives setups and re-simulates trades from raw data (not a re-slice of the EMA20 output) across EMA period Γ— trend-quantile threshold β€” 30 cells, all re-run fresh. Color = profit factor.
Gold outline = the published cell (EMA20, top 20%). Every one of the 30 cells is profitable β€” no sign flips, no dead zones. EMA10–30 all cluster PF 1.2–2.3 with the same shape (tighter trend-day thresholds help); EMA50 is materially weaker (PF 1.0–1.2, near breakeven) but still non-negative. That's consistent with a real, moderately wide effect rather than a single lucky cell β€” though EMA20 does sit near the strong end of its neighborhood, worth keeping in mind. (Separately, the EMA50 next-day touch-rate β€” not the traded P&L shown here β€” inverts relative to baseline; that's a different, untraded observation from the original research note.)
8 Β· Out-of-sample / walk-forward
The setup's trend-day threshold was fit once on the full 2008–2026 sample, not re-estimated per period β€” see the caveat below. Below: four non-overlapping ~4-5 year blocks applying that same fixed rule forward in time (no refitting between blocks), then a cross-venue check β€” the same rule replayed on NDX CFD data with observed spread and honest fills. That replay window (2024-01 β†’ 2026-07) predates the sleeve's actual go-live (2026-07-31), so it is a stronger cost/venue test, not live-execution evidence; true live fills are too new (~1 month) to read yet.
Non-overlapping blocks, same fixed rule throughout (NQ backtest)
BlocknWin%PFTotal $Max DD $
2008–2013 (discovery half 1)7663.2%1.39$2,829$-2,820
2014–20188666.3%2.02$15,011$-3,798
2019–20225375.5%2.08$30,016$-7,205
2023–2026 (most recent)5583.6%2.68$38,263$-14,273
Cross-venue honest-fill replay β€” NDX CFD, not live executions (same table as Β§3, repeated here because it's the strongest OOS/cost cross-check available)
WindownWin%PFAvg/trMax DDTotalSharpe
Full replay (2024‑01‑22 β†’ 2026‑07‑01)4276.19%2.166+0.194R+3.432R+8.142R1.11
2025 β†’2466.67%1.203+0.050R+3.432R+1.204R0.29
2026 YTD1154.55%0.422βˆ’0.215R+3.432Rβˆ’2.364Rβˆ’1.81
2026 is soft on both reads β€” NQ backtest βˆ’$4,961/13 trades, NDX honest-fill replay PF 0.42 on 11 trades (through 2026-07-01, still pre-go-live). Small samples on both sides; the sign agrees. The sleeve has traded live as cm:rema only since 2026-07-31 β€” under 6 weeks, too thin to cite as evidence either way. Not a reason to call the edge dead β€” one weak backtest year after 2024/2025's best two years in the sample β€” but it's the most honest read available and it says: watch it, don't lean on it until real live fills accumulate.
What isn't in this backtest

Backtest instrument β‰  live instrument. Every number in Β§1, Β§2, Β§4–6 is NQ futures. The live sleeve trades the NDX CFD β€” same index, different venue, different spread. Β§3/Β§7's independent replay is the bridge between the two.

This is a chosen specification, not a one-parameter rule. Raschke's tweet fixed almost nothing β€” EMA period, the trend-day metric itself (|closeβˆ’open|/range), the exact threshold (0.747, top 20%), the RTH window, entry timing, and the refresh/no-stop rule are all research choices made once on the full 2008–2026 sample, not re-estimated per period. Β§6 sweeps two of those (EMA period, threshold) and shows the neighborhood is robust rather than an isolated lucky cell β€” but the others are untested, and none of it changes the fact that the walk-forward blocks in Β§7 aren't a clean "never saw this data" test, only a "same fixed rule applied forward without re-fitting" test.

Gap-matched control: the same trade run on ordinary days with a similar-sized gap to the EMA makes βˆ’0.20 pts/tr β€” so this isn't just "big gaps mean-revert," the setup condition adds roughly +16 pts/tr over a size-matched baseline.

Fixed-point stops kill it (5–25 pt stops β†’ β‰ˆ0 pts/tr, win rate collapses to ~19–48%) because NQ's price scale moved 12Γ— over the sample. A stop normalized to the mean RTH high-low range of the prior 14 sessions β€” labeled "ATR14" throughout, matching the live sleeve's own naming, though it doesn't incorporate overnight gaps like textbook Wilder ATR β€” at 0.5–0.75Γ— keeps 85–94% of the unstopped edge and roughly halves the worst trade. The live sleeve uses a 0.5Γ— version of this stop.

The exit-fill check can miss a gap-through. A bar only registers as "touched" if the target sits between that bar's low and high; if price gaps straight past the target without printing at it, the code treats it as a non-fill and waits for a later bar (or EOD) instead of filling on the gap. This affects a minority of exits; its net effect on the headline numbers hasn't been separately sized.

18 of 270 trades never touch the EMA and exit flat at the close, averaging βˆ’$2,180 β€” the tail risk this strategy is short.