Vous avez créé votre première stratégie grâce au 📝 Guide des fichiers de stratégies, configuré votre bot avec le ⚙️ Guide des fichiers de configuration, mais comment savoir si votre stratégie est vraiment rentable ? Comment éviter de perdre de l'argent réel avec une stratégie défaillante ? 🤔
La première réponse : les backtests - votre laboratoire virtuel pour tester vos idées de trading sur des données historiques avant de risquer un seul centime !
La seconde réponse : les dry_runs, que nous verrons en détails prochainement.
Ce guide complet vous servira de référence permanente pour maîtriser l'art du backtesting avec Freqtrade. Gardez-le dans vos favoris ! 📌

🎯 Introduction : Pourquoi les Backtests sont essentiels
Imaginez pouvoir voyager dans le temps et tester votre stratégie de trading sur les 5 dernières années en quelques minutes. C'est exactement ce que permettent les backtests ! 🚀
Les backtests vous permettent de :
📊 Évaluer la performance historique de votre stratégie
🛡️ Identifier les faiblesses avant de risquer de l'argent réel
🔧 Optimiser vos paramètres de manière scientifique
💡 Comprendre le comportement de votre bot dans différentes phases de marché
⚡ Gagner des années d'expérience en quelques heures
📚 Qu'est-ce qu'un Backtest ?
Un backtest est une simulation sur des données historiques pour évaluer la performance passée d'une stratégie. Contrairement à un bot en temps réel qui exécute la stratégie de trading de manière automatique en direct sur les marchés financiers, le backtest vous permet de "rejouer" l'histoire.
La différence fondamentale :
🧪 Backtest : Évalue et optimise une stratégie AVANT son exécution réelle sur des dates passées
🤖 Bot Live : Exécute la stratégie dans des conditions de marché réelles -pour idéalement, faire du profit- sur des dates actuelles : en ce moment, en direct.
🚀 Génération de Backtests avec Freqtrade
Dans cette section, nous allons nous concentrer sur la stratégie basic_emas étudiée dans le 📝 Guide des stratégies et utiliser les fichiers de configuration du ⚙️ Guide de configuration.
📋 Prérequis
Pour exécuter un backtest, vous aurez besoin de :
✅ Un fichier de stratégie (.py)
✅ Un fichier de configuration (.json)
✅ Des données historiques téléchargées
Fichiers utilisés pour les démonstrations :
basic_emas.pyfutures_binance.json
⚠️ Rappel important :
Stratégies →
freqtrade/user_data/strategies/Configurations backtest →
freqtrade/backtest_configs/
🔌 Connexion à Freqtrade
Connectez-vous en SSH sur votre machine et préparez l'environnement :
# Se placer dans le dossier freqtrade
cd freqtrade
# Activer l'environnement virtuel
source .env/bin/activate
# ou
source ./.venv/bin/activate
📥 Téléchargement des données historiques
Pour pouvoir faire un backtest, vous devez posséder les données historiques des crypto-monnaies. Ces données représentent la variation de prix au cours du temps (toutes les X heures depuis 2019 par exemple).
Commande de base :
freqtrade download-data --config backtest_configs/<votre_config>.json --timerange <période> --timeframe <liste des timeframes>
Exemples pratiques :
📊 Télécharger les 100 premières paires USDT de Gate.io :
freqtrade download-data --config backtest_configs/USDT_100_gateio.json --timerange 20241231-20250501 --timeframe 1d 1h📈 Télécharger les paires futures de Bybit depuis 2021 :
freqtrade download-data --config backtest_configs/futures_bybit.json --timerange 20210101- --timeframe 1h 4h
💡 Astuce Pro : Utiliser les Screens pour les Longs Téléchargements
Pour télécharger une grande quantité de données sans bloquer votre terminal, vous pouvez utiliser la technique que nous avons vu dans 🚀 Freqtrade : Guide Débutant Complet (Installation, usages et présentation) :
# Créer un nouveau screen screen -S download_data_1 # Naviguer et activer l'environnement cd cd freqtrade source ./.venv/bin/activate # Lancer le téléchargement freqtrade download-data --config backtest_configs/futures_binance.json --timerange 20180101-20240101 --timeframe 1d 4h 1h # Sortir du screen (le laisser tourner) CTRL + A + D # Revenir voir l'avancement plus tard screen -x download_data_1
⚡ Commandes de Base du Backtesting
🎯 Lancer votre premier backtest
Une fois les données téléchargées, lancez votre backtest :
freqtrade backtesting --strategy <nom_de_votre_strategie> --config backtest_configs/<nom_de_votre_config>.json --timerange <période> --timeframe 1h
Exemple concret :
freqtrade backtesting --strategy basic_emas --config backtest_configs/futures_binance.json --timerange 20200101- --timeframe 1d
À la fin de l'exécution, vous obtiendrez un tableau de résultats détaillé :

💡 C'est à partir de ces résultats que vous jugerez si une stratégie est prometteuse !
💡 Si vous vous souvenez de ce que nous avions abordés avec les screens dans 🚀 Freqtrade : Guide Débutant Complet (Installation, usages et présentation), vous pouvez envisager de lancer un backtest relativement long au sein d’un screen :
screen -S backtest_1 cd cd freqtrade source ./.venv/bin/activate freqtrade backtesting --config backtest_configs/futures_binance.json –strategy basic_emas --timerange 20150101-20260101 --timeframe 1d # Sortir du screen (le laisser tourner) CTRL + A + D # Revenir voir l'avancement plus tard screen -x backtest_1
🛠️ Options Avancées de la Commande Backtesting
Découvrez toutes les options sur la 📘 Documentation Officielle
📊 Option
--breakdownPermet de visualiser l'évolution du solde dans le temps :
--breakdownCette option est essentielle pour :
📈 Voir les périodes de hausse et de baisse
📉 Comprendre la régularité des performances
🎯 Identifier les drawdowns temporaires
Mon usage personnel : J'utilise
--breakdown dayquand un bot live sous-performe pour vérifier si c'est normal selon l'historique.
⏱️ Option
--timeframe-detailCRITIQUE pour les stratégies avec take profit ou trailing stop !
--timeframe-detail 5mCette option :
🔍 Utilise une timeframe plus petite pour les vérifications
📊 Garde la timeframe principale pour les indicateurs
⚠️ Évite les problèmes de look-ahead bias, vus dans
Exemple : Stratégie 1h avec
--timeframe-detail 5m:
Indicateurs calculés sur 1h
Vérifications des conditions toutes les 5 minutes
💡 Recommandation :
Idéal :
--timeframe-detail 1m(mais gourmand en ressources)Pratique :
--timeframe-detail 5m(bon compromis)
💰 Options de Configuration Directe
Modifiez temporairement les paramètres sans toucher au fichier config :
--max-open-trades 10 # Nombre max de positions
--stake-amount unlimited # Montant par position
--dry-run-wallet 10000 # Capital initial
📊 Analyse Détaillée avec Plot-Profit et Plot-Dataframe
📈 Générer le Graphique d'Évolution du Solde
freqtrade plot-profit --strategy <strategie> --config backtest_configs/<config>.json --timerange <période> --timeframe <tf>
Exemple :
freqtrade plot-profit --strategy simple_vwap_v1 --config backtest_configs/futures_bybit.json --timerange 20190101-20250601 --timeframe 4h
📁 Résultat :
/freqtrade/user_data/plot/freqtrade-profit-plot.html
🔍 Analyser les Trades Individuels
freqtrade plot-dataframe --strategy <strategie> --config backtest_configs/<config>.json --timerange <période> --timeframe <tf>
📁 Résultat : Un fichier par paire dans
/freqtrade/user_data/plot/Il est possible de zoomer sur des périodes spécifiques pour analyser plus en détails certains trades :
Ces graphiques permettent de :
🎯 Zoomer sur des trades spécifiques
📊 Vérifier la logique d'entrée/sortie
🔍 Identifier les anomalies
⚠️ Notions Importantes : Les limites du backtest
🎭 Pourquoi les résultats en Live peuvent différer
Les backtests ne sont pas une boule de cristal !
Voici les principales raisons des écarts :
📊 1. Données Historiques
Le problème :
🦢 Événements "black swan" (Luna, FTX) ne se reproduiront pas, du moins jamais de la même manière
📈 Les conditions passées ≠ conditions futures
🎯 La sur-représentation de certains événements uniques qui génèrent du profit peuvent capter toute l'attention de vos résultats durant un backtest et biaiser le reste du backtest qui représente une grosse période de temps similaire à la réalité.
Solutions :
✅ S'assurer que les profits ne viennent pas d'un seul événement
✅ Tester sur de longues périodes (5-10 ans)
✅ Maximiser le nombre de trades
💸 2. Slippage
Le problème :
⚡ Écart entre prix théorique et prix d'exécution réel
📊 Non pris en compte dans les backtests basiques
💰 Impact significatif sur les stratégies court terme
Solutions :
"exchange": { "name": "binance", "slippage_percentage": 0.5, "slippage_type": "percentage" }
✅ Utiliser
--timeframe-detail✅ Privilégier les sorties par conditions
✅ Augmenter le temps de détention
💰 3. Frais de Transaction
Le problème :
📈 Frais futures variables selon l'état du marché et les exchanges
💸 Impact majeur sur les stratégies qui gardent des positions peu de temps
💡 Note : Freqtrade gère bien cet aspect, mais restez vigilant en futures ou sur des exchanges exotiques !
🎯 4. Overfitting et Data Snooping
Le problème :
🔧 Sur-optimisation sur données historiques
📉 Performances réelles décevantes
🎭 Illusion de stratégie parfaite
Solutions :
✅ Minimiser le nombre d'indicateurs (2-5 max)
✅ Éviter les paramètres trop précis
✅ Ne pas pousser l'hyper-optimisation
🌊 5. Conditions de marché changeantes
Le problème :
📊 Une stratégie Bull market peut échouer en Bear
🎢 La volatilité évolue constamment
Solutions :
✅ Tester sur toutes les phases de marché
✅ Diversifier les crypto-monnaies testées
✅ Adapter selon les 📊 4 phases de marché
📈 6. Survivorship Bias
Le problème :
🏆 Test uniquement sur les cryptos "survivantes"
📊 Ordre de test biaisé (top actuel ≠ top passé)
Solutions :
✅ Tester avec ordre aléatoire
✅ Inclure les cryptos moins performantes
✅ Utiliser toutes les cryptos du marché
🔮 7. Look-Ahead Bias
Le danger ultime des backtests !
Le problème :
📊 Utilisation d'informations futures
💰 Trades "parfaits" impossibles en réel
🎯 Take profit/trailing stop irréalistes
Solutions :
✅ TOUJOURS utiliser
--timeframe-detail✅ Éviter les trailing stops trop serrés
✅ Vérifier graphiquement les trades suspects
🎯 Synthèse : Obtenir des Résultats Fiables
✅ Checklist du Backtest Parfait
Pendant le développement :
📅 Période longue (3-5 ans minimum)
📊 Maximum de trades (>500 idéalement)
🌍 Maximum d'exchanges testés (voir Tester rigoureusement vos stratégies avant de les déployer en live avec du vrai capital)
🚪 Privilégier les sorties par conditions plutôt que take profit ou trailing stop
🎯 2-5 indicateurs maximum (voir Simplicité avant complexité)
🔄 Diversifier les types d'indicateurs
Avant la mise en production :
🔍 Vérifier que les profits ne viennent pas d'une seule crypto
⏱️ Utiliser
--timeframe-detail 5m📊 Analyser avec
plot-dataframeles meilleurs/pires trades📈 Vérifier la linéarité avec
plot-profit🎯 Comparer avec les performances du marché
📊 Analyser un Backtest comme un Pro
Trouver une stratégie sur internet avec +1000% de profit est excitant... mais gardez la tête froide ! 🧊
Les métriques clés à analyser :
📈 Sharpe Ratio : Mesure du rendement ajusté au risque
📉 Max Drawdown : Perte maximale depuis un pic
🎯 Win Rate : Pourcentage de trades gagnants
⏱️ Durée moyenne : Temps de détention des positions
Pour approfondir, consultez cet excellent article de Bot Academy (en anglais) sur l'analyse détaillée des backtests.
🛠️ Les Alternatives à Freqtrade (Optionnel)
🚀 VectorBT
Avantages :
⚡ Vitesse d'exécution supérieure
📊 Analyses plus approfondies
🎯 Optimisation avancée des paramètres
Mon usage : Je reste principalement sur Freqtrade mais utilise VectorBT pour des analyses finales poussées sur des stratégies spécifiques.
💡 Important : L'avantage majeur de Freqtrade reste d'avoir UN SEUL fichier de stratégie pour les backtests, optimisations et déploiements live !
🎓 Conclusion : Votre Feuille de route vers le succès
Les backtests sont votre laboratoire virtuel pour créer des stratégies rentables. Ils ne prédisent pas l'avenir, mais ils vous préparent à l'affronter ! 🛡️
Les points clés à retenir :
🧪 Un backtest n'est qu'une simulation - restez prudent
📊 Les résultats passés ne garantissent pas les performances futures
🎯 Utilisez TOUJOURS
--timeframe-detailavec des take profits et/ou des trailing stop💡 90% du temps de développement, 10% du temps de trading
🚀 Le développement continue même après la mise en live, il faudra certainement affiner vos stratégies au fur et à mesure du temps
Votre mission maintenant :
📥 Téléchargez les données historiques nécessaires
🧪 Lancez vos premiers backtests sur
basic_emas📊 Analysez les résultats avec
plot-profit🔧 Modifiez et améliorez progressivement
🎯 Passez en dry-run quand les résultats sont prometteurs
Prochaine étape : Une fois vos backtests maîtrisés, découvrez l'hyperoptimisation pour faire passer vos stratégies au niveau supérieur ! Voir Comment optimiser une stratégie ?
💡 Besoin d'aide ? Ce guide reste votre référence permanente. Gardez-le dans vos favoris et consultez-le à chaque nouveau backtest !
"Le meilleur moment pour planter un arbre était il y a 20 ans. Le deuxième meilleur moment est maintenant." - Proverbe chinois
Commencez vos backtests aujourd'hui, et dans quelques mois, vous remercierez votre "vous" du passé ! 🌟
Si ce guide technique vous a aidé à maîtriser l'art du backtesting, n'hésitez pas à me soutenir avec un café ☕ - cela m'aide à créer encore plus de contenu détaillé pour faire progresser la communauté Freqtrade France ! 🚀




