Live paper-trade tracking
Operational notes
2026-06-08 → 2026-06-11 — regime filter evaluated on stale closes (resolved)
The nightly price ingest was down (corrupted vendor API key), freezing daily closes at Jun 5. S012's SPY-vol-regime filter evaluated the Jun 8–11 sessions against that stale data. No positions were open and no entries were taken during the window. On 2026-06-12, with the feed restored, the filter still evaluated to blocked on current data; whether each individual Jun 8–11 session would also have blocked on fresh closes cannot be reconstructed with certainty, so the window is noted here rather than re-scored.
| Track | Current | Return | Closed | Open | Win % | Avg EV% |
|---|---|---|---|---|---|---|
| 1pct 1% Reg-T BP per signal |
$1,000,000 | +0.00% | 0 | 0 | 0.0% | +0.000% |
| SPY benchmark buy & hold from paper-start |
$983,740 | -1.63% | — | |||
0 open positions and the full trade history (0 closed trades shown above) — including tickers, strikes, fills, and live mark-to-market — are visible to subscribers. View a subscription →
About this trade simulation · methodology details
Trade-simulation tracking re-evaluates the strategy intraday against live broker quotes (Tastytrade-tiered friction), with a 30-minute mark-to-market cadence through the US session so risk rules can trigger within the day. Parameters were frozen at Stage 2 — the exact sizing %, stop-loss %, IV proxy, and earnings-skip window are visible to subscribers. View a subscription →
Setup detail · S012
ID: S012
Slug: put-selling-capitulation-volregime-filter-v2-stage2
Stage: 2 (walk-forward validation)
Run date: 2026-06-01
Outcome: PASSED Stage 2 — all 10 gates clear → ready for Stage 3 (paper trade) discussion
Headline metric: OOS CAGR +5.00% / +3%
Lineage: Direct continuation of S012 Stage 1 (PASSED 2026-05-31 — per-trade EV +1.19%, win rate 87%, year-concentration 22.2%, h1/h2 time-stationary at +1.20%/+1.18%). Stage 2 gates pre-registered 2026-06-01 — FROZEN before the walk-forward driver was written. Tastytrade-anchored tiered friction replaces Stage 1's %-of-premium proxy.
What we tested
Stage 1 confirmed the per-trade economics of S012's tightened filter were strong in-sample. Stage 2 asks the harder questions: does the in-sample edge generalize to held-out time windows? Does it survive realistic Tastytrade trading costs? Is the filter knife-edge or robust? Does the strategy survive a year (2022) with very few signals?
The walk-forward design splits 2019-2026 into 8 separate annual test folds. Each year is treated as held-out from the prior years. Because S012 is a rules-based strategy (no parameters tuned per fold), the walk-forward is a strict held-out test — we cannot adjust to a fold's regime.
The friction model was upgraded from Stage 1's %-of-premium proxy to the same Tastytrade-anchored tiered model used in S011 Stage 2: $1.30 round-trip commission ($1.14 open + $0.14 close) plus per-leg slippage by underlying liquidity tier ($1.50 for SPY/QQQ-class, $2.50 for mega-caps + other ETFs, $5.00 for top-1000 mid-caps). All-in round-trip cost: $4.30 to $11.30.
The parameter sweep covers filter multipliers across 5 levels (explicit sensitivity test from Stage 1's recommendation), sizing budgets across 3 uniform-notional levels, and 2 stop-loss configurations (30 cells total). S012 uses uniform fixed-fraction-notional sizing — NOT S011's risk-weighted sizing. The mechanisms are orthogonal by design: S011 bounds tail loss per trade, S012 refuses to play in volatile regimes.
The 10 pre-set criteria — frozen before any walk-forward code ran — required (1) baseline OOS CAGR ≥ +3%, (2) ≥ 6 of 8 OOS folds positive, (3) worst fold ≥ −10%, (4) OOS Sharpe ≥ 0.5, (5) OOS max drawdown ≤ 25%, (6) baseline still positive at 2× friction (≥ +1.5%), (7) ≥ 4 of 5 filter levels positive (filter robustness — S012's primary mechanism gate), (8) all 3 sizing levels positive, (9) year-concentration ≤ 35% of positive baseline dollar P/L, (10) no single combo above +18% CAGR (knife-edge detector).
What we found
All 10 gates passed.
| Criterion | We needed | We got | |
|---|---|---|---|
| Baseline mean OOS CAGR | ≥ +3% | +5.00% | ✓ |
| Positive-CAGR OOS folds (baseline) | ≥ 6 of 8 | 8 of 8 | ✓ |
| Worst single OOS fold CAGR | ≥ −10% | +0.16% | ✓ |
| OOS Sharpe (monthly, annualised) | ≥ 0.5 | 2.01 | ✓ |
| OOS max drawdown | ≤ 25% | 2.0% | ✓ |
| Friction stress (2× tiered slippage) baseline CAGR | ≥ +1.5% | +3.43% | ✓ |
| Filter robustness: ≥ 4 of 5 levels positive | yes | 5 of 5 positive (CAGR monotonic in looseness) | ✓ |
| Sizing sweep: all 3 levels positive | yes | all 3 positive (CAGR scales ~linearly with risk budget) | ✓ |
| Year-concentration: max-year share ≤ 35% | yes | 33.9% (2021) | ✓ |
| Knife-edge: no combo CAGR > 18% | yes | max across 30 combos: +8.40% | ✓ |
Year-by-year OOS performance (baseline params)
| Year | CAGR | Trades | Win rate | Dollar P/L | Share of positive total |
|---|---|---|---|---|---|
| 2019 | +4.15% | 442 | 84.6% | +$4,613 | 8.9% |
| 2020 | +2.33% | 533 | 86.1% | +$2,693 | 5.2% |
| 2021 | +14.90% (best) | 1,969 | 82.2% | +$17,637 | 33.9% (max) |
| 2022 | +0.16% (worst) | 14 | 100.0% | +$224 | 0.4% |
| 2023 | +5.51% | 1,323 | 82.8% | +$7,509 | 14.4% |
| 2024 | +4.58% | 699 | 87.8% | +$6,582 | 12.6% |
| 2025 | +5.42% | 561 | 86.5% | +$8,154 | 15.6% |
| 2026 (YTD) | +2.96% | 210 | 92.4% | +$4,690 | 9.0% |
(See baseline_folds.parquet for the full table.)
Why this matters / what surprised us
Every single OOS year was positive. 8 of 8 folds passing is the strongest possible robustness result, mirroring S011's perfect score. But where S011 achieved this by capping tail-losses per trade (sizing), S012 achieved it by refusing to play in volatile regimes (filter). These are genuinely different mechanisms with the same end-state — both are real.
2022 was the cleanest demonstration of the mechanism working. The filter aggressively excluded 2022 trades: only 14 trades survived the calm-regime threshold (vs 1,323 in the calmer 2023). All 14 won. The filter did exactly what it was designed to do — sit out the regime where the mechanic breaks. S008's catastrophic year (the −$2.8M 2022 in in-sample Stage 1 without sizing or filter) is essentially neutralized here without ever needing a stop-loss.
The max drawdown is 2.0%, an order of magnitude tighter than S011's 18.2%. This is the most striking number in the run. S011 takes a 19%-drawdown ride to its +9% CAGR; S012 gets +5% with a 2% ride. The Sharpe ratios reflect this: S012 at 2.01 vs S011's 1.42. The trade-off is clean: S012 produces lower headline CAGR but with vastly better risk-adjusted return. Different investor preferences will choose differently.
The filter is monotonic, not knife-edge. The Stage 1 concern that the multiplier might be knife-edge-sensitive (a specific value that just happens to work) is conclusively dispelled. The OOS results across the 5 sweep levels are monotonic in CAGR (looser filter → more trades → higher CAGR, but also higher drawdown). The baseline level happens to be the Sharpe-optimal point ex post. This is fortunate — it would have been concerning if a stricter or looser threshold had dominated by both measures.
Sizing scales close to linearly. Across the 3 sizing levels the CAGR scales close to linearly, drawdown rises but stays modest, and no leverage-blowup risk because positions are uniformly-sized notional commitments, not risk-weighted to a worst-case loss. Even at the most aggressive sizing the worst single OOS year is positive.
Year-concentration came in at 33.9%, just under the 35% gate. 2021 contributes a third of positive dollar P/L. This is the only number where S012 didn't dominate — the gate passes but with little headroom. The interpretation: 2021 was a uniquely calm-vol year, the filter fired more trades than usual (1,969 — twice 2024's count), and the dollar P/L compounded. This is consistent with the filter's design; it's not a sign of the strategy breaking, but it should be monitored in Stage 3 paper trade.
The strategy stays profitable under doubled friction (+3.43%). Same robustness as S011 to the friction parameter. The lower headline CAGR gives less buffer than S011, but the gate threshold was set appropriately lower (+1.5% vs +2.0%).
What this doesn't tell us yet
-
Real options pricing is still simulated. Like S011 Stage 2, the options were priced from a Black-Scholes / realized-vol proxy model rather than actual historical chain prices. Stage 3 paper trade uses live data and will be the first real-world stress test.
-
The 1,969-trade 2021 year is a tail event in trade-count distribution. If 2021's calm-vol regime re-occurred, the strategy could over-commit capital. Stage 3 will reveal whether the live signal frequency tracks expectations or starts deviating.
-
The 2022-style behavior of "almost no trades" needs to be tolerable in paper trade. A subscriber expecting daily alerts could find a 14-trade year disappointing even though it's correct strategy behavior. Stage 3 messaging matters.
-
S012 doesn't ladder with S011 cleanly. The two mechanisms are orthogonal but the strategies overlap on Variant B base signals. A combined version was already tried (S013) and failed in Stage 1 (drawdown was tighter but signal frequency too low to satisfy gates). The two strategies should run as parallel paper books, not as a combined book.
What happens next
S012 promotes to Stage 3 (paper trade). The lab now has two Stage-3 candidates running parallel:
- S011 — risk-weighted sizing, no filter. OOS CAGR +9.05%, DD 18.2%, Sharpe 1.42. Already running paper trade.
- S012 — calm-regime filter, uniform sizing. OOS CAGR +5.00%, DD 2.0%, Sharpe 2.01. Stage 3 setup pending.
Stage 3 design considerations specific to S012:
- Parallel tracks: same scheduler timing (23:30 NL nightly) as S011, since S012 also fires off daily close.
- Two sizing tracks mirroring S011's default + aggressive variants.
- Filter level kept fixed at the Stage 2 baseline — Stage 2 confirms it isn't knife-edge, no sweep-tuning in Stage 3.
- No stop-loss — Stage 2 confirms it isn't needed.
- Stage 3 gates pre-registered before paper-runner code is written.
Methodology appendix — gates, exact parameters, look-ahead audit — is visible to subscribers. View a subscription →