Backtrader handleiding: Je eerste backtest script schrijven

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Python Libraries voor Algoritmische Trading · 2026-02-15 · 7 min leestijd

Stel je voor: je zit achter je laptop, een bak koffie binnen handbereik, en je wilt weten of je handelsstrategie écht werkt voordat je er echt geld aan uitgeeft.

Dat is precies wat backtrader voor je doet. Deze Python-bibliotheek is een krachtige machine die je helpt om je ideeën te testen op historische data, zonder dat je direct risico loopt. We gaan samen je allereerste backtest script bouwen, stap voor stap, en we doen het op een manier die je meteen begrijpt.

Je hoeft geen programmeergenie te zijn. Je hebt alleen maar zin om te knutselen en een beetje geduld.

We beginnen bij het begin, zorgen dat alles op je computer staat, en bouwen dan een simpele strategie die je meteen kunt draaien. Klaar?

Pak je muis en laten we beginnen.

Wat je nodig hebt voordat je start

Voordat we code typen, moeten we een paar dingen op orde hebben. Denk aan je gereedschapskist: je hebt de juiste tools nodig om te klussen.

We werken met Python, dus zorg dat je die geïnstalleerd hebt op je computer. Ga naar python.org en download de laatste stabiele versie, bijvoorbeeld 3.11 of 3.12. Tijdens de installatie vink je aan dat Python toegevoegd mag worden aan je systeem-pad, dat scheelt een hoop gedoe later.

Daarnaast is het handig om een code-editor te hebben. Visual Studio Code is gratis en heel populair.

Download het van de officiële site en installeer de Python-extensie, dan krijg je meteen kleurtjes in je code en slimme suggesties. Reken op een uur tijd om alles te installeren en te testen. Je hebt ook een broker-account nodig voor later, als je echt gaat traden. Kies een broker met een goede API, zoals Interactive Brokers of een broker die compatibel is met Backtrader, zoals Alpaca.

Maak een demo-account aan, dat kost niets en je kunt meteen oefenen met nepgeld. Tot slot: zorg dat je een internetverbinding hebt om data te downloaden, en onthoud dat we hier geen echte transacties doen, alleen tests.

Veelgemaakte fouten: vergeten Python toe te voegen aan je pad, of een verkeerde versie installeren. Check dit met python --version in je terminal. Als je een foutmelding krijgt, start je computer opnieuw op en probeer het opnieuw.

Stap 1: Installeer Backtrader en zet je project op

Open je terminal of command prompt. Typ pip install backtrader en druk op Enter. Wacht tot de installatie klaar is, dat duurt meestal 1-2 minuten.

Backtrader installeert zichzelf met al zijn afhankelijkheden, zoals pandas voor data-verwerking. Als je een fout krijgt, probeer dan pip install --upgrade pip eerst.

Maak een nieuwe map voor je project, bijvoorbeeld C:\BacktestProject of ~/backtest_project. Open die map in VS Code.

Maak een nieuw bestand aan, noem het eerste_backtest.py. Dit is je speelveld. We gaan hier straks code in typen.

Test even of alles werkt. Typ in je terminal python -c "import backtrader; print('Backtrader is geïnstalleerd!')".

Als je die boodschap ziet, ben je ready. Zo niet, controleer of je de juiste Python-versie gebruikt. Tijd voor deze stap: 5-10 minuten. Veelgemaakte fout: vergeten de terminal als administrator te openen op Windows, waardoor installatie mislukt.

Stap 2: Verzamel historische data voor je backtest

Backtrader heeft data nodig om te testen. Je kunt data downloaden van brokers of gratis bronnen.

Voor deze handleiding gebruiken we een simpele CSV-file met prijzen van een aandeel, bijvoorbeeld Apple (AAPL). Ga naar een site zoals Yahoo Finance en download een CSV-bestand voor de afgelopen 2 jaar. Kies een dagelijkse frequentie, dat is makkelijk om mee te beginnen in onze Python voor financiële analyse gids.

Sla het bestand op in je projectmap als aapl_data.csv. Het bestand moet kolommen hebben zoals Datum, Open, High, Low, Close, Volume.

Gebruik een Excel- of Google Sheets-bestand als je zelf data wilt genereren, maar hou het simpel: 500 tot 1000 regels is genoeg voor een eerste test. Zorg dat de data schoon is, zonder missende waarden. Open je CSV in een teksteditor en check of de data klopt.

Verwijder eventuele header-rijen die niet nodig zijn. Backtrader leest de data met de backtrader.feeds.YahooFinanceData of een CSV-feed, afhankelijk van je bestand.

Tijd voor deze stap: 10-15 minuten. Veelgemaakte fout: verkeerd datumformaat, zoals DD-MM-YYYY in plaats van YYYY-MM-DD, wat de parser ontregelt.

Als je geen CSV wilt downloaden, kun je ook live data ophalen via een broker-API, maar dat is voor later. Begin met de CSV, dat is het veiligst en snelst.

Stap 3: Schrijf je eerste backtest script

Open eerste_backtest.py in VS Code. We gaan een simpele strategie bouwen: leer via de architectuur van Backtrader een crossover-strategie met twee moving averages opzetten.

De korte MA (bijvoorbeeld 20 dagen) kruist de lange MA (50 dagen). Als de korte omhoog gaat, koop je; als hij omlaag gaat, verkoop je. Dit is een basisidee, je kunt het later aanpassen.

Typ eerst de imports bovenaan je bestand: import backtrader as bt
import datetime

Maak een klasse voor je strategie: class SimpleStrategy(bt.Strategy):
def __init__(self):
self.sma_short = bt.indicators.SimpleMovingAverage(self.data.close, period=20)
self.sma_long = bt.indicators.SimpleMovingAverage(self.data.close, period=50) def next(self):
if not self.position: # Als we niets hebben
if self.sma_short[0] > self.sma_long[0]: # Korte MA kruist omhoog
self.buy() # Koop
else: # Als we al een positie hebben
if self.sma_short[0] < self.sma_long[0]: # Korte MA kruist omlaag
self.sell() # Verkoop Voeg de data toe aan je cerebro-engine (de kern van Backtrader):

cerebro = bt.Cerebro()
data = bt.feeds.GenericCSVData(dataname='aapl_data.csv', dtformat='%Y-%m-%d', openinterest=-1)
cerebro.adddata(data)
cerebro.addstrategy(SimpleStrategy) Stel je startkapitaal in, bijvoorbeeld €10.000:

cerebro.broker.setcash(10000.0)
cerebro.broker.setcommission(commission=0.001) # 0.1% per transactie Run de backtest: print(f'Startend saldo: {cerebro.broker.getvalue():.2f} EUR')
cerebro.run()
print(f'Eindsaldo: {cerebro.broker.getvalue():.2f} EUR')
cerebro.plot() # Plot de resultaten

Save het bestand en draai het in je terminal: python eerste_backtest.py.

Je ziet je start- en eindsaldo, en een grafiek opent zich. Tijd voor deze stap: 20-30 minuten. Veelgemaakte fouten: vergeten de CSV-pad correct te zetten, of een syntaxfout in de strategie-klassen.

Controleer elke regel zorgvuldig. Als je een fout krijgt over de data, check dan of de CSV-kolommen kloppen. Gebruik print(data.close.get(0)) om te debuggen.

Stap 4: Pas je strategie aan en voeg risicomanagement toe

Nu je eerste test draait, is het tijd om te tunen. Verander de MA-perioden: probeer 10 en 30 voor een snellere strategie, of 50 en 200 voor een trendvolger. Voeg een stop-loss toe om risico te beperken:

def next(self):
if not self.position:
if self.sma_short[0] > self.sma_long[0]:
self.buy(size=100) # Koop 100 aandelen
self.stop_loss = self.data.close[0] * 0.95 # 5% stop-loss
else:
if self.data.close[0] < self.stop_loss or self.sma_short[0] < self.sma_long[0]:
self.sell(size=100)

Test met verschillende kapitalen: begin met €5.000 en ga naar €20.000 om te zien hoe het effect verandert. Gebruik een broker-API zoals Interactive Brokers voor echte data later, maar voor nu houden we het bij CSV.

Voeg een eenvoudig risicobeheer toe: beperk elke transactie tot 2% van je totale kapitaal. Tijd voor deze stap: 15-20 minuten. Veelgemaakte fouten: te veel trades tegelijk zonder limiet, wat je account leegtrekt in de test. Test altijd met kleine bedragen eerst.

Stap 5: Analyseer de resultaten en verbeter

Als je script draait, zie je getallen als winst, verlies en aantal trades. Backtrader toont ook een equity curve in de plot.

Kijk of je strategie winstgevend is op de historische data. Een goede strategie heeft een positief rendement na kosten, bijvoorbeeld 5-10% per jaar op je €10.000.

Gebruik de output om te leren: hoeveel trades wonnen? Was de drawdown klein? Pas je strategie aan op basis hiervan, bijvoorbeeld door een tweede filter toe te voegen zoals volume.

Test op verschillende tijdsperiodes, zoals een bear market versus bull market. Versnel je simulaties door backtests parallel uit te voeren en exporteer de resultaten naar een CSV voor verdere analyse: voeg cerebro.plot(style='candlestick') toe voor een betere visuele weergave.

Tijd voor deze stap: 10-15 minuten. Veelgemaakte fout: blind vertrouwen op één test; doe altijd meerdere runs met verschillende data.

Verificatie-checklist

  • Python geïnstalleerd en werkend? Check met python --version.
  • Backtrader geïnstalleerd? Importeer het zonder fouten.
  • CSV-data correct geladen? Plot de data om te zien of de grafiek klopt.
  • Strategie draait zonder errors? Zie je start- en eindsaldo?
  • Stop-loss en risicomanagement toegevoegd? Test met een kleine wijziging.
  • Resultaten geanalyseerd? Winstgevendheid en drawdown bekeken?
  • Grafiek geplot? Ziet de equity curve er logisch uit?

Als je alle items afvinkt, heb je een werkende backtest. Ga verder met live data van een broker-API voor de volgende stap.

Je hebt nu de basis om elke strategie te testen die je bedenkt.

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Over Alex de Vries

Alex is een ervaren quantitatief analist en Python-ontwikkelaar die complexe trading concepten vertaalt naar begrijpelijke, praktische handleidingen voor zowel beginners als gevorderden.

Volgende stap
Bekijk alle artikelen over Python Libraries voor Algoritmische Trading
Ga naar overzicht →