Iron Condor — Trailing 12-Month Optimization

SPY · 2025-06-13 → 2026-06-12 · weekly entries · real Alpaca daily option bars · no look-ahead · 216 configs swept

12-mo P&L
+$964
Win rate
78.1%
Trades
32
Risk / trade
~$405
OOS-positive configs
0 / 216
Read this first. The headline +$964 at 78% win is the single most profitable config that clears >50% win over the trailing year — but it is in-sample curve-fit. Split train/holdout, it makes +$1,366 (95% win) in-sample and −$402 (40% win) out-of-sample. Across all 216 configs, 0 are OOS-positive (best −$69, median −$656). A >50%-win condor is trivial; durable profit is the part that doesn't survive.

Equity curve

equity curve

Monthly P&L

monthly bars

Ten consecutive green months (+$1,366, 95% win) then two trend months gave back −$599. The classic condor shape: up the escalator, down the elevator.

Why optimizing the trailing year fails forward

in-sample vs oos scatter

Each dot is one of 216 configs. The x-axis is how good it looked over the trailing 12 months; the y-axis is how it did in the held-out last 30%. Every dot sits below the red zero line. Whatever makes a condor "most profitable over the last 12 months" is exactly what left it exposed to the April–May 2026 directional move — so the harder you optimize the past year, the worse it does next. This is a market-regime problem, not a parameter one.

The config (if you want to forward-test something)

ParameterIn-sample max (headline)Robust variant (recommended)
Expiry40 DTE, weekly Monday40 DTE, weekly Monday
Short strikes~10-delta call + put~16-delta call + put
Wings$5 (defined risk)$5 (defined risk)
Take profit65% of credit65% of credit
Time exit14 DTE7 DTE
Stop2.5× credit2.0× credit (clips the tail)
In-sample+$964 · 78% win · PF 2.07+$589 · 66% win · PF 1.48
Out-of-sample−$402 · 40% win−$69 · 38% win (≈breakeven)
Recommendation. Don't trade the +$964 max — it's the most overfit point on the surface. If forward-testing now, use the 2.0×-stop robust variant (≈breakeven OOS). The real unlock is a vol/trend regime filter that sits the condor out during months like Apr–May 2026 — that's the one lever left that could make a condor genuinely OOS-positive.

Every trade (winner config)

EntryCreditDTEExit reasonP&L
2025-06-23$1.0439time exit (14DTE)−$59
2025-06-30$0.7739time exit (14DTE)+$5
2025-07-07$0.7539take-profit 50%+$54
2025-07-21$1.0739take-profit 50%+$86
2025-07-28$0.9939take-profit 50%+$84
2025-08-04$1.0939take-profit 50%+$75
2025-08-11$0.5239take-profit 50%+$34
2025-08-18$0.9939time exit (14DTE)+$44
2025-09-22$1.0939take-profit 50%+$76
2025-09-29$0.9039take-profit 50%+$60
2025-10-06$1.0039take-profit 50%+$106
2025-10-13$1.0439time exit (14DTE)+$65
2025-10-20$0.9539take-profit 50%+$111
2025-10-27$0.9239take-profit 50%+$66
2025-11-03$0.8339time exit (14DTE)+$45
2025-11-10$1.0239take-profit 50%+$71
2025-12-08$0.5839take-profit 50%+$39
2025-12-22$0.9339take-profit 50%+$64
2026-01-05$1.0939take-profit 50%+$71
2026-01-12$0.9639time exit (14DTE)+$38
2026-01-26$0.9739take-profit 50%+$151
2026-02-02$1.1539take-profit 50%+$80
2026-02-09$1.3239time exit (14DTE)+$6
2026-03-02$1.1339take-profit 50%+$309
2026-03-09$1.1139time exit (14DTE)+$46
2026-03-23$0.5339take-profit 50%+$79
2026-03-30$1.4439stop 2.5x−$243
2026-04-06$1.0639stop 2.5x−$209
2026-04-13$0.8139stop 2.5x−$155
2026-04-20$1.0539time exit (14DTE)−$42
2026-04-27$0.3939stop 2.5x−$61
2026-05-04$0.9239time exit (14DTE)−$132

Generated 2026-06-15 from condor_sweep.py (216-config sweep) and strategy5_dte_condor.py. All P&L from real Alpaca daily option bars across the full hold, settled at expiry intrinsic where not managed out. Each trade risk-normalised to ~$400–500 max loss. Past performance is not indicative of future results; this is research, not advice.