Het concept van 'Robustness Testing': Werkt je bot ook op andere assets?

Portret van Alex de Vries, Quantitatief Analist & Algo-Trading Expert
Alex de Vries
Quantitatief Analist & Algo-Trading Expert
Strategie Optimalisatie & Tuning · 2026-02-15 · 8 min leestijd

Je kent het wel: je hebt een strategie gebouwd in Python, de backtest ziet er prachtig uit op je favoriete broker zoals Interactive Brokers of Alpaca. De equity curve stijgt gestaag.

Je bot doet precies wat hij moet doen op die ene asset, bijvoorbeeld de EUR/USD.

Je bent er klaar voor om de live-markten te veroveren. En dan... stort het in. Je bot begint te draaien op de NASDAQ (NQ) en het is een bloedbad.

Wat is er misgegaan? Het antwoord is simpel: je hebt geen 'Robustness Testing' gedaan. Je hebt je bot getraind voor een marathon, maar nu gooi je hem in de 100 meter sprint. En dat werkt niet.

Wat is Robustness Testing eigenlijk?

Stel je voor dat je een racewagen bouwt. Je test 'm op een perfect glad asfalt circuit in Monaco.

Loopt als een zonnetje. Maar wat als je diezelfde wagen de Ardennen in stuurt?

Of door de modder op een boerderij? Waarschijnlijk breekt de ophanging of de motor begeeft het. Robustness Testing is precies dat, maar dan voor je trading bot. Het is het proces waarbij je je strategie blootstelt aan extreme, onverwachte en 'vies' marktgedrag om te zien of hij het overleeft.

Het gaat veel verder dan een simpele backtest. Een standaard backtest op EUR/USD van de afgelopen 2 jaar geeft je een schijnzekerheid.

Robustness Testing checkt of je bot nog steeds werkt als de markt ineens 10% daalt, of als de volatilatie verdubbelt, of als de spread opeens 5 pips wordt in plaats van 1 pip. Het is de ultieme stress-test voor je code. Je zoekt naar de zwakke schakels in je logica voordat je er echt geld mee verliest.

Een bot die alleen werkt op de exacte data waarop hij is getraind, is als een student die alleen de antwoorden op een oefenexamen heeft geleerd. Zodra de vragen een beetje anders zijn, is hij de kluts kwijt. Robustness Testing maakt van je bot een echte 'generalist' die weet hoe hij moet omgaan met verschillende marktomstandigheden, niet één specifieke situatie.

Waarom je dit echt niet kunt overslaan

De markten zijn nooit statisch. De EUR/USD van vandaag is niet de EUR/USD van volgend jaar.

De karakteristieken van een markt veranderen constant. Misschien is er een nieuwe centrale bank president, of een nieuwe technologie die de handel verandert.

Als je bot is geoptimaliseerd voor één specifieke 'marktstaat', bijvoorbeeld een stijgende markt met lage volatiliteit, dan ben je je geld aan het weggooien zodra de markt omslaat. Dit is wat we 'overfitting' noemen. Je hebt je parameters zo fijn afgesteld op je historische data dat je bot perfect past bij het verleden, maar geen idee heeft wat te doen in de toekomst. Robustness Testing is het medicijn tegen overfitting.

Het zorgt ervoor dat je strategie gebaseerd is op een logisch marktprincipe, en niet op toevallige ruis in je data.

Je wilt een bot die werkt op zowel de S&P 500 als de DAX, en zelfs op exotische paren als de USD/TRY, mits dat binnen je risicoprofiel past. Stel je voor dat je een bot draait die €5.000,- winst maakte in een ruggetje. Je zet hem live en de markt kantelt.

Omdat je nooit hebt getest wat er gebeurt als de AEX met 3% daalt, loopt je bot vast of draait hij gigantische verliezen. Je totale risicobeheer faalt.

Robustness Testing bespaart je deze pijnlijke momenten. Het is je verzekering tegen de onbekende kant van de markt.

De kern van de test: Wat moet je precies doen?

Het begint allemaal met je data. Je hebt schone data nodig. Heel schoon.

Als je via een API van een broker als Degiro of Interactive Brokers je data haalt, check dan op missing bars en slippages.

Gebruik libraries zoals Pandas en VectorBT om je data te prepareren. De basis van Robustness Testing is het testen op assets die je bot nog nooit heeft gezien. Als je bot is gebouwd op de 1-uur grafiek van Bitcoin (BTC/USD), probeer hem dan op de 4-uur grafiek van Goud (XAU/USD).

Een simpele maar krachtige techniek is de 'Randomized Walk Forward'. In plaats van je data netjes op te delen (eerste 80% trainen, laatste 20% testen), pak je willekeurige stukken uit de historie. Je traint op een stuk van 2015-2017, test op een stuk uit 2020. Dan train je op 2018-2019, test je op 2021.

Dit voorkomt dat je bot leert van de 'trend' van de afgelopen jaren, maar juist leert te overleven in verschillende marktperiodes.

Je kunt ook je data 'bewerken' om extreme situaties te simuleren. In Python kun je met libraries als NumPy eenvoudig ruis toevoegen aan je prijsdata.

Verhoog de standaardafwijking van je prijzen met 20% (de 'Noise' parameter). Of voeg plotselinge 'gaps' toe in de data, zoals een weekend gap van 2%. Als je bot dan implodeert, weet je dat hij te fragiel is.

Dit proces noemen we sensitivity analysis voor je trading parameters. Hiermee test je hoe gevoelig je bot is voor kleine veranderingen in de input.

Denk ook aan de broker-specifieke randvoorwaarden. Een backtest in Python met VectorBT of Backtrader gaat vaak uit van oneindige liquiditeit en geen slippage. In de echte wereld betaal je commissies (bijv. €0,50 per trade bij sommige brokers) en heb je te maken met spread.

Robustness Testing betekent dat je deze kosten hard meeneemt. Test je bot met een spread die 3x zo hoog is als normaal. Als de strategie dan nog steeds positief is, is het een keeper.

Varianten en tools: Van gratis tot professioneel

Je hebt geen duizenden euro's nodig om te beginnen. De krachtigste tools zijn vaak gratis en open-source. Backtrader is een klassieker in de Python-wereld.

Je kunt hiermee vrij eenvoudig je eigen 'Robustness' loops bouwen. Je schrijft een script dat je bot 100x draait met licht gewijzigde parameters (bijv. stoploss tussen de 0.5% en 1.5%) en kijkt of de resultaten consistent blijven. Dit is de basis van 'Monte Carlo' simulaties.

Je bent op zoek naar een 'platte' curve, niet een piek die afhankelijk is van één perfecte instelling. Voor de serieuze professional is QuantConnect of CloudQuant een optie.

Deze platforms bieden toegang tot gigantische datasets (inclusief fundamentele data en orderboek data) en krachtige backtesting engines.

Ze hebben ingebouwde tools voor 'Out-of-Sample' testing en 'Parameter Envelopes'. De kosten hiervan variëren. Een basis lidmaatschap bij QuantConnect begint rond de $20 per maand, maar voor geavanceerde data en live trading op futures (zoals de NASDAQ E-mini) betaal je al snel $80 - $100 per maand. Een specifieke techniek die je moet proberen is de 'Parameter Heatmap'.

Gebruik Python (Pandas/Matplotlib) om een grid te maken. Pak je key parameter, bijvoorbeeld de 'lookback period' van je moving average.

Test waarden van 10, 20, 30, ... 100. Zet de resultaten uit in een heatmap. Zie je één klein rood (verlies) vakje in een zee van groen?

Dan is je bot niet robuust. Hij valt uit elkaar zodra de markt een andere 'snelheid' heeft.

Een robuuste bot heeft een 'plateau' van goede parameters, geen scherp piekje. Er zijn ook betaalde 'Robustness Frameworks' te koop op platforms als QuantConnect's marketplace of via specifieke developers. Deze kosten vaak tussen de €50 en €200.

Ze automatiseren het testen op 'Black Swan' events (extreme crashes) en geven je een 'Robustness Score'.

Handig, maar je kunt dit vaak zelf ook bouwen met wat Python-kennis. De echte waarde zit hem in het begrijpen van de concepten, niet per se in een duur pakket.

Praktische tips om vandaag nog te beginnen

Start klein. Pak je huidige favoriete strategie.

Pak de data van een andere asset. Als je bot op EUR/USD draait, probeer hem dan op GBP/USD. Of probeer hem op een totaal andere markt, zoals de TTF Gas futures (als je broker dat ondersteunt) of een crypto-paar als ETH/USD.

Je zult versteld staan hoe snel een 'goede' strategie op een andere markt kan falen.

Dit is de makkelijkste en snelste test die je kunt doen. Begrijp daarom het belang van 'Out-of-Sample' testen strikt. Deel je data nooit op basis van toeval.

Deel het op basis van tijd. Gebruik data van 2018-2021 voor de ontwikkeling en optimalisatie.

Test vervolgens op de data van 2022-2024. Als je resultaten daar significant slechter zijn, is je bot niet robuust.

Je mag je parameters NIET aanpassen op basis van die 2022-2024 data. Dan trap je in de val van 'data snooping'. Check je 'Edge'. Waarom verdient je bot geld?

Is het omdat de markt vaak terugkeert naar een gemiddelde (Mean Reversion)? Of omdat het een trendvolger is? Test deze assumptie.

Als je een Mean Reversion bot hebt, draai hem dan op een markt die bekend staat om zijn sterke trends (bijv. de NASDAQ). Als hij daar verliest, is je logica waarschijnlijk correct, maar is de marktkeuze verkeerd. Wees echter alert op valkuilen zoals over-optimalisatie; je bot moet kunnen schakelen tussen regimes, wat weer complexer is.

En tot slot: risicomanagement is je laatste verdedigingslinie. Zelfs de meest robuste bot kan een keer falen.

Zorg dat je 'Position Sizing' (hoeveelheid geld per trade) zo laag is dat een reeks verliezen je niet uit het spel gooit. Een bot die 10 trades verliest op rij moet nog steeds overeind staan. Als je dat niet kunt zeggen over je huidige setup, stop dan met live traden en ga terug naar de tekentafel. Je toekomstige zelf zal je dankbaar zijn.

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 Strategie Optimalisatie & Tuning
Ga naar overzicht →