Overview
Backtrader est un framework Python de backtesting pour les stratégies de trading. Supporte plusieurs sources de données, le trading en direct, les modèles de commission/slippage, les analyseurs personnalisés et la visualisation. Bien adapté pour le développement de stratégies sur actions, futures et crypto.
Installation
uv pip install backtrader
SMA Crossover
import backtrader as bt
class SmaCross(bt.Strategy):
params = dict(short=10, long=30)
def __init__(self):
sma_short = bt.ind.SMA(self.data.close, period=self.params.short)
sma_long = bt.ind.SMA(self.data.close, period=self.params.long)
self.crossover = bt.ind.CrossOver(sma_short, sma_long)
def next(self):
if self.crossover > 0:
self.buy()
elif self.crossover < 0:
self.sell()
cerebro = bt.Cerebro()
data = bt.feeds.YahooFinanceData(dataname="AAPL", fromdate="2022-01-01", todate="2023-01-01")
cerebro.adddata(data)
cerebro.addstrategy(SmaCross)
cerebro.broker.setcash(10000.0)
print(f"Final value: ${cerebro.run()[0]:.2f}")
cerebro.plot()