🧪 Backtests Freqtrade : Le Guide Comple ...

🧪 Backtests Freqtrade : Le Guide Complet

Jul 25, 2025

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 ! 📌

image

🎯 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.py

  • futures_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é :

image

💡 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 --breakdown

Permet de visualiser l'évolution du solde dans le temps :

--breakdown 

Cette option est essentielle pour :

  • 📈 Voir les périodes de hausse et de baisse

  • 📉 Comprendre la régularité des performances

  • 🎯 Identifier les drawdowns temporaires

image

Mon usage personnel : J'utilise --breakdown day quand un bot live sous-performe pour vérifier si c'est normal selon l'historique.

⏱️ Option --timeframe-detail

CRITIQUE pour les stratégies avec take profit ou trailing stop !

--timeframe-detail 5m

Cette 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

image

🔍 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/

image

Il est possible de zoomer sur des périodes spécifiques pour analyser plus en détails certains trades :

image

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 :

Avant la mise en production :

  • 🔍 Vérifier que les profits ne viennent pas d'une seule crypto

  • ⏱️ Utiliser --timeframe-detail 5m

  • 📊 Analyser avec plot-dataframe les 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

📘 Site officiel de 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-detail avec 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 :

  1. 📥 Téléchargez les données historiques nécessaires

  2. 🧪 Lancez vos premiers backtests sur basic_emas

  3. 📊 Analysez les résultats avec plot-profit

  4. 🔧 Modifiez et améliorez progressivement

  5. 🎯 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 ! 🚀

Vous aimez cette publication ?

Achetez un café à Freqtrade France

Plus de Freqtrade France