Bot de paper trading tennis qui combine un modèle de probabilité pré-match, les cotes live du marché et des règles de gestion du risque pour identifier des paris ATP à value bet. Le projet est conçu pour tourner en continu avec un quota API maîtrisé, enregistrer les décisions dans un historique auditable, puis produire des rapports de performance et un dashboard Streamlit.
Projet de recherche et de paper trading uniquement. Il ne déclenche pas de pari réel.
Le pipeline suit quatre étapes principales :
Les principaux fichiers de sortie sont :
data/bets_history.csv : historique des signaux, statuts, PnL, CLV et bankroll.data/odds_snapshot_history.csv : snapshots de cotes utilisés pour les mouvements de marché.data/odds_movements.csv : steam moves détectés.reports/analytics_summary.csv : synthèse ROI/CLV/drawdown/calibration.reports/edges_report.html : rapport HTML des edges.logs/*.log : journaux scheduler, live betting et nightly.tennis_bot/
├── api/ # Client The Odds API avec retry et garde-fou quota
├── analytics/ # Snapshots, steam moves, settlement, reporting, CLV
├── automation/ # Scheduler paper trading, cron, ledger quota mensuel
├── betting/ # Stratégie, odds, bankroll, risk management
├── dashboard/ # Dashboard Streamlit et sortie console
├── data/ # Historique paper trading, snapshots, datasets tennis
├── live/ # Entrées live betting et collecteur de snapshots
├── ml/ # Chargement modèles et construction des features
├── models/ # Artefacts joblib LightGBM, XGBoost, Elo, ranks, stats
├── reports/ # Rapports analytiques et backtests
├── scripts/ # Lanceurs shell pour cron/daemon
├── training/ # Backtest, walk-forward, mise à jour des données
└── utils/ # Settings, paths, logger, HTTP retry
Flux fonctionnel :
The Odds API
│
├── live/odds_snapshot_collector.py
│ ├── data/odds_snapshot_history.csv
│ ├── data/odds_movements.csv
│ └── mise à jour CLV
│
└── live/live_betting_v4.py
├── ml/model_loader.py
├── ml/features.py
├── betting/strategy.py
├── betting/risk_manager.py
└── data/bets_history.csv
analytics/settlement.py + analytics/reporting.py
└── reports/analytics_summary.csv
dashboard/app.py
└── visualisation Streamlit