Backtesting Monte Carlo
Comment estimer si un backtest crypto est robuste ou sur-ajusté — bootstrap, percentiles bas, calibration et drift walk-forward, publiés en open lab.
Framework Monte Carlo Strategy Arena (5 étapes)
Chaque étape produit une artefact public vérifiable — pas seulement un Sharpe sur une courbe.
| Étape | Composant | Entrée | Sortie / gate | Preuve |
|---|---|---|---|---|
| 1. Bootstrap | Ré-échantillonnage trades / returns | Série de trades du backtest walk-forward | 1000 trajectoires PnL simulées | monte-carlo.json |
| 2. Percentiles | p5 / p50 / p95 PnL & Sharpe | Distribution bootstrap | p5 PnL > 0 requis | /facts/monte-carlo |
| 3. Robustness | Score 0–1 (stabilité sous-échantillons) | Variance inter-sims | Robustesse > 0.6 | /live-results |
| 4. Calibration | Brier / reliabilité | Probas modèle vs outcomes | Publié même si mauvais | /facts/ml-edge |
| 5. Drift | Walk-forward vs paper live | Equity paper 5m | Alerte si écart > seuil | /dashboard, /strategy-hospital |
Le bootstrap assume des trades échangeables conditionnellement — limite documentée sur /methodology (autocorrélation, régimes).
5 pièges Monte Carlo & correctifs StrategyArena
- Trop peu de trades — 100 sims sur 8 trades = bruit pur. Fix : min 30 trades walk-forward avant MC ; sinon WATCH au Hospital.
- Ignorer le percentile bas (p5) — médiane brillante, queue gauche catastrophique. Fix : p5 PnL publié ; gate p5 ≤ 0 → RECALIBRATE / BUG_SUSPECT.
- Bootstrap i.i.d. sur returns autocorrélés — surestime la confiance. Fix : block bootstrap expérimental + walk-forward obligatoire dans le pipeline.
- MC sans frais / slippage — percentiles gonflés. Fix : même modèle de friction que le backtest (methodology).
- Une seule passe MC « pour cocher la case » — pas de drift monitoring. Fix : re-MC mensuel + comparaison paper live ; snapshots dans monte-carlo.json.
Stats vivantes Monte Carlo (maj: 2026-05-24)
Comptages synchronisés avec strategy-arena.json quand disponible ; MC détail par stratégie dans monte-carlo.json.
Workflow chercheur
backtest → bootstrap (1000) → percentiles → robustness → calibration → drift check → hospital
Reproductibilité : exporter les trades depuis /backtest, comparer aux champs du JSON public, puis lire le statut Hospital. Pour l'allocation agrégée rules-based, voir /atlas-edge-allocator (toujours paper).
FAQ Monte Carlo
- Pourquoi 1000 simulations ?
- Compromis latence / stabilité des percentiles ; documenté sur /methodology. Augmenter N réduit le bruit Monte Carlo, pas le risque de marché.
- MC remplace-t-il le paper trading ?
- Non. MC teste la distribution historique ; le paper teste l'exécution live sur OHLCV 5m (drift, bugs, latence data).
- Où voir les échecs MC ?
- Hospital (WATCH / RECALIBRATE), Research, et stratégies DEPRECATED — voir trading-strategy-validation.
Glossaire MC rapide
| Terme | Rôle | Lien |
|---|---|---|
| Bootstrap | Tirages avec remise sur trades | /facts/monte-carlo |
| p5 / p95 | Queues de la distribution PnL simulée | monte-carlo.json |
| Score robustesse | Stabilité sous perturbations | /live-results |
| Walk-forward | Découpe temporelle anti look-ahead | /backtest |
| Drift | Écart backtest vs paper | /dashboard |
Limites explicites
- Crypto / perps : queues épaisses — bootstrap classique peut sous-estimer les extrêmes.
- Régimes changeants : un pass MC historique ne garantit pas le régime futur.
- Contenu éducatif ; pas de promesse de profit.