Calendar Lab
1. Mean Reversion
CONDITIONALIdea: a violent move pumps front-week IV, which SHRINKS the calendar debit. Buy it while it sits in the cheapest 15% of its own history, sell when it returns to normal.
Result: 377 trades, 61.5% wins, +$56,196 total, median +$107. Survives down to a fill quality of about 0.75 of the quoted spread, then dies.
Verdict: a real but execution-sensitive edge. It needs decent fills; it is not a market-order strategy.
2. Expiry-Day Theta
STRONGESTIdea: on expiry day the 0DTE leg’s remaining premium is burned by the clock -- a mechanical certainty -- while the next expiry holds its value. Sell the 0DTE, buy the later expiry, same strike, a couple of strikes OTM.
Result: 415 trades on SPY and QQQ, 58.3% wins, +$38,706 total, median +$96, worst single trade −$726. Still +$24,289 paying the full quoted spread on every leg, and it holds up out-of-sample.
Verdict: the only one of the three that survives pessimistic execution — because the short 0DTE leg usually expires worthless, so there is no closing spread to pay on it. See the dedicated page.
3. Earnings IV Ramp
NOT TRADABLE YETIdea: buy the calendar whose BACK expiry contains earnings and whose front does not; the back leg inflates into the print. Exit before the announcement, never through it.
Result: the mechanism is confirmed -- back-leg IV rises further the earlier you enter (+7 vol points at 5 days, +17 at 21 days). But P/L is only +$6,896 over 78 trades and goes negative at worst-case fills in every configuration tested.
Verdict: your observation is right, the calendar just is not the way to monetise it. Better as a filter than a trade.
| Variant | Trades | Win % | Total P/L | Avg / Trade | Median | Avg Return | At Mid | Worst Case |
|---|---|---|---|---|---|---|---|---|
| fill_frac=0.00 | 415 | 60.0% | +$47,277 | +$114 | +$108 | +12.3% | +$47,277 | +$24,712 |
| fill_frac=0.20 | 415 | 59.3% | +$42,376 | +$102 | +$104 | +11.1% | +$46,995 | +$24,482 |
| fill_frac=0.35 | 415 | 58.3% | +$38,706 | +$93 | +$96 | +10.2% | +$46,782 | +$24,289 |
| fill_frac=0.50 | 415 | 57.1% | +$35,304 | +$85 | +$89 | +9.3% | +$46,836 | +$24,353 |
| fill_frac=0.65 | 415 | 56.9% | +$31,925 | +$77 | +$80 | +8.3% | +$46,907 | +$24,439 |
| fill_frac=0.80 | 415 | 56.1% | +$28,518 | +$69 | +$76 | +7.5% | +$46,838 | +$24,521 |
| fill_frac=1.00 | 415 | 55.9% | +$23,830 | +$57 | +$72 | +6.2% | +$46,538 | +$24,407 |
| Variant | Trades | Win % | Total P/L | Avg / Trade | Median | Avg Return | At Mid | Worst Case |
|---|---|---|---|---|---|---|---|---|
| fill_frac=0.00 | 377 | 70.6% | +$115,681 | +$307 | +$224 | +32.3% | +$115,681 | −$38,323 |
| fill_frac=0.20 | 377 | 66.3% | +$79,309 | +$210 | +$163 | +22.4% | +$108,358 | −$38,460 |
| fill_frac=0.35 | 377 | 61.5% | +$56,196 | +$149 | +$107 | +15.7% | +$104,830 | −$35,656 |
| fill_frac=0.50 | 377 | 56.8% | +$33,520 | +$89 | +$62 | +9.5% | +$100,370 | −$34,805 |
| fill_frac=0.65 | 377 | 52.8% | +$12,799 | +$34 | +$18 | +3.7% | +$97,256 | −$34,143 |
| fill_frac=0.80 | 377 | 46.7% | −$7,454 | −$20 | −$17 | -1.8% | +$92,815 | −$33,972 |
| fill_frac=1.00 | 377 | 40.3% | −$30,286 | −$80 | −$68 | -8.5% | +$89,702 | −$31,660 |