Waar moet je op letten bij het kopen van historische data?
Je staat op het punt om een algoritmische bot te bouwen. Je hebt je strategie bedacht in Python, je broker API staat klaar en je bent klaar voor backtesting.
Maar dan is er die ene, cruciale muur: data. Zonder data ben je nergens. Je kunt je bot niet testen, niet verbeteren, niet vertrouwen. Dus koop je historische data.
Maar hoe weet je wat je echt koopt? De markt zit vol met aanbieders die allemaal beweren de beste te zijn. Laten we het eens echt hebben over waar je op moet letten, zonder de marketingpraat.
De data-minefield: wat je echt in handen hebt
Stel je voor: je koopt een dataset voor €50. Je laadt het in je Python script, draait een backtest op een simple moving average crossover en de resultaten zijn geweldig.
Een winstpercentage van 85%, een constante stijgende lijn. Je voelt je een genie.
Je zet de bot live met je zuurverdiende €1000. En dan... poef. De bot verliest geld. Wat is er gebeurd? Je hebt waarschijnlijk te maken gehad met "overfitting" op slechte data.
- OHLCV: Open, High, Low, Close en Volume. De basis. Maar let op de frequentie. Wilt je 1-minuut data of 1-uur data?
- Timestamps: Is het in UTC of in een specifieke tijdzone? Dit is cruciaal voor het synchroniseren met je broker API.
- Split- en dividendcorrecties: Als je aandelen zoals Apple of Tesla backtest, moet de data gecorrigeerd zijn voor splitsingen. Anders lijk je een gigantische winst te maken die nooit heeft bestaan.
De data die je kocht bevatte geen slippage, geen spreads, en geen momenten waarop de markt simpelweg even niet werkte.
Dit is het gevaar van "vuile" data. Goede data is niet alleen een lijstje met prijzen. Het is een weerspiegeling van de realiteit van de markt. Het omvat: Een aanbieder die dit niet aanbiedt, levert speelgoeddata, niet data voor serieuze trading bots.
De drie hoofdsoorten data-aanbieders en hun prijskaartje
Niet alle data is hetzelfde. Je hebt drie hoofdcategorieën, elk met hun eigen voor- en nadelen.
- De broker zelf (vaak gratis): Brokers zoals Interactive Brokers of Degiro bieden vaak historische data aan. Het grote voordeel? Het is gratis of inbegrepen bij je abonnement. Het nadeel? Het is vaak beperkt. Je krijgt misschien maar 1 jaar terug, of de 1-minuut data is niet tick-by-tick. Voor simpele strategieën is dit een prima startpunt.
- Specialistische data-aanbieders (€20 - €200 per maand): Denk aan partijen als TrueData, QuantConnect of Polygon.io. Dit is de sweet spot voor de meeste retail traders. Ze leveren schone, gecorrigeerde data, vaak met meerdere jaren historie. Je kunt hier vaak per exchange betalen. Voor data van de US markt (NYSE, NASDAQ) betaal je al snel €50-€100 per maand voor toegang tot meerdere assets. Voor Europese beurzen zoals Euronext Amsterdam liggen de prijzen vaak rond de €30-€60 per maand.
- Tick-data en orderboek data (€500+ per maand): Dit is het topniveau. Als je een high-frequency trading bot bouwt, of een strategie die afhankelijk is van de exacte volgorde van trades, heb je dit nodig. Dit is extreem duur en dataverwerking is een enorme technische uitdaging. Wees hier voorzichtig mee; tenzij je een institutioneel fonds runt, is dit meestal overkill.
Je keuze hangt af van je budget en hoe serieus je bent. De prijs is een indicator, maar niet de enige. Een dure dataset van €200 kan nog steeds waardeloos zijn als hij vol hiaten zit.
Hoe check je de kwaliteit? De 5 minuten test
Je hebt een dataset gekocht of gedownload. Voordat je een regel code schrijft, moet je de data controleren. Dit is een simpele checklist die je enorm veel hoofdpijn bespaart.
Open een Jupyter Notebook, laad de data met Pandas en corrigeer eventuele gaten in je tijdreeksen.
- Check op hiaten (gaps): Gebruik
df.isnull().sum(). Zijn er dagen of uren met missende data? Zeker bij 1-minuut data mag je geen hiaten hebben tijdens handelsuren. Een plot van de data helpt om visuele gaten te zien. - Controleer de outliers: Zoek naar prijzen die extreem afwijken. Is er een candle met een High van €1000 terwijl de Close op €10 was? Dit zijn vaak datafouten. Je backtest kan hierdoor ontsporen. Verwijder of corrigeer deze punten.
- Vergelijk met een bron: Pak een willekeurige dag uit je dataset. Open de grafiek van je broker of een gratis dienst zoals TradingView. Zijn de Open, High, Low en Close prijzen identiek? Een verschil van een paar cent is oké, maar grote verschillen zijn een rode vlag.
- Volume check: Is het volume realistisch? Op een normale dag hoort er volume te zijn. Hele dagen met volume 0 zijn verdacht, tenzij het een beursfeestdag is.
Dit is wat je doet: Deze simpele checks kosten je minder dan 10 minuten, maar ze geven je direct vertrouwen in de data die je gebruikt voor je backtests.
Data is een levend iets: onderhoud en actualiteit
Je bent er bijna. Je hebt goede data gevonden, je hebt het gecontroleerd.
Maar vergeet niet dat data geen statisch product is. De markten veranderen, en je data-aanbieder moet daarin meegaan. Stel je voor dat Tesla een stock split aankondigt.
Jouw oude dataset, van vóór die split, moet worden aangepast. De prijzen van voor de split moeten omlaag worden bijgesteld, zodat de grafiek na de split naadloos aansluit.
Als je een aanbieder kiest, vraag dan of ze automatische correcties voor splitsingen en dividends toepassen. Dit bespaart je uren handmatig werk. Een ander belangrijk punt is de data van de broker die je uiteindelijk gebruikt.
Stel je backtestt met data van Yahoo Finance, maar je broker is Interactive Brokers. Er kunnen kleine verschillen in de data zijn.
Dit heet "data-look-ahead bias" of simpelweg een mismatch. De ideale situatie is dat je de data gebruikt van de broker waar je ook live gaat traden.
Veel brokers zoals Interactive Brokers bieden een historische data download functie aan die je via hun API kunt benaderen. Dit is vaak de meest betrouwbare data voor jouw specifieke setup. Denk ook aan de kosten voor onderhoud. Sommige aanbieders rekenen een eenmalige vergoeding, maar de meeste werken met een maandabonnement.
Zorg dat je weet wat er gebeurt als je stopt met betalen. Blijft je oude data beschikbaar? Of ben je het kwijt? Kijk voor meer diepgang ook eens naar de meerwaarde van alternative data.
Jouw actieplan: vanaf nu slim kopen
Oké, je hebt de kennis. Laten we dit vertalen naar een direct plan voor de volgende keer dat je data nodig hebt.
Stap 1: Bepaal je echte behoefte. Ben je een daytrader die 1-minuut candles gebruikt?
Of een swing trader die naar dagelijkse sluitingen kijkt? Koop niet meer dan je nodig hebt. Begrijp eerst goed het verschil tussen tick, second en minute data; een dataset van 10 jaar 1-minuut data is namelijk enorm groot (gigabytes) en vaak onnodig.
Begin met 2-3 jaar data. Dat is vaak genoeg voor een goede backtest.
Stap 2: Test met een kleine investering. Begin met een maandabonnement bij een specialistische aanbieder. Koop niet meteen een duur jaarabonnement. Gebruik die eerste maand om al je bestaande strategieen te testen en de data grondig te controleren met de checklist hierboven. Stap 3: Wees kritisch op de prijs-kwaliteit verhouding. Een prijs van €20 per maand voor data van de volledige US markt is een schijntje vergeleken met de potentiële winst van een goede bot.
Zie data niet als een kostenpost, maar als de fundament van je hele trading operatie.
Een slecht fundament zorgt er vroeg of laat voor dat je bouwwerk instort. Uiteindelijk draait het allemaal om betrouwbaarheid. Je Python code kan nog zo slim zijn, je risicomanagement perfect geregeld zijn via de API, maar als je data slecht is, faal je.
Neem de tijd om de juiste data te vinden, controleer het, en investeer in kwaliteit. Je toekomstige zelf, die naar zijn winst- en verliesrekening kijkt, zal je dankbaar zijn.
