14 Commits

Author SHA1 Message Date
Tika
ff8d58e1aa Phase 4c-bis/4d : CNN Image vectorisé + Agent RL PPO + HMM persistence + scripts
CNN Image (Phase 4c-bis) :
- chart_renderer.py : renderer numpy vectorisé (boucle 64 bougies, pas 12 000 fenêtres)
  → 1 068 img/s, GIL libéré entre itérations, API réactive pendant l'entraînement
- cnn_image_strategy_model.py : torch.set_num_threads(4) pour préserver l'event loop
- trading.py : asyncio.create_task() au lieu de background_tasks → hot-reloads non-bloquants

Agent RL PPO (Phase 4d) :
- src/ml/rl/ : TradingEnv (gymnasium), PPOModel (Actor-Critic MLP, GAE), RLStrategyModel
- src/strategies/rl_driven/ : RLDrivenStrategy (interface BaseStrategy complète)
- Routes API : POST /train-rl, GET /train-rl/{job_id}, GET /rl-models
- docs/RL_STRATEGY_GUIDE.md : documentation complète

HMM Persistence :
- regime_detector.py : save()/load()/needs_retrain()/is_trained (joblib + JSON meta)
- trading.py /ml/status : charge depuis disque si < 24h, re-entraîne + sauvegarde sinon
  → premier appel ~2s, appels suivants < 100ms

Scripts utilitaires :
- scripts/compare_strategies.py : backtest comparatif toutes stratégies (tabulate/JSON)
- scripts/quick_benchmark.py : comparaison wf_accuracy/precision des modèles ML sauvegardés
- reports/ : répertoire pour les rapports JSON générés

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 22:40:52 +00:00
Tika
80e1308a1e feat: Phase 4c-bis — CNN image-based (analyse visuelle graphiques chandeliers)
## Nouveaux modules

### src/ml/cnn_image/
- chart_renderer.py : CandlestickImageRenderer — OHLCV → images 128×128 RGB (mplfinance)
  Fond #0d1117, bougies vertes/rouges, volume, sans axes, rendu en mémoire
  Fallback 2D si mplfinance absent
- cnn_image_model.py : CandlestickCNN — Conv2D 4-blocs (3→32→64→128→256) + AvgPool + Dense(3)
- cnn_image_strategy_model.py : CNNImageStrategyModel — même interface que MLStrategyModel

### src/strategies/cnn_image_driven/
- cnn_image_strategy.py : CNNImageDrivenStrategy(BaseStrategy), SL/TP ATR, seq_len=64

## Modifications

- ensemble_model.py : attach_cnn_image(), poids XGB=0.30/CNN1D=0.30/CNNImage=0.40
- trading.py : POST /train-cnn-image, GET /train-cnn-image/{id}, GET /cnn-image-models
- docker/requirements/api.txt : mplfinance>=0.12.10b0, Pillow>=10.0.0

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 20:22:41 +00:00
Tika
e9d4c440d9 docs: plan Phase 4c-bis — CNN image-based (analyse visuelle graphiques chandeliers)
Architecture Conv2D 4-blocs sur images 128×128 RGB rendues par mplfinance.
Apprend les patterns visuels sans qu'on les programme (marteaux, double top, etc.)
Intégration Ensemble 3 composants : XGB(0.30) + CNN1D(0.30) + CNNImage(0.40)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 20:18:12 +00:00
Tika
6fd68af47a docs: Phase 4c terminée — résultats XGBoost (wf_prec=21.7%) et CNN (wf_prec=32.7%)
CNN > XGBoost sur précision directionnelle. Labels équilibrés (32%/32%/35%).
Mise à jour table comparatif + statut Phase 4c → 100%.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 19:50:20 +00:00
Tika
7af7248b4d fix: MLStrategyModel — encodage labels [-1,0,1] → [0,1,2] pour XGBoost ≥ 2.x
XGBoost v2+ exige des classes dans [0, n_classes-1].
- train() : y_enc = y + 1 avant fit()
- predict() : décodage pred_enc - 1, prob_map ajusté (0=SHORT, 1=NEUTRAL, 2=LONG)
- _walk_forward_eval() : mask NEUTRAL corrigé (1 au lieu de 0 en espace encodé)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 19:47:00 +00:00
Tika
d245d7d8f4 docs: mise à jour PROJECT_STATUS Phase 4c — code complet, training en attente PyTorch
- Phase 4c : 80% (tous les fichiers créés, rebuild Docker en cours)
- Ajout tableau des bugs corrigés par la session agents (trading.py, strategy_engine.py, requirements)
- Version 0.6.0-beta

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 19:40:52 +00:00
Tika
acc3338213 feat: Phase 4c — CNN + Ensemble architecture (multi-signal trading)
## Nouveaux modules

### src/ml/cnn/
- candlestick_encoder.py : CandlestickEncoder, fenêtres OHLCV z-score (N, 64, 5)
- cnn_model.py : TradingCNN — 3 blocs Conv1D(5→32→64→128) + BN + ReLU + GlobalAvgPool
- cnn_strategy_model.py : CNNStrategyModel, API identique à MLStrategyModel (train/predict/save/load)

### src/ml/ensemble/
- ensemble_model.py : EnsembleModel, poids {xgboost:0.40, cnn:0.60}, accord requis entre modèles

### src/strategies/cnn_driven/
- cnn_strategy.py : CNNDrivenStrategy(BaseStrategy), SL/TP ATR-based, fallback CNN_AVAILABLE=False

### src/strategies/ensemble/
- ensemble_strategy.py : EnsembleStrategy(BaseStrategy), auto-load XGBoost + CNN au démarrage

## Modifications

- trading.py : routes POST /train-cnn, GET /train-cnn/{job_id}, GET /cnn-models,
  POST /ensemble/configure, GET /ensemble/status + fix bugs (logging, _get_data_service, period_map)
- strategy_engine.py : support 'ml_driven' dans load_strategy()
- docker/requirements/api.txt : ajout torch>=2.0.0 + dépendances ML (scikit-learn, xgboost, lightgbm)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-10 19:34:41 +00:00
Tika
8732acf3d0 docs: plan Phase 4c CNN+Ensemble + mise à jour PROJECT_STATUS
- Nouveau : docs/CNN_ENSEMBLE_PLAN.md — architecture complète CNN 1D + Ensemble pondéré + RL (Phase 4d)
- PROJECT_STATUS : Phase 4b marquée avec fix bug SHORT LabelGenerator
- PROJECT_STATUS : Phase 4c CNN+Ensemble et Phase 4d RL ajoutées

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 22:24:16 +00:00
Tika
daea333555 fix: LabelGenerator _classify_bar — simulation LONG/SHORT indépendante
Bug : quand le SL LONG était touché, la fonction retournait 0 (NEUTRAL)
immédiatement sans évaluer les conditions SHORT. Résultat : 0 labels SHORT
sur 12230 barres, modèle inutilisable pour signaux SHORT.

Fix : deux boucles indépendantes (LONG et SHORT) qui évaluent chacune
leur propre TP/SL. Si les deux gagnent, priorité au premier résolu.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 22:22:27 +00:00
Tika
8f3b026f82 docs: mise à jour TP scalping 3×ATR → 4×ATR dans la documentation
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 21:45:47 +00:00
Tika
b3983d9ef8 fix: scalping TP 3×ATR → 4×ATR pour R:R=2:1 (breakeven ~34%)
Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 21:44:42 +00:00
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
Tika
cc05ddb7c4 feat: ML-Driven Strategy — apprentissage des patterns TA humains
Nouveau module complet pour entraîner un modèle XGBoost/LightGBM
qui apprend à détecter des opportunités depuis des indicateurs classiques :
RSI (divergences), MACD (crossovers), Bollinger (squeeze/rebond),
Supports/Résistances (pivots locaux), Points Pivots (classiques + Fibonacci),
patterns chandeliers (marteau, engulfing), alignement EMAs, volume.

Fichiers créés :
- src/ml/features/technical_features.py  (~50 features TA)
- src/ml/features/label_generator.py     (labels LONG/SHORT/NEUTRAL par forward simulation ATR)
- src/ml/ml_strategy_model.py            (entraînement + walk-forward + sauvegarde joblib)
- src/strategies/ml_driven/ml_strategy.py (stratégie compatible StrategyEngine)

Routes API ajoutées :
- POST   /trading/train                              (entraînement async)
- GET    /trading/train/{job_id}                     (état du job)
- GET    /trading/ml-models                          (liste modèles disponibles)
- GET    /trading/ml-models/{symbol}/{tf}/importance (feature importance)

Documentation : docs/ML_STRATEGY_GUIDE.md

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 17:45:39 +00:00
Tika
da30ef19ed Initial commit — Trading AI Secure project complet
Architecture Docker (8 services), FastAPI, TimescaleDB, Redis, Streamlit.
Stratégies : scalping, intraday, swing. MLEngine + RegimeDetector (HMM).
BacktestEngine + WalkForwardAnalyzer + Optuna optimizer.
Routes API complètes dont /optimize async.

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-08 17:38:09 +00:00