SPY Premarket Mean Reversion — Backtest
Strategy 1096 · SPY · premarket 04:00–09:30 ET · Jan 1, 2025 – Oct 21, 2026 · $10,000 per trade · paper account PA39MXU6BZPA
$1,446
Net P&L, after spread
343
Trades
65%
Winning trades
$630
2026 out of sample
Cumulative P&L
Daily cumulative net P&L. The dashed line marks Jan 1, 2026: parameters were chosen on data to its left only.
Rules
- Signal: z = (close − 20-bar SMA) / 20-bar standard deviation on 1-minute bars.
- Entry: Buy when z < −3. $10,000 of SPY, limit at the ask (buy) or bid (sell), extended hours. One position at a time.
- Exit: z back through 0, or price 0.5% against the entry. No entries from 09:15; flatten from 09:25 ET.
- Fills in the backtest: the open of the minute after the signal, plus half the bid-ask spread measured from real quotes (table below).
In sample vs out of sample
| Period | Trades | Win rate | Avg / trade | Net P&L | Max drawdown |
|---|---|---|---|---|---|
| 2025 (in sample) | 174 | 62% | 4.7 bp | $816 | $69 |
| 2026 YTD (out of sample) | 169 | 68% | 3.7 bp | $630 | $105 |
Same rules, every session
Each session was tuned the same way: best of 72 parameter combinations on 2025, then tested on 2026. The last column is the share of all 72 combinations that made money in 2026.
| Session (ET) | Best 2025 parameters | 2025 P&L | Trades | 2026 P&L | Trades | Grid > 0 |
|---|---|---|---|---|---|---|
| Premarket 04:00-09:30 | n=20, k=3, stop 0.50%, long | $816 | 174 | $630 | 169 | 90% |
| Regular 09:30-16:00 | n=20, k=3, stop 1.00%, long | $91 | 202 | -$37 | 165 | 8% |
| After hours 16:00-20:00 | n=60, k=3, stop 0.50%, long | -$32 | 146 | -$49 | 118 | 0% |
| Overnight 20:00-04:00 | n=60, k=3, stop 0.50%, long | -$228 | 253 | -$190 | 156 | 4% |
Risks
- Thin edge. The average trade earns a few basis points, so slippage beyond the measured spread erodes it fast. Live limit orders can miss or fill worse than the backtest assumes.
- Selection. The result is broad rather than one lucky setting: 74% of the 72 parameter combinations tested made money in 2025 and 90% in 2026.
- Thin markets. Premarket quotes can be wide or stale, especially before 06:00 ET.
Monthly results
| Month | Trades | Win rate | Net P&L |
|---|---|---|---|
| 2025-01 | 12.0 | 50% | $80 |
| 2025-02 | 11.0 | 73% | $58 |
| 2025-03 | 14.0 | 43% | -$51 |
| 2025-04 | 17.0 | 76% | $414 |
| 2025-05 | 18.0 | 50% | $4 |
| 2025-06 | 20.0 | 70% | $94 |
| 2025-07 | 12.0 | 75% | $36 |
| 2025-08 | 9.0 | 33% | $7 |
| 2025-09 | 16.0 | 81% | $104 |
| 2025-10 | 14.0 | 64% | $65 |
| 2025-11 | 13.0 | 62% | $1 |
| 2025-12 | 18.0 | 56% | $4 |
| 2026-01 | 16.0 | 81% | $121 |
| 2026-02 | 10.0 | 50% | -$25 |
| 2026-03 | 21.0 | 76% | $92 |
| 2026-04 | 20.0 | 75% | $80 |
| 2026-05 | 16.0 | 62% | $3 |
| 2026-06 | 25.0 | 68% | $145 |
| 2026-07 | 26.0 | 77% | $98 |
| 2026-08 | 20.0 | 60% | $78 |
| 2026-09 | 9.0 | 56% | $59 |
| 2026-10 | 6.0 | 33% | -$21 |
Premarket spread used (half spread, per side)
| Hour (ET) | Median half spread |
|---|---|
| 04:00-04:59 | 0.45 bp |
| 05:00-05:59 | 0.40 bp |
| 06:00-06:59 | 0.41 bp |
| 07:00-07:59 | 0.37 bp |
| 08:00-08:59 | 0.37 bp |
| 09:00-09:59 | 0.33 bp |