#12 — RCA — lookahead + MACD bug
Hypothesis — what it tests
Why were all 16 live strategies net-negative despite 42-747 p/d validated backtests — regime change, bad luck, or a systematic apparatus defect?
Description
Every deployed strategy showed spectacular backtests (42-747 p/d) and negative live pips, so the live ledger was pulled from DuckDB: 16/16 strategies net negative, combined ≈−55,000 pips across 4,869 trades (worst four ≈−12,000p each). Bug #1: compute_mc_on_series in lib/asi_indicator.py downsampled each timeframe using the last bar of every block, so outputs at bar i used up to 719 bars of future data (bp=720) — training saw smoother, future-leaked mc_d/mc_dd that live could never reproduce. Bug #2: the live curator's macd_hist was a different indicator than training — SMA instead of EMA, MACD line instead of histogram, simple-mean ATR instead of Wilder — same variable name, different meaning. The fix was lib/incremental_features.py, a causal single-source FXFeatureBuilder used identically by training export and the live curator. The live losses were reframed as inevitable, not unlucky.
Key result
Indicators
Algorithms
Code
Interactive version (search, filters, figures): the experiment explorer.