Drawdown analyse: Hoe diep gaat het dal in je backtest?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Backtesting & Validatie Strategieën · 2026-02-15 · 7 min leestijd

Stel je voor: je hebt een prachtige trading bot gebouwd in Python.

Je backtest laat een mooi oplopende equity curve zien. Je rendement ziet er fantastisch uit.

Maar kijk je wel diep genoeg? Het echte gevaar schuilt niet in je totale winst, maar in de diepte van het dal. Die pieken en dalen, dat is je drawdown. Hoe diep kun je vallen voordat je emoties het overnemen of je broker je margin call geeft? We gaan samen uitzoeken hoe je die dalen analyseert, zodat je niet voor verrassingen komt te staan.

Wat je nodig hebt voordat je begint

Voordat we de cijfers induiken, zorgen we dat de basis op orde is. Je hebt een werkende Python-omgeving nodig, bijvoorbeeld via Anaconda.

Gebruik libraries zoals Pandas voor data en Matplotlib voor grafieken. Een broker account met historische data is essentieel.

Denk aan Interactive Brokers of een broker als Plus500 voor CFD’s, maar zorg dat je via hun API data kunt pullen. Voor backtesting zelf zijn libraries als Backtrader of Zipline onmisbaar. Je hebt een stabiele internetverbinding nodig en voldoende schijfruimte voor data-opslag.

Een snelle PC helpt, want backtesten kan rekenintensief zijn. Zorg dat je API-sleutels klaarliggen bij je broker. Gebruik een aparte account voor testen met nepgeld. Voorkom dat je per ongeluk echt geld verliest tijdens het testen.

Houd een Excel-sheet bij voor aantekeningen, of gebruik Notion voor je logboek.

Reken ongeveer 2 tot 4 uur voor een complete analyse van een enkele strategie. Zorg dat je focus hebt, want getallen kunnen verwarrend zijn.

Pak een kop koffie of thee, zet je telefoon op stil en ga er rustig voor zitten. Een goede voorbereiding voorkomt frustratie later.

Stap 1: Verzamel en schoon je data op

Elke drawdown analyse begint met betrouwbare data. Haal historische data op via je broker API.

Bij Interactive Brokers gebruik je de TWS API of de IB-insync library. Vraag minimaal 5 jaar aan dagelijkse data op, of meer als je intraday handelt. Sla dit op in een CSV-bestand of een database.

Controleer op ontbrekende data, zoals feestdagen of sluitingstijden. Gebruik Python om gaten te vullen: interpolate of forward-fill werkt het beste.

Reinig de data grondig. Verwijder outliers die je backtest vertekenen.

Check voor splitsingen en dividenduitkeringen, vooral bij aandelen. Gebruik een script om te controleren of de tijdzones kloppen. Een fout hier kan je drawdown met 10-20% vertekenen. Besteed hier minimaal 30 minuten aan.

Veelgemaakte fout: data zonder tijdzone gebruiken, waardoor trades verkeerd worden getimed. Test je script met een kleine dataset eerst.

Sla de schone data op in een formaat dat je backtesting engine leest. Bij Backtrader is dat een Pandas DataFrame. Zorg dat kolommen ‘open’, ‘high’, ‘low’, ‘close’ en ‘volume’ bevatten.

Voeg eventueel ‘adj close’ toe voor aandelen. Tijdens het schoonmaken, noteer je eventuele afwijkingen in je logboek.

Dit helpt later bij het interpreteren van drawdowns. Plan hier 45 minuten voor in.

Stap 2: Zet je backtest op en draai de simulatie

Nu je data schoon is, bouw je je strategie in Python. Gebruik een library zoals Backtrader voor eenvoud.

Schrijf je entry- en exit-regels op basis van indicatoren, bijvoorbeeld een 50-day moving average crossover. Test op een breed scala aan assets, zoals EUR/USD of aandelen zoals Apple. Stel je startkapitaal in op €10.000, een realistisch bedrag voor beginners.

Draai de backtest en exporteer de equity curve naar een CSV. Meet de drawdown per trade en per dag.

Gebruik Python om de diepste dalen te berekenen: (peak - trough) / peak * 100. Een voorbeeld: als je equity piekt op €12.000 en daalt naar €8.000, is je drawdown 33,3%. Zet deze getallen in een tabel.

Besteed 1 uur aan het draaien van meerdere runs met verschillende parameters. Veelgemaakte fout: te optimistische aannames over transactiekosten.

Reken met €5 per trade en 0,1% spread, realistisch voor brokers zoals DEGIRO of Plus500.

Vergeet niet slippage toe te voegen, vooral bij snelle markten. Test op ten minste 1.000 trades voor statistische significantie. Als je te weinig trades hebt, pas je je timeframe aan. Controleer of je equity curve soepel loopt of hobbelt.

Stap 3: Analyseer de drawdown met specifieke metrics

Tijd om de diepte van het dal te meten. Bereken de maximale drawdown (MDD): de grootste daling vanaf een piek.

Gebruik Python-code: mdd = (equity.rolling().max() - equity) / equity.rolling().max(). Kijk naar zowel procentuele als absolute drawdowns.

Bij een €10.000 account is een 20% drawdown €2.000 verlies. Bekijk ook de gemiddelde drawdown duur: hoe lang blijf je onder water? Visualiseer dit met Matplotlib: plot de equity curve en markeer de dalen.

Gebruik een histogram voor de frequentie van drawdowns. Als 5% van je trades een drawdown van meer dan 10% heeft, is dat een waarschuwing. Test op verschillende marktcondities: bullish, bearish en zijwaarts. Besteed hier 45 minuten aan.

Veelgemaakte fout: alleen naar gemiddelden kijken en pieken negeren. Vergelijk je drawdown met benchmarks, zoals de S&P 500.

Als je bot een MDD van 25% heeft en de index 20%, moet je strategie verbeteren. Gebruik risicomanagement tools zoals stop-losses om dalen te beperken.

Stel een maximum drawdown limiet in, bijvoorbeeld 15%. Als je die overschrijdt, stop de strategie. Noteer alles in je logboek voor toekomstige referentie.

Stap 4: Pas risicomanagement toe om dalen te beperken

Drawdowns zijn onvermijdelijk, maar je kunt ze mitigeren. Implementeer position sizing: riskeer nooit meer dan 1-2% van je kapitaal per trade. Bij €10.000 betekent dat een risico van €100-200 per positie.

Gebruik een Kelly Criterion calculator in Python voor optimaal sizing. Voeg stop-losses toe: bijvoorbeeld 2% onder de entry.

Test dit in je backtest en meet de impact op drawdown. Durf je deze strategie in het echt te draaien? Gebruik diversificatie: verhandel meerdere assets om het risico te spreiden.

Bijvoorbeeld EUR/USD, goud en een tech-aandeel. API’s van brokers zoals Interactive Brokers ondersteunen multi-asset backtesting. Monitor je drawdown live met een dashboard in Python, bijvoorbeeld met Streamlit.

Stel alerts in als je drawdown 10% overschrijdt. Besteed 1 uur aan het fine-tunen van je risico-instellingen.

Veelgemaakte fout: te strakke stops die te veel trades uitvoeren, wat kosten opdrijft. Test met variabele stops op basis van volatility, zoals ATR (Average True Range). Een ATR van 0,5% op EUR/USD betekent een stop van 1-1,5 ATR. Zorg dat je broker API snelle orderuitvoering biedt om slippage te minimaliseren. Evalueer na elke run of je drawdown verbetert.

Stap 5: Valideer je resultaten en pas aan

Nu je drawdown bekend is, valideer met out-of-sample data. Splits je data: 70% voor training, 30% voor test.

Draai je strategie op de testset en vergelijk de drawdown. Als deze significant verschilt, is er sprake van overfitting in trading waardoor je backtest resultaten te mooi lijken.

Gebruik walk-forward analyse: optimaliseer parameters in windows van 1 jaar en test op het volgende jaar. Dit duurt langer, maar geeft realistischere resultaten. Test op verschillende brokers voor uitvoeringsverschillen.

Bij Plus500 kunnen spreads hoger zijn, wat je drawdown verhoogt. Gebruik een demo-account om live omstandigheden te simuleren.

Meet de Sharpe-ratio naast drawdown: aim voor >1,0. Als je drawdown stabiel is onder 15% en Sharpe hoog, is je strategie robuust. Besteed 1,5 uur aan validatie. Veelgemaakte fout: alleen backtesten op recente data, wat te optimistisch is.

Test op crises zoals 2008 of 2020 voor extreme drawdowns. Leer hoe je een Black Swan event simuleert in je backtest. Pas je strategie aan: verminder leverage of voeg filters toe voor marktcondities.

Log elke aanpassing en herhaal de analyse. Dit proces herhaal je 2-3 keer tot je tevreden bent.

Verificatie-checklist

  • Data schoon en volledig: ontbrekende waarden gevuld, tijdzones correct.
  • Backtest gedraaid: minimaal 1.000 trades, transactiekosten meegenomen.
  • Drawdown berekend: MDD, gemiddelde duur en frequentie geanalyseerd.
  • Risicomanagement toegepast: position sizing, stops en diversificatie ingesteld.
  • Gevalideerd: out-of-sample test en walk-forward analyse uitgevoerd.
  • Resultaten gelogd: equity curve geplot, metrics opgeslagen in Excel of Notion.

Als je deze checklist afvinkt, weet je zeker dat je drawdown analyse waterdicht is. Je bent nu klaar om je bot live te testen, start klein en monitor nauwkeurig. Succes!

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 Backtesting & Validatie Strategieën
Ga naar overzicht →