Wat is 'Model Risk' en hoe beperk je de kans op programmeerfouten?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Risicomanagement & Portfolio Protectie · 2026-02-15 · 8 min leestijd

Je hebt een gave trading bot geschreven. Hij draait op Python, praat met de API van je broker en executeert trades automatisch.

Maar dan gebeurt het: de bot crasht, of erger, hij executeert verkeerde orders. Je kijkt naar je code en ziet een programmeerfout. Dit is model risk in optima forma: het risico dat je model of code niet doet wat het moet doen, met directe financiële schade.

In de wereld van algoritmisch traden is dit een van de grootste gevaren, want een kleine bug kan in een paar seconden duizenden euro's kosten.

Stel je voor: je bot scant de API van Interactive Brokers of Binance. Hij ziet een prijsdip en koopt in. Maar door een simpele fout in de code koopt hij 1000 keer meer dan de bedoeling was.

Je portefeuille is in een oogwenk leeg. Dit is geen theorie; het gebeurt echt.

Model risk zit niet alleen in de strategie, maar ook in de uitvoering.

Een verkeerde voorwaarde in je code, een verkeerde datafeed, een verkeerde API-call. Het zijn de programmeerfouten die je terugbrengen naar nul.

Stap 1: Ken je materiaal – wat heb je nodig?

Voordat je begint, zorg je dat je de juiste tools hebt. Je hebt een computer met Python geïnstalleerd, een broker-API-sleutel (bijvoorbeeld van Interactive Brokers, Alpaca of Binance), en een backtesting-omgeving zoals Backtrader of Zipline.

Een IDE zoals VS Code of PyCharm helpt je fouten sneller te vinden.

Zorg ook voor een betrouwbare datafeed, zoals die van je broker of een dienst als Polygon.io. Een goede internetverbinding is essentieel, want een verbroken verbinding kan je bot op het verkeerde moment stilzetten. Verder heb je een testaccount nodig.

Gebruik nooit direct je live-account. De meeste brokers bieden een paper trading-account aan, vaak gratis.

Zo test je zonder echt geld. Een voorbeeld: Interactive Brokers biedt een demo-account aan dat je 30 dagen gratis kunt gebruiken. Je hebt ook een versiebeheersysteem zoals Git nodig, zodat je wijzigingen kunt terugdraaien. Zorg dat je weet hoe je een repository aanmaakt en commits doet.

Dit is je veiligheidsnet. Verzamel ook documentatie.

Lees de API-documentatie van je broker. Bijvoorbeeld: de Binance API heeft een rate limit van 1200 requests per minuut. Overschrijd je dit, dan word je geblokkeerd. Noteer deze limieten.

Je hebt ook een risicomanagementplan nodig: definieer je maximale verlies per trade en per dag. Stel een stop-loss in, bijvoorbeeld 2% van je portefeuille per trade. Dit is je basis, voordat je ook maar één regel code schrijft.

  • Python 3.8 of nieuwer
  • Broker-API-sleutel (testaccount)
  • Backtesting-tool (Backtrader of Zipline)
  • IDE (VS Code of PyCharm)
  • Git voor versiebeheer

Stap 2: Schrijf je code – van idee naar eerste versie

Begin klein. Schrijf eerst een eenvoudige bot die één trade uitvoert op basis van een simpele regel, bijvoorbeeld: als de prijs van Bitcoin onder de €50.000 zakt, koop dan 0,01 BTC.

Gebruik een library zoals ccxt voor de API-verbinding. Test deze code direct in je testomgeving. Gebruik een paper trading-account om te zien of de order correct wordt uitgevoerd.

Dit duurt ongeveer 30 minuten tot een uur. Voeg dan meer functionaliteit toe: een tweede regel voor verkoop, bijvoorbeeld als de prijs stijgt met 1%.

Gebruik een simpele if-else structuur. Schrijf elke stap op in comments, zodat je later weet wat je deed.

Veelgemaakte fouten hier: vergeten om de API-sleutel te beveiligen (gebruik environment variables, niet hardcode in de code) en niet controleren of de verbinding live is. Test altijd met een kleine order, bijvoorbeeld €10,- om te zien of de API correct reageert. Gebruik een linter zoals flake8 of pylint om syntaxfouten te vangen. Deze tools geven aan waar je code afwijkt van de standaard.

Besteed hier 15 minuten aan. Een veelgemaakte fout is het vergeten van error handling: als de API down is, crasht je bot.

Voeg een try-except blok toe rond je API-calls. Bijvoorbeeld: als de verbinding faalt, log dan de fout en stop de bot. Dit voorkomt dat je bot doorgaat met verkeerde data.

“Een bot zonder error handling is als een auto zonder remmen. Je rijdt misschien even goed, maar uiteindelijk crash je.”

Stap 3: Backtesten – test je model zonder echt geld

Backtesten is je beste vriend. Gebruik een tool zoals Backtrader om je strategie te simuleren met historische data.

Download data van je broker of een dienst als Yahoo Finance. Stel een periode in, bijvoorbeeld de laatste 6 maanden.

Test je bot op deze data en kijk naar de resultaten: winst, verlies, drawdown. Dit duurt ongeveer 1-2 uur, afhankelijk van de complexiteit. Let op veelgemaakte fouten: overfitting. Je bot presteert perfect op historische data maar faalt in de echte markt.

Test daarom met out-of-sample data: deel je data op in een trainingsset (70%) en een testset (30%).

Gebruik de trainingsset om je parameters te optimaliseren en de testset om te valideren. Een voorbeeld: als je bot een winst van 15% haalt op de trainingsset maar maar 2% op de testset, is het model te specifiek. Pas de parameters aan, zoals de periode van je moving average, en test opnieuw.

Voeg realistische kosten toe. De meeste brokers rekenen transactiekosten, bijvoorbeeld 0,1% per trade bij Binance.

Zonder deze kosten lijkt je bot winstgevend, maar in de praktijk verlies je geld.

Test ook onder verschillende marktomstandigheden: een stijgende markt, een dalende markt en een zijwaartse markt. Dit geeft je een beter beeld van de robuustheid. Gebruik een dashboard om je resultaten te visualiseren, zoals een equity curve in Python met matplotlib.

  • Download historische data (minimaal 6 maanden)
  • Deel data in: 70% trainen, 30% testen
  • Voeg transactiekosten toe (0,1% per trade)
  • Test onder verschillende marktomstandigheden
  • Visualiseer resultaten met matplotlib

Stap 4: Risicomanagement inbouwen – bescherm je portefeuille

Risicomanagement is de kern van je bot. Bepaal daarbij een realistische risico-rendement verhouding, want zonder dit loop je het risico je hele portefeuille te verliezen.

Begin met een stop-loss: een automatische verkoop als de prijs met een bepaald percentage daalt. Stel dit in op 2% per trade. Gebruik een ATR-gebaseerde stop-loss in Python, die meebeweegt met de marktvolatiliteit, om je winst beter te beschermen. Test dit grondig in je backtesting-omgeving.

Dit duurt ongeveer 30 minuten om in te bouwen. Beperk de grootte van je posities.

Gebruik nooit meer dan 1-2% van je portefeuille per trade. Als je €10.000 hebt, is je maximale positie €100-200.

Dit voorkomt dat één foutieve trade je portefeuille vernietigt. Voeg een daily loss limit toe: stop met traden als je meer dan 5% verliest op een dag. Veelgemaakte fouten: vergeten om deze limieten te testen, of ze te hoog instellen.

Test met kleine bedragen in je paper trading-account. Monitor je bot live.

Gebruik een tool zoals Grafana of een simpele Python-script om je portefeuille in de gaten te houden. Stel alerts in, bijvoorbeeld een SMS via Twilio als je bot een foutieve order plaatst. Zorg dat je altijd handmatig kunt ingrijpen.

Een voorbeeld: als je bot een order plaatst die 10x groter is dan de bedoeling, moet je deze direct kunnen annuleren via de broker-app.

Dit is je laatste verdedigingslinie.

“Risicomanagement is niet sexy, maar het houdt je in de game. Zonder het verlies je je geld sneller dan je kunt typen.”

Stap 5: Live testen en monitoring – van paper naar echt

Als je backtests goed zijn, ga je live testen met een klein bedrag.

Begin met €100-500, afhankelijk van je portefeuille. Gebruik het paper trading-account van je broker om te wennen aan de live-omgeving. Voer dezelfde trades uit als in je backtest en vergelijk de resultaten.

Dit duurt een dag of twee. Let op verschillen: de live-markt is sneller en heeft meer volatiliteit.

Monitor je bot 24/7. Gebruik een cloud-server zoals AWS EC2 (kosten ongeveer €10-20 per maand) om je bot te hosten, zodat hij altijd draait.

Stel logging in met Python's logging-module: log elke order, fout en marktgebeurtenis. Controleer elke dag de logs. Veelgemaakte fouten: vergeten om de server te updaten, of geen back-up hebben. Maak een back-up van je code en data elke week.

Als je bot stabiel draait na een week, schaal je op naar een groter bedrag, bijvoorbeeld €1.000. Blijf monitoren en pas je risicomanagement aan als nodig.

Een voorbeeld: als je merkt dat je bot te vaak verliest in een stijgende markt, pas dan je strategie aan, bijvoorbeeld door een extra filter toe te voegen zoals een volume-oscillator. Test deze aanpassing eerst opnieuw in je backtesting-omgeving voordat je live gaat.

  • Start met €100-500 live
  • Host op een cloud-server (AWS EC2, €10-20/maand)
  • Log elke actie met Python logging
  • Monitor dagelijks en pas aan na een week
  • Maak wekelijkse back-ups van code en data

Verificatie-checklist – controleer voordat je verder gaat

Voordat je je bot volledig live zet, loop je deze checklist af.

  • Is je code getest met een paper trading-account?
  • Heb je een stop-loss en daily loss limit ingesteld?
  • Zijn de API-limieten van je broker gecontroleerd (bijv. 1200 requests/minuut bij Binance)?
  • Is error handling toegevoegd voor API-fouten?
  • Heb je backtests gedaan met out-of-sample data?
  • Zijn transactiekosten meegenomen in de backtest?
  • Is je code beveiligd (geen hardgecodeerde sleutels)?
  • Heb je een monitoring-systeem opgezet?
  • Is een back-up van je code en data gemaakt?
  • Weet je hoe je handmatig kunt ingrijpen?

Beantwoord elke vraag met ja of nee. Als er een nee is, los het op voordat je verdergaat. Dit duurt ongeveer 15 minuten en voorkomt grote fouten. Als je alle vragen met ja kunt beantwoorden, ben je klaar om je bot met vertrouwen te laten draaien.

Onthoud: model risk is nooit helemaal weg, maar door bijvoorbeeld de Value at Risk (VaR) te berekenen in Python, beperk je de kans op grote verliezen enorm. Blijf leren, blijf testen, en je bent een stap dichter bij een robuuste trading-bot.

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.