SPX trading strategy · 2020–2026 study

One filter. Three modules. A regime-aware system for trading SPX.

Most retail SPX systems blow up because they ignore regime — the simple question of whether the index is in a bull or bear posture. This strategy uses regime as a master gate, then runs one of three complementary modules depending on the day's setup. Built on 6+ years of price data and 259 tested edges.

1. The strategy

Three modules, one regime filter.

Each morning at 9:25 ET, we classify the day. The classification picks one of three modules to run — or tells us to stand down. The three modules cover different time horizons, so they rarely conflict. Together they form a complete framework for a single instrument: SPX.

Module 1

Swing Long

Long-only trend continuation. Buy pullbacks to the 20-day MA in StrongUp regimes. Hold days to weeks. Exit on first close below the 20-DMA or any single +2% day.

Daily chart Hold days–weeks
Module 2

0DTE Credit Spread

Sell defined-risk credit spreads with strikes anchored to prior-day range, not arbitrary percentages of spot. Iron condors on flat days; one-sided spreads on big-gap days.

5-min chart Hold same day
Module 3

ORB Long

Buy the break above the 15-minute opening range, but only in StrongUp regimes and only long. Stop at the OR low. Hold to market-on-close.

5-min chart Hold intraday
The unifying principle: regime gates everything. In StrongUp the system runs all three modules; in StrongDown it disables Module 3, restricts Module 2 to call-side spreads only, and skips Module 1 entirely. There's no single "strategy" being applied blindly — there's a decision tree, and the decision is made before the bell rings.
2. How to use it

The 60-second morning routine.

Three questions, in order. By the time you're done you know whether to trade and which module fits today. Each question maps to a single observable that's available before the open or in the first 15 minutes after it.

Daily routine — 9:25 ET

1

What's the regime?

Compare yesterday's close to the 20-, 50-, and 200-day SMAs.
Above all three → StrongUp. Run all modules.
Below all three → StrongDown. Run nothing long-biased.
Anything else → Mixed. Half size.

2

Was yesterday an NR7?

Was yesterday's range the smallest of the prior 7 sessions?
Yes → 96.6% chance today expands beyond yesterday's range. Skip Module 2 (premium-selling). Add to Module 1 instead.
No → continue.

3

What's the gap saying?

Compare today's open to yesterday's close.
Big gap (> ±0.5%) in regime direction → continuation play.
Big gap against regime → stand down or half size.
Flat or small gap → iron condor / standard ORB.

The output of those three questions is one of four decisions: full size, half size, specific module only, or stand down. The decision is the same whether you're trading XSP options, ES futures, SPY shares, or SPX cash.

Open the full playbook Get the TradingView indicators
3. Why this strategy has been built

The thesis: regime explains more than any single pattern.

Most retail SPX setups (gap fades, RSI dips, candle patterns, "magic-number" pivots) get tested in isolation and look amazing in selected screenshots. The same setups stop working in different market regimes. What's missing isn't another setup — it's a regime filter that tells you when any setup is worth taking. The data here makes that case directly.

01

Regime is the single biggest filter

Above the 20-DMA, SPX averages +0.26% per day with a 62% win rate. Below it, the same instrument averages −0.35% with a 39% win rate. That's not a small effect — it's an order-of-magnitude difference in expectancy from one boolean.

02

Prior-day range is more stable than indicators

Yesterday's high, low, and range are immutable. They don't get repainted, smoothed, or lookback-shifted. Anchoring strike selection to R (prior-day range) instead of % of spot adapts automatically to volatility. High-vol days get wider strikes; quiet days get tighter ones, without us touching anything.

03

Long and short edges are asymmetric

The data shows long-side ORB has a real edge (57.2% win, p<10⁻⁴); short-side ORB returns are essentially zero. Forcing trades to be one-directional avoids the temptation to "play both sides" of a fundamentally asymmetric distribution.

04

Three modules de-correlate drawdowns

Module 1 makes money in steady uptrends. Module 2 makes money on flat or one-sided days when premium decays. Module 3 makes money on momentum days. The drawdown days for each module are different, so the combined system has shallower drawdowns than any module alone.

05

Range expansion is mean-reverting

After an NR7 day, 96.6% of next sessions break the prior high or low — range expansion is the base rate. That single pattern flips a premium-seller from "great theta day" to "high path-touch risk" overnight. The strategy uses NR7 as a binary skip signal, not just a sizing input.

06

Big up-days revert next session

Single-day rallies >2% have a next-day mean of −0.69% (n=56, p=0.04). Big down-days drift positive but aren't statistically significant. The strategy uses any +2% day as an automatic exit signal for Module 1 — not because we're calling tops, but because the data says don't be long after one.

Each of those reasons is a single observable backed by hundreds-to-thousands of data points. None requires us to "predict" the market. They're conditional probabilities, applied as filters.

4. The data to back it up

Six edges. Six pieces of evidence.

Every claim above maps to a specific statistical test. Here are the headline numbers, the sample sizes, and the significance levels. The full 259-test workbook is on the dashboard and in the downloads section.

Regime — the master filter n = 1,588 daily bars · 2020-2026

SPX above 20-DMA
+0.26%
mean daily C2C · 62.1% win rate · n=1,056
SPX below 20-DMA
−0.35%
mean daily C2C · 38.1% win rate · n=532 · p < 10⁻⁸

Big-gap continuation

n = 384 days with gaps > ±0.5%
Gap up > +0.5%
64.0%
Gap up small
57.5%
Flat / no gap
52.0%
Gap down small
50.0%
Gap down > -0.5%
41.8%

Win rate of positive O2C by gap class. Big gaps continue in their direction; big gap-ups close higher 64% of the time, big gap-downs continue lower (i.e. only 42% close higher). Don't fade big gaps — the data is unambiguous.

ORB long vs short — the long-side asymmetry

15-min opening range · n=1,562 first-breaks
Long break
57.2%
Short break
48.1%

Long ORB: +0.05% mean per trade, p ≈ 5×10⁻⁵. Short ORB: ~0% mean, p > 0.3 (no edge). Force the system long-only; the asymmetry is real and consistent across 15/30/60-min OR windows.

NR7 → range expansion

263 NR7 days · 2020-2026
96.6%

After a "narrowest range of the last 7" day, 96.6% of next sessions break either the prior high or the prior low. That's why Module 2 (premium-selling) skips the day after an NR7 — even a moderate-width iron condor has a high one-side touch probability.

Prior-day high/low touch rates

n = 1,569 sessions
Touched PDH
56.8%
Touched PDL
44.5%
Touched both
10.1%
Touched neither
8.8%

91% of days touch yesterday's high or low. Only 8.8% form a true inside-of-prior-range day. Strikes anchored to PDH/PDL are constantly being tested, so they make natural choices for short-strike placement and stop logic. Conditional on a big gap-up, the opposite extreme (PDL) is touched only ~10% of the time — a clean asymmetry for one-sided premium structures.

Tail-day reversion single-day moves > ±2%

After a +2% day
−0.69%
next-day mean · 41% win · n=56 · p = 0.04 (significant)
After a -2% day
+0.44%
next-day mean · 54.5% win · n=66 · p = 0.21 (directional but not significant)

Six edges. Six tests. The full battery of 259 conditional return distributions — every day-of-week × regime × gap-class × close-strength bucket — is on the interactive dashboard.

For traders who want more

Where to go next.

Before you trade it

Honest caveats.

The sample is bull-biased. 2020-2026 is a structural bull market with three short corrections. Long-side edges may regress in a sustained bear regime. The regime filter handles this in theory, but the filter itself hasn't been stress-tested against a multi-year bear market in this dataset.
Multiple-testing isn't corrected. 259 tests at α=0.05 implies ~13 spurious "significant" results by chance. The strategy rests on edges significant at p < 0.001 with mechanical interpretations, but treat single sub-results in the dashboard as exploratory, not gospel.
Returns are pre-cost. ORB-style edges of +0.05% per trade are fragile to slippage on retail futures. Daily-swing edges are more cost-robust. Premium-selling structures absorb costs into the credit received but bid-ask matters at 0DTE.
This is research, not advice. Backtested patterns may not persist. Past statistical edges are not guarantees. Trade derivatives at your own risk and size accordingly.