Nasdaq breakouts on high-fear days
Passed eleven of twelve gates, then lost money on the holdout nobody had seen.
Why it failed: Negative on the pre-registered holdout: t −0.57 against a bar of 2.326. See the scorecard
Cumulative result
R per regime day (net of cost). Sum of up to two trades per day, on days when the VIX term structure was inverted.
Show the data as a table
| Period | From | To | Days | Mean R | t | Sum R |
|---|---|---|---|---|---|---|
| Discovery | 2010-04-29 | 2020-11-10 | 757 | +0.153 | 3.93 | +115.7 |
| Validation | 2021-01-28 | 2023-03-16 | 174 | +0.132 | 1.66 | +23.0 |
| Holdout | 2023-09-22 | 2026-07-30 | 225 | −0.040 | −0.57 | −8.9 |
| Year | Days | Sum R | Mean R |
|---|---|---|---|
| 2010 | 36 | +12.1 | +0.335 |
| 2011 | 119 | +26.9 | +0.226 |
| 2012 | 41 | +10.2 | +0.250 |
| 2013 | 76 | +5.9 | +0.078 |
| 2014 | 68 | +18.8 | +0.276 |
| 2015 | 68 | +8.1 | +0.120 |
| 2016 | 54 | −3.5 | −0.065 |
| 2017 | 50 | +6.4 | +0.127 |
| 2018 | 133 | +18.2 | +0.137 |
| 2019 | 33 | +4.6 | +0.140 |
| 2020 | 79 | +8.1 | +0.102 |
| 2021 | 33 | +5.7 | +0.172 |
| 2022 | 129 | +15.8 | +0.122 |
| 2023 | 39 | −4.5 | −0.115 |
| 2024 | 88 | −1.1 | −0.012 |
| 2025 | 58 | +5.4 | +0.092 |
| 2026 | 52 | −7.2 | −0.139 |
The claim
Our own hypothesis. Options dealers who are short gamma amplify moves, and an inverted VIX curve marks the days when they are. On those days intraday breakouts should run further than usual.
Source: Lab hypothesis, informed by Baltussen et al. (2021) on hedging demand
What we tested
- Market: Nasdaq-100 CFD, 5-minute bars built from minute bid/ask on the true clock.
- Days: only days when the previous day's VIX / VIX3M ratio ranks in the top 30% of the past 252 trading days.
- Signal: the first 5-minute close above the highest high (long) or below the lowest low (short) of the previous 10 bars.
- Entries between 09:45 and 11:30 New York time; at most two trades a day, one position at a time.
- Stop 1.5 x ATR(14) of the signal bar; target 2R; anything open is closed at 12:00 New York time.
Costs and fills
- Search engine: 1.70 index points per round trip, scaled to the price level.
- Independent check: real bid/ask fills from the minute file, gap-through fills at the bar open, stop checked on the entry bar.
Data
- US100 CFD minute bid/ask, true clock
- Cboe VIX and VIX3M daily closes
- SqueezeMetrics GEX (family test)
Why we looked
In October 2026 we added two data sets the lab had never used: dealer gamma (GEX) and the VIX term structure. Both are known to predict how much the index will move during the day. The question was whether they also tell you when breakouts work.
We registered the test before running it: 4,392 breakout rules (opening-range and Donchian families, four session windows, three timeframes, every stop and target) on five indices, each traded only on the regime days. The bar was set by shifting the regime calendar at random 2,000 times and recording the best result noise could produce.
How it got this far
The family as a whole failed: across the four indices that were not used to form the idea, the average improvement on regime days had a p-value of 0.071 (gamma) and 0.236 (VIX). One rule cleared the family-wise bar anyway, by a hair: t 3.93 against 3.89.
We froze it with a hash and opened the Validation years (2021 to mid-2023) once. It earned +0.132R a day, t 1.66, just over the pre-registered 1.645. It passed the fill audit, the clock audit and a full prop-firm simulation: no daily-limit breach in 114 simulated FTMO 1-Step challenges, and a pass rate 20 points above zero edge.
By the lab's own rules a strategy is still a candidate at that point, not an edge. One gate was left.
Where it died
The holdout, September 2023 to July 2026, had been sealed since the start. On its 225 regime days the frozen rule lost 0.040R a day, t −0.57. A real edge of the size seen in Discovery would almost never produce that.
Two things in the earlier numbers hinted at this, and both are on the scorecard. Neighbouring Donchian rules in the same window did not work (median t 0.84), so the result was a narrow peak, not a plateau. And 2022 alone carried 137 of the 187 Validation trades.
The 12-gate scorecard
8 passed · 1 failed · 3 not run or not reached. A gate is "not reached" when the strategy had already failed a veto: there is nothing left for it to test.
Is the backtest real?
Absolute veto. These gates look for bugs and physical limits, not for statistical evidence, so one failure ends the test.
Positive at every bar phase from −3 to +3 minutes, so the result does not depend on how the minute bars are stamped; VIX and GEX taken from the previous published day.
After pessimistic fills: +0.089R per trade in Discovery and +0.101R in Validation; gap dependency 0; no entries in the opening-auction minute.
The search engine reproduced an earlier run exactly on 20 random rules, and an independent bid/ask simulator agreed on the sign and size (+0.105R vs +0.141R per trade). No event-driven replay was run.
Is the edge more than luck?
G12, one pre-registered holdout, is the only statistical veto. G1 to G5 and the regime test G6 are always reported; G6 vetoes only a regime that is significantly negative. A strategy with no edge after costs never reaches G12, because there is nothing to confirm.
t 3.93 against a family-wise bar of 3.89 over 4,392 rules. Borderline; the family as a whole failed (p 0.071 and 0.236).
Beat 2,000 randomly shifted regime calendars. Regime days earned +0.153R vs +0.039R on other days (Welch t 2.47); unchanged with a 2-day-old regime (t 3.84).
No combinatorial cross-validation; the sequential Discovery, Validation and Holdout split was used instead.
Other stops and targets kept t between 2.9 and 3.9, but the neighbouring Donchian rules in the same window did not (median t 0.84): a narrow peak.
At twice the cost: t 3.40 in Discovery and +0.120R a day in Validation.
10 of 11 Discovery years positive; no year significantly negative.
Holdout 2023-09 to 2026-07: 225 regime days, −0.040R per day, t −0.57 against the 2.326 bar. Pessimistic fills: −0.033R per trade.
Can it survive a prop-firm account?
Absolute veto, for strategies meant for funded accounts. The account rules are simulated event by event, not at the end of the day.
FTMO 1-Step rules event by event at 1.15% risk: 0 daily-limit breaches in 114 simulated challenges, 0 positions over midnight, worst day −2.49% against a 3% limit.
Pass rate 34.8% at zero edge and 55.0% at half the measured edge: +20.2 points (95% CI +19.7 to +20.8).
Eleven passed gates are not an edge
The gates before the holdout check that a result is not a bug and not obviously luck. Only the holdout checks that it was not tuned to the past. If we had stopped one gate early, this would have gone on a funded account.
Receipts
Every number on this page comes from one of these files: the test script, its saved output, the trade list and, where the test was pre-registered, the registration and its hash lock. Download them and check our work. Numbers that also appear in the chart are recomputed from the trade list when this page is built, and the build fails if they disagree.
| File | Kind | Size | Status | sha256 |
|---|---|---|---|---|
| GAMMAREG01_PREREG.md prereg/GAMMAREG01_PREREG.md | Pre-registration | 7 KB | 2 lines withheld (private strategy) | 6584773a41cc |
| GAMMAREG01_VALIDATION_PREREG.md prereg/GAMMAREG01_VALIDATION_PREREG.md | Pre-registration | 3 KB | Complete | 3e05612e644f |
| GAMMAREG01_G11_G12_PREREG.md prereg/GAMMAREG01_G11_G12_PREREG.md | Pre-registration | 3 KB | 1 line withheld (private strategy) | bf536445df5e |
| gammareg01_run.out alpha_v3/gammareg01_run.out | Saved output | 2 KB | Complete | 57414816e55b |
| gammareg01_diag.out alpha_v3/gammareg01_diag.out | Saved output | 2 KB | Complete | 6e51fe0f95db |
| gammareg01_validate.out alpha_v3/gammareg01_validate.out | Saved output | 1 KB | Complete | 5eb85a5aa3fd |
| gammareg01_g11_g12.out alpha_v3/gammareg01_g11_g12.out | Saved output | 2 KB | Complete | 41e0afe0e03a |
| GAMMAREG01_PREREG.lock prereg/GAMMAREG01_PREREG.lock | Hash lock | 225 B | Complete | f61752912b42 |
| GAMMAREG01_VALIDATION_PREREG.lock prereg/GAMMAREG01_VALIDATION_PREREG.lock | Hash lock | 225 B | Complete | f85d312701df |
| GAMMAREG01_G11_G12_PREREG.lock prereg/GAMMAREG01_G11_G12_PREREG.lock | Hash lock | 225 B | Complete | 4a34fe5f0815 |
| cell_trades_disc_val.csv alpha_v3/gammareg01_out/cell_trades_disc_val.csv | Trade list | 729 KB | Prices removed (data licence) | 637d72523fb4 |
| cell_trades_holdout.csv alpha_v3/gammareg01_out/cell_trades_holdout.csv | Trade list | 33 KB | Prices removed (data licence) | f0f8116dcd8c |
Price data is not included: the vendors' licences do not allow it, so the scripts run only with your own copy of the data, and the trade lists show dates, direction, R and costs, not prices. Lines that refer to the lab's private live strategy are replaced by a marker; the receipts page explains the rules and lists the sha256 of every original file.
Related tests
We mined 10,248 strategy rules on a GPU
Breakouts, sweeps, VWAP reversion and engulfing bars on five indices. The best result was weaker than what noise produces.
Intraday momentum into the close
The effect from the papers is there before costs: about 1.4 basis points a day. The spread is 0.6.