VectorBT gebruiken voor het testen van duizenden parameters in seconden

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

Stel je voor: je hebt een strategie die je wilt testen op 10 jaar data.

Niet één keer, maar met 50 verschillende instellingen voor je stop-loss en take-profit. Met traditionele backtesting tools ben je hier uren, soms zelfs dagen mee bezig. Je computer sputtert, de ventilatoren gaan op volle toeren en je tikt ondertussen wat aan in je Python script. VectorBT verandert die game compleet.

In plaats van uren wachten, draai je duizenden parametercombinaties in seconden. Ja, echt seconden. Het voelt als een soort magie, maar het is gewoon slimmer programmeren.

VectorBT is een Python-bibliotheek die speciaal is gebouwd voor algoritmische handelaren die snel willen schakelen.

Het gebruikt de kracht van vectorberekeningen en de GPU om backtests massaal parallel te draaien. Het is niet zomaar een backtesting tool; het is een complete omgeving voor het ontwikkelen, testen en optimaliseren van handelsstrategieën. Je kunt het zien als een Ferrari onder de backtesting tools: snel, krachtig en met een hoop toeters en bellen. Het werkt naadloos samen met data van brokers zoals Interactive Brokers, Alpaca of je eigen CSV-bestanden, en integreert met API’s voor risicomanagement en order execution.

Waarom snelheid het verschil maakt

In de wereld van algoritmisch handen is tijd geld. Hoe sneller je een strategie kunt testen, hoe sneller je kunt bijsturen.

Stel je voor dat je een nieuwe indicator wilt uitproberen, zoals een combinatie van een 20-daagse en een 50-daagse moving average. Met traditionele methoden test je dit misschien voor 3 paar parameters en een beperkte dataset. Met VectorBT test je in een keer 1000 combinaties over 10 jaar data, terwijl je nog een bak koffie drinkt. De kern van deze snelheid ligt in de manier waarop VectorBT met data omgaat.

In plaats van in een Python-loop over elke dag of elk uur te itereren, worden berekeningen in één keer op hele arrays uitgevoerd. Dit heet vectorisatie. Het is alsof je in plaats van één voor één bakstenen te verplaatsen, een hele vrachtwagen vol tegelijkertijd transporteert.

Je computer, en vooral je GPU, is hier extreem goed in. Dit betekent dat je niet alleen sneller bent, maar ook complexere modellen kunt bouwen zonder dat je systeem vastloopt.

Denk aan de praktische impact: een strategie die normaal 2 uur duurt om te backtesten, is nu klaar in 10 seconden. Dit geeft je de ruimte om echt te experimenteren. Je kunt stop-loss niveau’s variëren van 1% tot 10% in stappen van 0.5%, of de periode van je RSI indicator aanpassen van 7 tot 21 dagen.

Dit soort grondigheid was voorheen voorbehouden aan hedgefondsen met supercomputers. Nu heb je het op je eigen laptop.

Hoe VectorBT werkt: de kern uitgelegd

Laten we het concreet maken. Je begint met het laden van data.

Stel je hebt een CSV-bestand met de dagelijkse koersen van het aandeel ASML van de afgelopen 5 jaar. Je laadt dit in een DataFrame, maar VectorBT gebruikt een speciaal datatype: de PriceData structuur. Dit is een geoptimaliseerde container die niet alleen de koersen bevat, maar ook volume en andere metadata.

Het is ontworpen voor snelheid. Vervolgens definieer je je strategie.

In VectorBT schrijf je geen lange loops. Je definieer signalen op basis van vectorberekeningen. Bijvoorbeeld, een simpel crossover-systeem: een koopsignaal als de korte moving average de lange kruist.

ma_fast = ta.rolling_mean(close, window=20)
ma_slow = ta.rolling_mean(close, window=50)
entries = ma_fast > ma_slow
exits = ma_fast < ma_slow

In code ziet dit er ongeveer zo uit: Dit is een vereenvoudigd voorbeeld, maar het laat het principe zien.

Je berekent de signalen voor alle dagen in één keer. Vervolgens pas je deze signalen toe op je portfolio.

VectorBT simuleert hoeveelheid geld je zou verdienen met deze strategie, rekening houdend met transactiekosten (bijvoorbeeld €2,50 per trade bij een broker zoals DEGIRO) en slippage. Het resultaat is een portfolio-object dat je kunt analyseren op winst, drawdown, Sharpe ratio en nog veel meer. De echte kracht komt naar boven bij parameter optimalisatie. In plaats van een enkele backtest, geef je VectorBT een reeks parameters.

Stel: je wilt de 20-daagse en 50-daagse moving average testen, maar ook de 10/30, 15/45 en 25/55 combinaties. Je definieert dit als een grid van parameters.

VectorBT draait dan niet één, maar vier backtests in parallel, en doet dit voor elke combinatie van entry- en exit signalen. Dit gebeurt op een zodanige manier dat je GPU of CPU optimaal wordt gebruikt. De resultaten verschijnen als een overzichtelijke tabel, waar je eenvoudig de beste parameters kunt filteren.

Varianten en modellen: van simpel tot complex

VectorBT is niet beperkt tot simpele moving average cross-overs. Je kunt het gebruiken voor een breed scala aan strategieën, van trendvolgend tot mean-reversion.

Laten we een paar varianten bekijken met concrete prijsindicaties voor data en brokers. Een populaire variant is de RSI Mean-Reversion strategie. Hierbij koop je een asset als de RSI onder een bepaalde drempel zakt (bijvoorbeeld 30) en verkoop je als hij weer boven die drempel komt. Je kunt de RSI-periode en de drempelwaarde optimaliseren.

Stel je test een RSI-periode van 7 tot 21 dagen en een drempel van 20 tot 40. Met VectorBT test je deze 100 combinaties in seconden.

Je ziet al snel dat een RSI-periode van 14 dagen met een drempel van 30 het beste werkt voor de AEX-index, met een jaarlijkse return van 8% en een maximale drawdown van 12%.

Een andere variant is een Volatiliteit-gebaseerde strategie, zoals een Donchian Channel breakout. Hierbij koop je als de prijs de hoogste stand van de afgelopen 20 dagen breekt. Je kunt de periode variëren van 10 tot 50 dagen.

VectorBT kan deze testen op een dataset van 10 jaar voor een aandeel zoals Philips, inclusief dividend. Je ziet direct welke periode de beste risk-reward verhouding geeft.

Bijvoorbeeld, een 20-daagse channel blijkt voor tech-aandelen te werken, terwijl een 40-daagse channel beter is voor stabiele dividend-aandelen. Voor meer complexe modellen, zoals een machine learning model, kun je VectorBT combineren met bibliotheken zoals Scikit-learn. Je traint een model op historische data en gebruikt VectorBT voor de backtest van de voorspellingen.

Stel je bouwt een model dat de richting van de S&P 500 voorspelt op basis van 5 technische indicatoren.

Je traint het model op data van 2010-2020 en test het op 2021-2023. VectorBT helpt je om de prestaties van dit model snel te evalueren, inclusief de impact van transactiekosten en risicomanagement regels, zoals een maximum portfolio risico van 2% per trade.

De keuze van broker is hierbij relevant. Voor Europese traders werkt VectorBT goed met API’s van Interactive Brokers (IBKR), die een breed assortiment aandelen en futures aanbiedt voor ongeveer €0,005 per aandeel met een minimum van €1.

Voor snellere toegang tot data kun je een dienst als Polygon.io gebruiken, wat ongeveer $20 per maand kost voor real-time data. Deze kosten wegen niet op tegen de tijd die je bespaart met snelle backtests.

Praktische tips om direct aan de slag te gaan

Om te beginnen met VectorBT, hoef je geen expert te zijn in programmeren. Je hebt Python nodig, bijvoorbeeld versie 3.8 of hoger, en je installeert VectorBT via pip: pip install vectorbt.

Het werkt op Windows, Mac en Linux. Als je een GPU hebt (NVIDIA), kun je CUDA gebruiken voor nog meer snelheid, maar het is niet verplicht.

Op een gemiddelde laptop met 16GB RAM draai je al snel backtests met duizenden parameters. Een tip: begin klein. Download een CSV-bestand met voldoende historische data voor een betrouwbare test van een paar aandelen via Yahoo Finance (gratis).

Test een simpele strategie met 3 parametercombinaties en kijk hoe lang het duurt. Je zult versteld staan.

Gebruik de ingebouwde visualisaties van VectorBT om je resultaten te bekijken. Er is een functie voor equity curves, drawdown plots en parameter heatmaps. Dit helpt je om snel inzicht te krijgen zonder dat je Excel nodig hebt. Voor risicomanagement: definieer altijd stop-loss en take-profit levels in je backtest.

VectorBT ondersteunt dit via de slippage en commission parameters. Stel je broker rekent €2,50 per trade, voeg dit toe als een vaste kostenpost.

Test ook met een variabele slippage, bijvoorbeeld 0.1% van de transactiewaarde, om realistischer te zijn. Een andere tip: gebruik de portfolio_value parameter om te zien hoe je kapitaal groeit onder verschillende risiconiveaus. Wees kritisch, want een extreem hoge winrate in je backtest is vaak een slecht teken. Probeer daarnaast een Kelly Criterion berekening toe te passen om je positiegrootte te optimaliseren.

Tot slot, experimenteer met de API-integraties. Als je een broker zoals Alpaca gebruikt (populair in de VS, met gratis real-time data voor aandelen), kun je eerst de 10 stappen om een backtest resultaat te verifiëren doorlopen voordat je deze koppelt aan een live trading bot.

VectorBT kan de API-calls genereren die nodig zijn om orders te plaatsen. Zorg wel dat je eerst een paper trading account gebruikt. Test je bot op een demo-account met virtueel geld voordat je echt risico neemt. Onthoud: geen enkele backtest garandeert toekomstige resultaten, maar met VectorBT ben je in ieder geval veel beter voorbereid.

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.