- analyze_trades.py: time-split discipline (70/30) for filter selection.
Reports session-of-day, day-of-week, pair, regime × direction,
combined-filter performance on held-out test slice. Flags Saturday
(10% WR) and Sunday (24% WR) as toxic — definite live-engine drops.
- geometry_grid.py: re-simulates the existing trade pool over a
(sl_mult × rr) grid without re-running the engine. Recovers ATR from
the original 1.5×ATR SL distance, then walks forward through saved
OHLCV with first-touch logic. Reports train/test split per cell so
the verdict survives the 70/30 discipline.
Findings (2025-2026 data, 7 majors):
- M15: no SL/RR cell is profitable on the held-out test set, even with
Phase 1 filters layered on top. Best test cell (SL=3×ATR, RR=1:1):
-73 R, 48.7% WR, -0.062 avg R. The architecture is the problem.
- H4 (separate seed, 2 years): Grade B subset is profitable — total
+20.86 R / 967 trades, PF 1.03. USD/CAD H4 Grade B is *robust*: +34.77
total R / 118 trades, 44.1% WR, +0.295 avg R, PF 1.52, max DD -9.61 R.
Positive in every 6-month sub-period, train +20.77 / test +14.0.
Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>