The Edge That Wasn't
All 81 experiments › #73

#73 — SMA-scratch tail-bounding test + restart-censoring discovery

2026-07-07
Verdict: negative · ⛔ overlay+stop AMPLIFIES drawdown; restart-censoring ledger found
Testing whether a floating-NAV equity overlay + 3xATR disaster stop could bound the SMA-scratch momentum book's unbounded open-position tail, the fix instead made floating max-drawdown 2.3x WORSE than baseline (-33,320p vs -14,259p) and flipped positive expectancy negative, while the gate-2 parity check uncovered a new apparatus-lies mechanism: the live paper ledger was restart-censored, silently orphaning 17 open positions (16 negative, ~-592p erased) across 3 container restarts, deflating the true full-population expectancy from a flattered +8.70p/trade to ~+3.0p/trade.

Hypothesis — what it tests

Whether a floating-NAV equity-curve overlay combined with a hard per-trade disaster stop can bound the unbounded open-position tail risk of a TP-only/no-stop momentum-scratch exit structure without destroying its positive expectancy, and, as a byproduct, whether the live paper ledger used as the R7 parity reference is itself trustworthy.

Description

H1 tested whether a floating-NAV equity-curve overlay (block new entries while floating equity < its own moving average) plus a hard 3.0xATR(14,H1) per-trade disaster stop could bound the unbounded open-position tail of the live fx-sma-scratch-paper momentum book (SMA16 scratch-exit, 6 pairs) without destroying its positive expectancy. Gate 2 (R7 parity vs the live paper trail) failed on expectancy (+8.70p/trade live vs +4.56p/trade harness) and was root-caused (Amendment 2) to restart-censoring: the live PairState is memory-only with no persistence, and 3 in-window container restarts (2026-06-21, 06-30, VPS migration 07-02) silently orphaned 17 open positions (16/17 negative, ~-591.6p erased) because the ledger only records trades that both open AND close within a single container lifetime -- the famous "+975p closed" collapses to ~+383p with orphans added back and to ~+190p / ~+3.0p-per-trade once the still-open book is marked too; fx-sma-scratch-paper was stopped as a result. Gate 2 was then re-scoped (Amendment 3) to count-parity-only (PASS, 111 vs 112) and the harness adopted as authoritative for gates 3-5. The full IS battery (4yr, 6 pairs, 64,621 trades across 9 arms) then falsified H1 outright: gate 3 passed (arm A's tail pathology reproduced cleanly -- 6 never-closed positions, -12,420p unrealized, worst single excursion -7,100p) but gate 4 failed on all four sub-criteria -- arm D (floating-overlay+stop) nets -2.85p/trade (bootstrap CI (-3.67,-2.03), wrong side of zero), does not beat its own coin_D control, and floating maxDD is 2.3x arm A's, with walk-forward thirds 0/3 positive; arm E (bare stop, no overlay) independently replicates project_validation_gap's no-SL-book finding on a second strategy (+3.71 -> -2.47p/trade). OOS was never unsealed -- the program stopped at the IS gate per the pre-registered decision rule.

Key result

Gate 2: 112 live closed trades vs 111 harness (ratio 0.991, count PASS) but +8.70p/trade live vs +4.56p/trade harness (diff -4.14p, FAIL vs +-1.0p tol). Restart-censoring: 4 container lifetimes (start 2026-06-18, restarts 06-21 and 06-30, VPS migration 07-02); 17 orphaned positions (5+6+6 across the 3 resets), 16/17 negative, ~-591.6p total; worst orphan USD_JPY -176p, GBP_JPY +1 at -102p, GBP_JPY -1 at -95p, GBP_USD -1 at -62p. Corrected ledger: +975p closed -> ~+383p with orphans -> ~+190p full-population including open marks (~+3.0p/trade vs the flattered +8.70p/trade headline). Gate 3 PASS: arm A n=849, WR 64%, net +3.71p/trade, 6 never-closed positions, open-book unrealized -12,420.1p, worst single excursion -7,100.3p. Gate 4 FAIL on all 4 sub-criteria: arm D n=11,666, net -2.85p/trade, bootstrap CI (-3.675,-2.033); vs coin_D (net -2.59p/trade, n=9,468) diff CI (-1.336,+0.797) spans zero; floating maxDD arm D -33,319.6p vs arm A -14,258.6p = 2.3x worse (claim required <=50%); walk-forward thirds 0/3 positive (-1.98p/-3.16p/-3.23p per trade, n=3,330/4,420/3,916). Arm E (stop-only, no overlay) n=20,290, net -2.47p/trade vs arm A's +3.71p/trade -- replicates project_validation_gap's no-SL-book finding on a second strategy. Gate 5 FAIL narrowly: coin_A +2.55p/trade (n=704) vs coin_overlay +2.17p/trade (n=445), no sign flip, but floating maxDD -18,941.4p vs -17,904.5p (~5.8% worse, tolerance was <=5%). Full IS battery: 6 pairs, IS 2020-11-11 to 2024-09-25, 64,621 trades across 9 arms, ~74s wall-clock on Hetzner. OOS (final 30%, 2024-09-25 to 2026-05-21) never unsealed.

Indicators

SMA16 (lags 8,10,15)ATR(14,H1)H1/M30 broker-grid bar aggregation from M5 mid

Algorithms

day-block bootstrap confidence interval3-way walk-forward splitcoin-flip null controlfloating-NAV equity-curve SMA overlay gaterestart/orphan census reconciliation

Code

Interactive version (search, filters, figures): the experiment explorer.

← #72 Multi-day contrarian program + first-touch H4 bar-grid refutation#74 London-fix fade (16:00 pre-fix drift reversion) →
This page is one experiment from the audited record behind the book The Edge That Wasn'tget the book · about the project.