Files
trader-ml/docs/PROJECT_STATUS.md
Tika bf530215e0 docs: mise à jour complète de la documentation (état réel 2026-03-08)
- PROJECT_STATUS.md : réécriture complète — phases 1-4b terminées à 100%,
  routes API exhaustives, fixes critiques documentés, à-faire priorisé
- STRATEGY_GUIDE.md : ajout section ML-Driven Strategy avec features,
  labels, usage API et paramètres de configuration
- AI_FRAMEWORK.md : ajout section ML-Driven + tableau statut implémentation,
  différenciation HMM/Optuna/MLStrategy
- ARCHITECTURE.md : ajout structure réelle du code avec les nouveaux fichiers
  ml_strategy_model.py, features/, ml_driven/ annotés [NOUVEAU]

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 21:13:01 +00:00

177 lines
6.8 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
# É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é