Implemented and backtested 5 ranging-market M15 strategies across
3 periods (Training 2021-2023, Test Set 2023-2024, 2025) and 4 pairs
(EUR_USD, GBP_USD, GBP_JPY, GBP_AUD). All 5 fail Phase 1 validation:
- S17 BB Rejection: PF 0.55-0.92, -1208p on 2025 (347 trades)
- S18 Failed Breakout: PF 0.53-0.84, -1905p on 2025 (747 trades)
- S19 VWAP Deviation: PF 0.23-1.65, -87p on 2025 (37 trades)
- S20 Range Compression: only 5 trades on 2025 (too restrictive)
- S21 EMA Ribbon Bounce: PF 0.64-0.89, -3358p on 2025 (1088 trades)
Also added midnight-reset VWAP indicator and downloaded 2025 M15 data
for EUR_USD, GBP_JPY, GBP_AUD.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Test set (Sep 2023 - Dec 2024): only S9_Filtered passes (PF=1.13),
portfolio PF=0.91 FAIL. S3 expansion to GBP_USD, EUR_USD, GBP_AUD
shows no generalization — GBP_JPY remains the only viable pair.
No strategy is consistently profitable across all 4 validation periods.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Comprehensive report comparing IS (2021-2022), OOS (2023), and 2025
performance across all 4 Phase 2 strategies. Includes per-trade logs,
period comparison tables, and root cause analysis for each strategy's
2025 performance. Key finding: only S3 survived, high Phase 2
generalization scores correlated with regime sensitivity not robustness.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Downloaded M5 data via Dukascopy for GBP_JPY, GBP_USD, EUR_USD, USD_JPY
(~200k bars each, 2021-2024). Added M5 to validate_and_split pipeline.
Tested S12 (Asian Range Sweep), S15 (Momentum Continuation), S16 (London
ORB) with M5-scaled parameters. No viable edge found — best result was
S16_GBP_JPY OOS PF=1.03 but IS was negative (PF=0.71).
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
S7: UP (1.26->1.80), S9F: UP (0.58->2.26), S3: STABLE (1.16->1.23),
S8_OB: UP (0.66->1.59). Three of four strategies show improving edge.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
All strategies positive Kelly, 0% ruin at half-Kelly.
S7: 13.7%, S9F: 9.5%, S3: 5.1%, S8_OB: 6.1% (half-Kelly).
S8_OB best risk profile: p95 DD only 1.8% with 2.11 W/L ratio.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Avg pairwise PnL correlation: 0.028 (excellent diversification).
S7/S3 signal overlap on GBP_JPY only 6.5%. Portfolio: 289 trades,
PF=1.37, Sharpe=1.29, +1,732 pips ($+23,424), max DD -21%.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
IS PF improved from 1.02 to 1.39, reducing IS/OOS divergence.
Portfolio: IS +1,089 pips PF=1.31, OOS +643 pips PF=1.55, Gen=1.473 PASS.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
S8_OB PASS: best params DISP_ATR=2.5, TP1=2.0, Window=40
(IS PF=1.39, OOS PF=1.59, Gen=1.382). S9_Filtered also PASS.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Implemented two M15 intraday strategies to diversify the portfolio:
- S10: VWAP mean reversion in ranging markets (ADX<30, RSI(9) extremes)
- S11: ADX trend pullback to 20 EMA in strong trends (ADX>30, rising)
Added rsi_9 and atr_10 to the indicator pipeline for both strategies.
Backtested on IS (2021-2022) and OOS (2023): both strategies produced
insufficient trade counts on M15 and failed generalization. S10 best
result was EUR_GBP at Gen 0.65 (WARN). S11 collapsed to 0% WR OOS
across all param sweep combos. Both dropped from active portfolio —
3-strategy core (S7_Tight, S9_Filtered, S3) remains unchanged.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
S7: add RSI floor (RSI<40 = 0% WR) and ATR percentile cap (high-vol
regime = worse RR). IS flips from PF 0.68 to 1.52, OOS holds at 1.80.
S3: add confluence gate (C>=4) and skip hours 09-10 (0% WR). IS PF
1.06 -> 1.22, OOS PF 1.07 -> 1.23.
S9_Filtered: add skip_monday (unreliable Asian ranges after weekend
gaps). IS PF 1.10 -> 1.31, OOS holds strong at 2.26.
Drop S9/GBP_USD (negative PF across all param combos) and S4F/EUR_AUD
(overfit: IS 1.43 collapses to OOS 0.48). 3-strategy portfolio: all
PASS generalization, IS PF 1.29, OOS PF 1.55, Gen 1.46.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
Externalize hardcoded params in S4F (5 params) and S3 (9 params) as class
attributes for sweep compatibility. Add unified backtest runner with IS/OOS
validation and generalization scores, plus parameter grid sweep (90 combos)
with OOS validation. S7/S9/S9_Filtered pass generalization; S4F/S3 confirm
defaults are near-optimal.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>