Live paper-trade tracking
Operational notes
2026-06-02 → 2026-06-11 — incomplete intraday marks (resolved)
Two independent infrastructure failures degraded this paper-trade record during its second week:
- Mark-to-market job crash. A database-connection defect aborted the intraday marking pass whenever an open position hit an exit rule. From the first triggered exit, parts of the open book stopped receiving marks — positions entered after Jun 1 carried no marks at all until the repair — and no exits could execute.
- Stale daily prices. The nightly price ingest ran with a corrupted vendor API key from Jun 1, freezing daily closes at Jun 5. Signal pre-filtering on Jun 8–11 therefore used features computed from Jun-5 closes.
Remediation, all on 2026-06-12: the defect was fixed, the API key
restored, the missing daily history backfilled. Backfilled marks are
Black-Scholes theoretical values flagged bs_backfill in the mark log;
real broker-quote marks were never overwritten.
Honest consequence: six positions crossed their exit thresholds during the outage but could only close on 2026-06-12 at then-current quotes. Their realized P/L therefore differs from what timely execution would have produced — in either direction. This window will be flagged in the Stage-3 gate evaluation rather than smoothed over.
| Track | Current | Return | Closed | Open | Win % | Avg EV% |
|---|---|---|---|---|---|---|
| 1pct 1% Reg-T BP per signal |
$1,020,129 | +2.01% | 63 | 42 | 74.6% | +0.562% |
| SPY benchmark buy & hold from paper-start |
$983,740 | -1.63% | — | |||
42 open positions and the full trade history (50 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 · S011
ID: S011
Slug: put-selling-capitulation-risk-weighted-v1-stage2
Stage: 2 (walk-forward validation)
Run date: 2026-05-31
Outcome: PASSED Stage 2 — all 10 gates clear → ready for Stage 3 (paper trade) discussion
Headline metric: OOS CAGR +9.05% / +4%
Lineage: Direct continuation of S011 Stage 1 (PASSED 2026-05-31, in-sample CAGR +10.7%, Sharpe 1.67, max DD 19.1%). Stage 2 design pre-registered and FROZEN earlier the same day, before the walk-forward driver was written. Tastytrade-anchored tiered friction replaces Stage 1's %-of-premium model.
What we tested
Stage 1 confirmed the per-trade economics of S011's strategy 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? Does it survive parameter perturbations? Is any single year, single mechanism, or single ticker carrying the result?
The walk-forward design splits 2019-2026 into 8 separate annual test folds. Each year is treated as held-out from the prior years used to develop the rule. Because S011 is a rules-based strategy (no parameters tuned per fold), the walk-forward serves as a stricter test than a tuning-based walk-forward: we cannot adjust to a fold's regime.
The friction model was upgraded from Stage 1's %-of-premium approximation to a Tastytrade-anchored tiered model: $1.30 round-trip commission (matches Tastytrade's actual $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). Round-trip all-in cost ranges from $4.30 (ETF-liquid) to $11.30 (equity-mid).
The parameter sweep covers stop-loss thresholds, vol-regime filter thresholds, and risk budgets per trade across multiple levels each (48 cells total). The baseline combo is the no-stop, no-filter, default- sizing case the headline gates evaluate against; the sweep proves the result isn't knife-edge on any single parameter.
The 10 pre-set criteria — frozen before any walk-forward code ran — required (1) baseline OOS CAGR ≥ +4%, (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, (7) sizing sweep all positive, (8) stop sweep mostly positive, (9) VXX-exclusion baseline still ≥ +2%, (10) no single combo above +20% CAGR (knife-edge detector).
What we found
All 10 gates passed.
| Criterion | We needed | We got | |
|---|---|---|---|
| Baseline mean OOS CAGR | ≥ +4% | +9.05% | ✓ |
| Positive-CAGR OOS folds (baseline) | ≥ 6 of 8 | 8 of 8 | ✓ |
| Worst single OOS fold CAGR | ≥ −10% | +0.77% | ✓ |
| OOS Sharpe (monthly, annualised) | ≥ 0.5 | 1.42 | ✓ |
| OOS max drawdown | ≤ 25% | 18.2% | ✓ |
| Friction stress (2× tiered slippage) baseline CAGR | ≥ +2% | +5.40% | ✓ |
| Sizing sweep: all 3 levels positive | yes | all 3 positive (CAGRs monotonic in risk budget) | ✓ |
| Stop-loss sweep: ≥ 3 of 4 positive | yes | 4 of 4 positive (spread within ~2pp CAGR) | ✓ |
| VXX-exclusion baseline CAGR | ≥ +2% | +8.73% | ✓ |
| Knife-edge: no combo CAGR > 20% | yes | max across 48 combos: +13.72% | ✓ |
Year-by-year OOS performance (baseline params)
| Year | Capital start | Capital end | CAGR | Trades | Win rate |
|---|---|---|---|---|---|
| 2019 | $126,002 | $134,189 | +6.50% | 1,500 | 83.9% |
| 2020 | $134,189 | $135,227 | +0.77% (worst) | 2,475 | 85.2% |
| 2021 | $135,227 | $161,984 | +19.79% (best) | 3,411 | 86.6% |
| 2022 | $161,984 | $168,722 | +4.16% | 1,733 | 81.0% |
| 2023 | $168,722 | $181,875 | +7.80% | 1,789 | 84.2% |
| 2024 | $181,875 | $207,908 | +14.31% | 2,749 | 87.6% |
| 2025 | $207,908 | $234,865 | +12.97% | 2,993 | 83.1% |
| 2026 (YTD) | $234,865 | $249,160 | +6.09% | 1,586 | 88.4% |
(See baseline_folds.parquet for the full per-fold table with exact numbers.)
Why this matters / what surprised us
Every single OOS year was positive. 8 of 8 folds with positive CAGR is the strongest possible robustness result. Even 2022 — the year that destroyed S008 with −$2.8M in losses under uniform 1-contract sizing — produced a positive OOS CAGR under risk-weighted sizing in this Stage 2 run. The mechanism (cap per-trade dollar loss at the same small fraction of capital, let the positive per-trade EV compound across many trades) genuinely converts the catastrophic-year problem into a tolerable- drawdown problem.
The strategy is robust across sizing. A standard backtest-overfitting signature would be a knife-edge at a specific parameter value: one level works but the neighbours don't. Here, every sizing level tested produces positive CAGR, with the relationship monotonic and rational (more risk budget → higher CAGR with the cost of higher drawdown). The default level was chosen ex-ante as a reasonable institutional risk budget, and the result confirms that choice wasn't knife-edge.
The stop-loss is broadly neutral-to-slightly-negative. Across the four stop-loss levels swept (none, tight, medium, loose), no-stop produces the highest CAGR and the tightest stop the worst — the medium and loose levels sit close to no-stop. Interpretation: with risk-weighted sizing already bounding per-trade loss, the stop-loss adds little incremental safety but does cost some bounce-recovery wins. Stage 3 design recommendation: run no-stop in production, OR a loose stop as a "tail-disaster-only" safety without much economic impact.
Tastytrade-realistic friction did not break the result. The Stage 1 %-of-premium friction model was a coarse approximation; the new tiered model is anchored to actual broker costs. Baseline CAGR drops from in-sample +10.72% (Stage 1) to OOS +9.05% (Stage 2), a 1.7pp degradation attributable to a combination of (a) the OOS-vs-in-sample step itself and (b) the friction model change. At stressed 2× friction, the strategy still produces +5.40% CAGR — well above the +2% gate. Real-world friction headroom is comfortable.
VXX is not load-bearing. The Stage 1 sanity check flagged VXX contributing 4.5% of total P/L despite being only 0.4% of trades by count — a high per-trade contribution worth verifying. Stage 2's VXX-exclusion variant produced +8.73% CAGR (vs +9.05% baseline) — a ~3% relative reduction. The strategy is not load-bearing on VXX as a mechanism. The remaining 95% of P/L comes from broad-based equity + ETF capitulation signals.
Worst-fold CAGR is +0.77%, not negative. This is unusual. Traditionally, a strategy that survives walk-forward has SOME negative folds — they just don't exceed the worst-fold threshold. Here, no year is negative at all. This either reflects (a) a genuinely robust signal that operates similarly across regimes, or (b) a 2015-2026 window that happens to lack a regime hostile enough to this strategy to push any fold negative. Stage 3's paper-trade window is the next falsification test.
No combo in the 48-cell sweep produced unrealistic returns. Max combo CAGR was +13.72% (the 2% sizing × no-stop × no-filter combo). Strategies with overfitting signatures typically have one or two combos that dramatically outperform their neighbours; here the distribution is smooth across the cross-product, consistent with a real underlying mechanism rather than a fitted artifact.
What this doesn't tell us yet
-
Stage 3 paper trade hasn't run. Stage 2 validates that the strategy generalizes across historical OOS windows. Stage 3 puts it in production conditions (live data feeds, real-time signal generation, no peeking at outcomes) for 8-12 weeks before any customer alerts fire.
-
True historical IV-rank reconstruction is still the Stage 3 blocker. The simulation uses a coarse realized-vol-based IV proxy throughout Stages 1 and 2. Tiingo Fundamentals add-on is the pending dependency. Real OTM put pricing has skew that varies by strike distance, market regime, and term structure. Stage 3 needs real option pricing (or a very rigorous skew model) before live alerts can fire.
-
A more aggressive sizing level produced higher CAGR than the default. If subscribers can tolerate higher drawdowns, the strategy may run at the more aggressive level in production. Stage 3 should test the default and aggressive sizing as parallel paper-trade tracks.
-
No single OOS year was negative — possibly a sample-window artifact. A different historical window (e.g., 2008-2015 covering the GFC tail) might produce different worst-fold results. Worth acknowledging in Stage 3 design that the 2015-2026 window omits the deepest US equity drawdown of recent memory.
-
Slippage assumptions, while better than Stage 1, are still estimates. Real Tastytrade fills may differ from the half-spread-fraction assumed here. Stage 3 should compare paper- trade fills against the model's expected friction to validate.
What happens next
S011 is now a Stage 3 paper-trade candidate. The lab pipeline's next stage is 8-12 weeks of production-conditions trading with no customer-facing alerts. The Stage 3 pre-registration will cover:
- Pre-registered gates for Stage 3 → Live promotion
- Live signal generation: nightly scan, signal-event emission, no retroactive editing
- Live position tracking (in a paper-trade book that does not transact)
- Friction validation: compare paper-trade-fill assumptions against what would have actually executed
- Sizing track: default plus an optional aggressive level, as separate paper books
- True IV-rank integration (blocked on Tiingo Fundamentals or alternative IV data source)
Per the lab pipeline methodology, Stage 3 work is its own pre-registration cycle. The Stage 2 result.md (this file) is the basis for that next pre-registration.
S012 (the second Stage 1 survivor) remains in the queue. Its Stage 2 walk-forward could be parallel-tracked or deferred until S011's Stage 3 outcome is known.
Methodology appendix — gates, exact parameters, look-ahead audit — is visible to subscribers. View a subscription →