Since end of July I have been running a small live study, it records the SPX option chain every session, computes GEX (gamma exposure, how much hedging the option dealers have to do when the index moves), and paper trades a few credit spread families based on it. After two months I have about 44 sessions, all with VIX between 14 and 18, a calm market only. So I ran the same rules on SPX option history from 2012, about 3,600 sessions, to see what the live study cannot show me yet.
Here is what I learnt.
1. Passing the test is not the same as making money
I split the history, develop on 2012 to 2021, then run 2022 to 2026 only once, after writing down what counts as a pass. The tests are the ones the live study already registered,
- H1, is the next day’s range bigger after negative gamma?
- H2, is the short strike breached less often than its delta says?
- the decision rule prints KILL, REDESIGN, NOT YET or GO LIVE.
| Dev 2012 to 2021 | Holdout 2022 to 2026 | |
|---|---|---|
| H1, next day range after negative vs positive gamma | 1.40% vs 0.78%, p < 0.0001 | 1.57% vs 0.95%, p < 0.0001 |
| H2, breaches vs expected | 24 vs 43.6 | 30 vs 40.6, p = 0.042 |
| Primary trade, per trade | +$6.35 | −$17.59 |
| Verdict | GO LIVE |
The rule said GO LIVE, and the trade lost $7,352 over 418 trades. Both are true.
The primary trade is a 0DTE put credit spread, 0.10 delta, 25 wide, held to the close. It wins 92.8% of the time, average win $92, average loss $1,434. To break even it needs 94.0%. It does beat the odds the market priced, 30 breaches instead of 40.6, just not by enough to pay for the big losses. My decision rule only checked the two tests, never the expectancy (the average profit per trade). 😬
So the rule needs one more line, a trade is not ready if it does not make money, even when the theory behind it is right.
2. GEX does say something about tomorrow
Negative gamma was followed by a bigger range in both periods, +80% in dev and +66% in the holdout. That part of the idea held.
But it does not separate GEX from VIX yet. An earlier look of mine found about two thirds of GEX’s link to calm days is just “VIX is low”, and Amaya et al. (2025), the best recent study with real dealer positions, also found the gamma effect real but not large.
3. A 95% win rate can still lose
I knew this, but seeing it in my own numbers is different. 92.8% sounds great, until the losers are 15 times the winners. The number to look at is the break-even win rate,
average loss ÷ (average win + average loss)
For my primary trade that is 94.0%, and the trade was below it.
4. Let the holdout argue with you
From the bigger sweep of variants, some things held in both periods,
- 0.10 delta beats 0.02 to 0.05, +$40 per trade in the holdout
- 50 wide beats 25 wide, +24vs+11
- 0DTE is the weakest expiry
- the put wall veto keeps blocking trades that made money, +$21 each
And some flipped. “Don’t sell puts in negative gamma” was −38pertradeindev, then+20 in the holdout. If I had pre-registered that one from the dev results, I would have been confident and wrong.
These sweep numbers pool many variants trading the same days, and stops are booked exactly at the stop price, so they look better than reality. They are leads, not strategies.
5. A tiny bug can make every far strike look safe
My first test month picked the “0.10 delta” strike at 0.14 to 0.18. Delta fell from 0.14 straight to 0.000 between two strikes 5 points apart, which is not possible.
The implied volatility solver started from an at-the-money guess, and for far out 0DTE puts it got stuck at its 0.01 floor and returned that as the answer, so delta became zero. In the live study it is only a fallback when the broker sends no IV, so it almost never shows up, but it is there. Replaced with bisection, the picks landed at 0.085 to 0.101.
A one month run with a per session trace caught three bugs like this before any long run. I will always do the short run first now.
6. Once means once
The holdout data stopped at 2026-07-02, about 15 sessions short of what I planned. I wrote it down as a deviation and did not rerun. A holdout you can run twice is just another dev set.
Still open
- does GEX add anything beyond VIX?
- which single 0.10 delta variant is best? Anything I pick now from the holdout still needs new data to confirm, and the live study is where that new data comes from.
- add the expectancy check to the live study’s decision rule, and fix the same IV solver there.