12 Commits

Author SHA1 Message Date
Brent Neale a4ec5fb0a5 Add M5 data pipeline and test S12/S15/S16 on 5-minute data
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>
2026-02-21 11:34:12 +10:00
Brent Neale 7657d4b1b3 Add 5 new strategies (S12-S16) — all tested, none show edge on M15
Implemented and backtested 5 new strategies adapted to M15 timeframe:
- S12 Asian Range Sweep (best OOS PF 0.66)
- S13 Bollinger-Keltner Squeeze (best OOS PF 0.79)
- S14 London Fix post-fix reversal (best OOS PF 0.52)
- S15 Momentum Continuation (best OOS PF 0.87)
- S16 London ORB (best OOS PF 0.63)

Added Bollinger Bands and Keltner Channels to indicator pipeline.
None passed generalization — these strategies need M5/M30 data.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-21 06:57:29 +10:00
Brent Neale ad58e3be0c Update regime analysis for 4-strategy portfolio
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>
2026-02-21 00:38:30 +10:00
Brent Neale 33369f9151 Update Kelly sizing for 4-strategy portfolio
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>
2026-02-20 23:40:11 +10:00
Brent Neale 9f32948caf Update correlation analysis for 4-strategy portfolio
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>
2026-02-20 23:28:17 +10:00
Brent Neale 98cc843d14 Update S8_OB to best sweep params (DISP=2.5, TP1=2.0, Window=40)
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>
2026-02-20 23:12:43 +10:00
Brent Neale 23d8288fa3 Update param sweep results with S8_OB grid (27 combos)
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>
2026-02-20 23:02:12 +10:00
Brent Neale ea5472b737 Add S8 Order Block (GBP_USD/M15) to Phase 2 portfolio
Tested all 9 untested strategies across 22 pair combos. S8 Order Block
on GBP_USD was the standout: OOS PF=2.14, WR=65.4%, Gen=1.850 PASS.
Parameter sweep confirmed DISPLACEMENT_ATR=2.0, TP1_ATR_MULT=1.0,
OB_RETEST_WINDOW=40 as best params (all top-5 PASS OOS validation).

Portfolio now 4 strategies: S7_Tight, S9_Filtered, S3, S8_OB.
OOS portfolio: 82 trades, PF=1.61, WR=64.6%, Sharpe=2.98, +672 pips.

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-20 21:00:30 +10:00
Brent Neale bdab78ee48 Add S10 VWAP Mean Reversion and S11 ADX Trend Pullback strategies, drop both from portfolio
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>
2026-02-20 16:23:23 +10:00
Brent Neale 9c5d55ec46 Refine Phase 2 portfolio: data-driven filters, drop S4F and S9
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>
2026-02-20 10:25:09 +10:00
Brent Neale 4f911b2072 Add Phase 2 backtesting pipeline: IS/OOS split, param sweep, generalization scoring
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>
2026-02-20 10:25:08 +10:00
Brent Neale 072ac0f245 Phase 2: Live paper trading engine + extended backtesting analytics
Track A — Live paper trading system:
- Extract PositionManager from backtester into shared src/position_manager.py
- Refactor backtester/engine.py to delegate to PositionManager
- New src/live/ package: data_feed (OANDA polling), executor (paper/live orders),
  engine (LiveEngine orchestrator with 5 strategy slots), run.py entry point
- Add phase2 config to system.yaml (S7_Tight, S9, S9_Filtered, S4F, S3)

Track B — Extended backtesting analytics:
- Regime analysis: per-year (2021-2023) breakdown shows 4/5 strategies trending UP
- Correlation analysis: S7+S3 GBP_JPY overlap=16.9% (moderate), S9 pairs=12% (low)
- Kelly sizing: S9_Filtered half-Kelly=7.3%, S4F=2.4%, S3=1.6% with Monte Carlo DD

Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
2026-02-19 14:46:51 +10:00