Current state — Phase 15
| Dimension | Value |
|---|---|
| Signal model | 56 features · RF+XGB+LGB · 3-class · M15 · Optuna-tuned |
| OOS (37d) | WR 78.5% · PF 2.43 · MaxDD 1.8% · Score 21.34 |
| OOS (224d) | WR 57.4% · PF 2.21 · MaxDD 50.2% (long-range reference) |
| Position model | 60 features · ATR-aware labels · exit_threshold=0.80 |
| Training cutoff | 2026-03-05 16:00 UTC · R2 tag v20260415 |
| Infrastructure | ONNX inference · Cloudflare R2 · Supabase sync |
| MQL5 EA | Phase 0–1 in progress (model size optimization) |
Q2 2026 (Apr – Jun)
| Priority | Phase | Item |
|---|---|---|
| Done | 15 | Broker-agnostic refactor — config/brokers.json, backtest_config.py presets, sweep.py |
| Critical | 15 | Auto-retrain cron on VM |
| Critical | 15 | Telegram bot commands operational |
| Critical | 15 | Broker safety audit — python scripts/check_broker_limits.py |
| Critical | 15 | Performance monitor + Telegram alerts every 4h |
| Critical | MQL5-0 | Model size test; shrink position_rf.onnx if EX5 > 20 MB |
| High | 16 | Walk-forward backtest (12 folds); gate retrain on median PF > 2.0 |
| High | 16 | Kelly lot sizing backtest (via backtest_config.py lot-cap sweep) |
| High | 16 | max_daily_loss guard (3% equity hard stop) |
| High | 16 | Equity curve filter (10-trade rolling drawdown pause) |
| High | 16 | Multi-account MVP — --account flag, PM2 multi-instance config |
| Medium | 16 | Confidence-based position sizing (60/70/80% tiers) |
| Medium | 17 | Funding rate + OI change features from Binance API |
| Medium | MQL5-1 | Python tooling: scaler constants + ONNX ZIP packing |
Q3 2026 (Jul – Sep)
| Priority | Phase | Item |
|---|---|---|
| Critical | MQL5-2 | Core EA framework + ONNX loading |
| Critical | MQL5-3 | Feature computation in MQL5 (56 features, parity test) |
| High | 17 | Fear & Greed Index + liquidation levels features |
| High | 17 | Volatility regime + W1 trend features |
| High | 17 | Multi-datasource OHLCV — TradingView + yfinance pipeline |
| High | 18 | Stacked meta-learner (replace majority-vote) |
| High | 18 | Calibrated probability outputs (isotonic regression) |
| High | 19 | Live trade dashboard (Streamlit + Supabase) |
| Medium | 18 | Regime-switching model (trending vs ranging via ADX) |
| Medium | 19 | API failover + graceful shutdown |
| Medium | 19 | Config hot-reload (no restart for conf/risk changes) |
Q4 2026 (Oct – Dec)
| Priority | Phase | Item |
|---|---|---|
| Critical | MQL5-4 | Signal generation + execution in MQL5 |
| Critical | MQL5-5 | Position management in MQL5 (60-feature inference) |
| High | MQL5-6 | MQL5 Market submission (Free + Premium tiers) |
| High | 18 | XAUUSD model — separate model stack, gold-specific ATR scaling |
| High | 18 | Online/incremental weekly model updates |
| High | 19 | Multi-broker abstraction fully wired (--account flag live on all brokers) |
| Medium | 17 | Options skew (Deribit 25D risk reversal) |
| Medium | 17 | Correlation to SPY/DXY features |
| Medium | 17 | OKX/Binance REST as OHLCV data source (4th source consensus) |
| Medium | 19 | Grafana + InfluxDB metrics pipeline |
Q1 2027 (Jan – Mar)
| Priority | Phase | Item |
|---|---|---|
| High | 18 | EURUSD model — forex-specific feature set, pip P&L, tighter spread |
| High | 18 | Multi-instrument live trading (BTCUSD + XAUUSD simultaneously) |
| Medium | 17 | Cross-asset features: BTC–Gold correlation, BTC–ETH spread |
| Medium | 19 | Per-instrument dashboards and alerts |
Milestones
M1 — Full production hardening (target: May 2026)
Goal: zero-touch live operation with monitoring, alerts, and auto-maintenance.- Score >= 15.0 (achieved: 21.34)
- Position model live with conservative thresholds
- Weekly auto-retrain cron running on trading VM
- PM2 performance monitor running every 4h
- Telegram bot commands operational
- Broker safety audit completed
- Weekly Score review cadence: Score < 10 → retrain, Score < 6 → pause
M2 — MQL5 EA alpha (target: Jun 2026)
Goal: all 6 ONNX models running inside MetaTrader 5 natively.- All 6 ONNX models fit within 20 MB EX5 file
-
ScalerConstants.mqhauto-generated - Core EA compiles in MetaEditor
- ONNX models load via
OnnxCreate()inOnInit() - Feature parity test passes: MAE < 0.001 vs Python on 100 bars
M3 — Signal intelligence upgrade (target: Aug 2026)
Goal: measurably better OOS accuracy and risk-adjusted returns.- Funding rate + OI change features, model retrained
- Stacked meta-learner: OOS accuracy >= current + 2pp
- Walk-forward: 12+ folds, all WR > 55%, PF > 2.0
- Confidence-based position sizing live
- Live Streamlit dashboard operational
M4 — MQL5 EA beta (target: Sep 2026)
Goal: fully functional standalone EA with signal + position management.- All 56 features in native MQL5
- Signal inference: majority vote → BUY/SELL/HOLD
- ATR-based SL/TP with
trade_stops_levelenforcement - Position inference: 59-feature → EXIT/HOLD/ADD
- 2-week paper trade on demo: WR > 60%, no ONNX crashes
M5 — Multi-asset & market (target: Q4 2026 – Q1 2027)
Goal: commercial-grade EA on MQL5 Market + second trading instrument.- XAUUSD model validated (OOS PF > 2.0) and live — separate model stack
- EURUSD model in development (Q1 2027 target)
- Regime-switching model deployed
- MQL5 Market submission accepted (Free + Premium tiers)
- Multi-account trading operational (at least 2 broker accounts)
- Multi-datasource OHLCV pipeline live (MT5 + yfinance minimum)
Score formula
All retrains and config sweeps are ranked by:| Score | Interpretation |
|---|---|
| < 6.0 | Pause live trading — manual review required |
| 6.0–10.0 | Operational but below target — trigger retrain |
| 10.0–15.0 | Production-grade |
| > 15.0 | Excellent — current: 21.34 (37d OOS) |
Version history
| Phase | Date | Key change | OOS Score |
|---|---|---|---|
| 1–4 | 2025 | Initial ML model, SHAP, ATR labeling | — |
| 5–8 | 2025 | Phase 8 position model, Kelly sizing | — |
| 9–11 | 2026-04-11 | M15 timeframe, 53 features, MTF ladder | ~4.5 |
| 12 | 2026-04-11 | ADX filter, spread fix, OOS contamination fix | ~5.1 |
| 13 | 2026-04-12 | 55 features, news_surprise/bars_since_news, Optuna retune | ~3.5 |
| 14 | 2026-04-13 | Config sweep, TP=0.8xATR, risk=2%, conf=0.60 | 15.49 |
| 15 | 2026-04-15 | Position model ATR-aware retrain, threshold sweep | 15.49 |
Active task list with checkboxes → TODO. Archived phases 1–12 →
ARCHIVE.md in the repository root.