Backtrader est l’un des frameworks open source les plus populaires pour le backtesting et le trading en direct en Python. Sa syntaxe claire, sa documentation exhaustive et sa communauté active en font un outil idéal tant pour les débutants que pour les traders expérimentés. Dans ce guide, nous allons vous montrer comment configurer votre première stratégie de trading algorithmique avec Backtrader.

Vous débutez avec Backtrader ? Consultez notre présentation détaillée de Backtrader pour bien commencer.


Étape 1 : Installer Backtrader

Vous pouvez installer Backtrader via pip :

pip install backtrader

# Optionnel : vous pouvez aussi installer matplotlib pour les graphiques et pandas pour la gestion des données :

pip install matplotlib pandas

Étape 2 : Préparer les données historiques

Backtrader supporte les fichiers CSV, les DataFrames Pandas, ainsi que les données en direct via les brokers. Pour l’instant, chargeons un fichier CSV :

import backtrader as bt  
import datetime

data = bt.feeds.YahooFinanceCSVData(
    dataname='your-data.csv',
    fromdate=datetime.datetime(2020, 1, 1),
    todate=datetime.datetime(2023, 12, 31),
    reverse=False
)

Assurez-vous que votre fichier CSV contient les colonnes suivantes : Date, Open, High, Low, Close, Volume, Adj Close.


Étape 3 : Créer une stratégie

Créez une classe stratégie en héritant de bt.Strategy. Implémentons un simple croisement de moyenne mobile :

class SmaCross(bt.Strategy):
    params = dict(period=20)

    def __init__(self):
        sma = bt.ind.SMA(period=self.p.period)
        self.crossover = bt.ind.CrossOver(self.data.close, sma)

    def next(self):
        if not self.position:
            if self.crossover > 0:
                self.buy()
        elif self.crossover < 0:
            self.close()

Étape 4 : Configurer le moteur de backtest

Créez maintenant un moteur Cerebro — le cerveau central de Backtrader.

cerebro = bt.Cerebro()  
cerebro.addstrategy(SmaCross)  
cerebro.adddata(data)  
cerebro.broker.setcash(10000)  
cerebro.broker.setcommission(commission=0.001)

Étape 5 : Exécuter la stratégie

print('Valeur initiale du portefeuille : %.2f' % cerebro.broker.getvalue())  
cerebro.run()  
print('Valeur finale du portefeuille : %.2f' % cerebro.broker.getvalue())

cerebro.plot()

Vous verrez les points d’entrée et de sortie de votre stratégie affichés visuellement, ainsi que la performance du portefeuille.


Étape 6 : Ajouter plus de fonctionnalités

À mesure que vous gagnez en expérience, envisagez d’ajouter :

  • Logique de stop-loss et take-profit
  • Plusieurs indicateurs
  • Analyseurs personnalisés (Sharpe, drawdown, etc.)
  • Optimisation des paramètres

Backtrader supporte toutes ces fonctionnalités nativement. Vous pouvez aussi le connecter à Interactive Brokers ou OANDA pour le trading en direct.


Conseils finaux

  • Gardez votre stratégie modulaire : séparez la logique, les données et les paramètres
  • Utilisez des hypothèses réalistes concernant le slippage, les commissions et la latence
  • Validez avec plusieurs périodes et conditions de marché

En savoir plus

Pour en apprendre davantage sur Backtrader et lire notre revue complète, consultez ce guide détaillé.

Vous cherchez le bon framework open source pour le trading ? Commencez par notre comparatif et nos revues complètes.

Backtestez avec audace. Tradez avec sagesse.