# État d'Avancement du Projet — Trading AI Secure **Dernière mise à jour** : 2026-03-08 **Version** : 0.5.0-beta **Statut Global** : 🟡 En Développement Actif --- ## Vue d'Ensemble | Phase | Statut | Progression | |---|---|---| | Phase 1 : Architecture & Infrastructure | ✅ Terminé | 100% | | Phase 2 : IA Adaptative | ✅ Terminé | 100% | | Phase 3 : Stratégies & Backtesting | ✅ Terminé | 100% | | Phase 4 : Interface & Dashboard | ✅ Terminé | 100% | | Phase 4b : ML-Driven Strategy | ✅ Terminé | 100% | | Phase 5 : IG Markets (Live) | ⚪ Planifié | 0% | --- ## Phase 1 — Architecture & Infrastructure ✅ ### Docker (8 services) | Container | Port | Statut | |---|---|---| | trading-api | 8100 | ✅ Opérationnel | | trading-ml | 8200 | ✅ Opérationnel | | trading-dashboard | 8501 | ✅ Opérationnel | | trading-jupyter | 8888 | ✅ Opérationnel | | trading-grafana | 3100 | ✅ Opérationnel | | trading-db (TimescaleDB) | interne | ✅ Opérationnel | | trading-redis | interne | ✅ Opérationnel | | trading-prometheus | interne | ✅ Opérationnel | ### Modules Core | Module | Fichier | Statut | |---|---|---| | ConfigLoader | `src/utils/config_loader.py` | ✅ Env vars + YAML + Docker overrides | | Logger | `src/utils/logger.py` | ✅ | | RiskManager (Singleton) | `src/core/risk_manager.py` | ✅ VaR/CVaR/circuit breakers/Telegram | | NotificationService | `src/core/notifications.py` | ✅ Telegram + Email | | StrategyEngine | `src/core/strategy_engine.py` | ✅ | | DataService | `src/data/data_service.py` | ✅ Yahoo Finance + Alpha Vantage | | SQLAlchemy models | `src/db/models.py` | ✅ Trade, OHLCVData, BacktestResult, MLModelMeta | --- ## Phase 2 — IA Adaptative ✅ | Composant | Fichier | Statut | Notes | |---|---|---|---| | MLEngine | `src/ml/ml_engine.py` | ✅ | Intégré à StrategyEngine | | RegimeDetector (HMM) | `src/ml/regime_detector.py` | ✅ | 3 régimes : trend/range/volatile | | FeatureEngineering | `src/ml/feature_engineering.py` | ✅ | 50+ features | | ParameterOptimizer (Optuna) | `src/ml/parameter_optimizer.py` | ✅ | TPE Sampler + MedianPruner, walk-forward | | WalkForwardAnalyzer | `src/ml/walk_forward.py` | ✅ | Out-of-sample validation | | PositionSizing (Kelly) | `src/ml/position_sizing.py` | ✅ | ### Optuna Optimizer — résultats sur EURUSD/1h (50 trials) - best_sharpe = -0.378 (scalping légèrement perdant sur ce timeframe) - Best params : bb_period=30, rsi_period=16, risk_per_trade=0.003 --- ## Phase 3 — Stratégies & Backtesting ✅ ### Stratégies Implémentées | Stratégie | Fichier | Timeframe | Statut | |---|---|---|---| | ScalpingStrategy | `src/strategies/scalping/` | 1h | ✅ Win rate ~39% (EURUSD) | | IntradayStrategy | `src/strategies/intraday/` | 4h | ✅ | | SwingStrategy | `src/strategies/swing/` | 1d | ✅ | | **MLDrivenStrategy** | `src/strategies/ml_driven/` | Configurable | ✅ Nouveau (Phase 4b) | ### Backtesting | Composant | Statut | Notes | |---|---|---| | BacktestEngine | ✅ | DataService réel + fallback synthétique | | WalkForwardAnalyzer | ✅ | Vrai out-of-sample | | MetricsCalculator | ✅ | Sharpe, Drawdown, Win Rate, Profit Factor | | PaperTradingEngine | ✅ | Boucle async avec asyncio.create_task | ### Fixes critiques (sessions debug) - `yfinance>=1.0.0` (v0.2.32 était cassé, erreur HTTP 429) - `max_position_size=5.0` (forex : notional value >> capital, ancien 0.05 rejetait tous les trades) - `scalping_strategy.py` : volume_ratio=2.0 si forex, MACD momentum (pas zero-crossing), risk_per_trade=0.005 - Optuna : objective retourne vrai Sharpe (pénalité -999 seulement si < 5 trades) --- ## Phase 4 — Interface & Dashboard ✅ | Composant | Fichier | Statut | |---|---|---| | Dashboard Streamlit (5 onglets) | `src/ui/dashboard.py` | ✅ | | Page Live Trading | `src/ui/pages/live_trading.py` | ✅ | | Page ML Monitor | `src/ui/pages/ml_monitor.py` | ✅ | | Page Analytics (Monte Carlo) | `src/ui/pages/analytics.py` | ✅ | | API Client httpx | `src/ui/api_client.py` | ✅ | --- ## Phase 4b — ML-Driven Strategy ✅ (2026-03-08) Nouvelle stratégie qui apprend à trader comme un humain à partir de features TA classiques. Voir [docs/ML_STRATEGY_GUIDE.md](ML_STRATEGY_GUIDE.md) pour la documentation complète. | Composant | Fichier | Statut | |---|---|---| | TechnicalFeatureBuilder (~50 features) | `src/ml/features/technical_features.py` | ✅ | | LabelGenerator (forward simulation) | `src/ml/features/label_generator.py` | ✅ | | MLStrategyModel (XGBoost/LightGBM) | `src/ml/ml_strategy_model.py` | ✅ | | MLDrivenStrategy (hérite BaseStrategy) | `src/strategies/ml_driven/ml_strategy.py` | ✅ | | Route POST /trading/train | `src/api/routers/trading.py` | ✅ | | Route GET /trading/train/{job_id} | `src/api/routers/trading.py` | ✅ | | Route GET /trading/ml-models | `src/api/routers/trading.py` | ✅ | | Route GET /trading/ml-models/{s}/{tf}/importance | `src/api/routers/trading.py` | ✅ | | Documentation | `docs/ML_STRATEGY_GUIDE.md` | ✅ | --- ## Routes API — État Complet | Méthode | Route | Statut | |---|---|---| | GET | `/health` | ✅ | | GET | `/ready` | ✅ | | GET | `/trading/risk/status` | ✅ | | POST | `/trading/risk/emergency-stop` | ✅ | | POST | `/trading/risk/resume` | ✅ | | GET | `/trading/positions` | ✅ | | GET | `/trading/signals` | ✅ Redis | | GET | `/trading/trades` | ✅ DB | | GET | `/trading/ml/status` | ✅ HMM | | POST | `/trading/backtest` | ✅ async | | GET | `/trading/backtest/{job_id}` | ✅ | | POST | `/trading/optimize` | ✅ Optuna async | | GET | `/trading/optimize/{job_id}` | ✅ | | GET | `/trading/paper/status` | ✅ | | POST | `/trading/paper/start` | ✅ | | POST | `/trading/paper/stop` | ✅ | | POST | `/trading/train` | ✅ ML-Driven async | | GET | `/trading/train/{job_id}` | ✅ | | GET | `/trading/ml-models` | ✅ | | GET | `/trading/ml-models/{symbol}/{timeframe}/importance` | ✅ | --- ## Phase 5 — IG Markets ⚪ (Planifié) **Prérequis** : 30 jours de paper trading validé avec Sharpe ≥ 1.5 et Max DD ≤ 10% **Référence** : [docs/IG_INTEGRATION.md](IG_INTEGRATION.md) --- ## À Faire (par priorité) 1. **Tester MLDrivenStrategy** — lancer `POST /trading/train` sur EURUSD/1h, évaluer wf_accuracy, comparer en backtest vs scalping 2. **Améliorer stratégie scalping** — win rate ~39% (légèrement sous seuil). Option : TP=4×ATR (R:R=2:1, breakeven à 34%) 3. **Persistance ML state** — sauvegarder modèle HMM pour éviter re-training à chaque `/ml/status` 4. **PaperTradingEngine.run()** — compléter les TODOs de la boucle live 5. **Sentiment Analysis** — `src/data/sentiment_service.py` (Alpha Vantage News + FinBERT) 6. **IG Markets connector** — Phase 5, après 30 jours paper trading validé --- ## Dépôt Git - **Gitea** : http://192.168.1.100:3000/tika/trader-ml.git - **Branche principale** : master ## Légende - ✅ Terminé - 🟡 En cours - ⚪ Planifié