playitsmart.nl

Terug naar home

15 mei 2026 · 4 min lezen

Post #1

De stille killer van backtests

Hoe data uit de toekomst je systeem mooier maakt dan het is

Stel je voor: je bouwt een systeem dat in juli 2024 had moeten zeggen "koop NVIDIA". Je test het op historische data. De backtest zegt: deze strategie heeft 30 procent rendement opgeleverd. Glanzend resultaat. Tijd om te vieren.

Tot iemand vraagt: gebruikte je in juli 2024 alleen data die op dat moment ook echt beschikbaar was?

Dat is een verraderlijke vraag. En het antwoord is bij negen van de tien zelfgebouwde systemen: nee.

Walmart als waarschuwing

Walmart sluit zijn financiële jaar af op 31 januari. Niet op 31 december, zoals de meeste bedrijven. Dat heet een non-calendar fiscal year. En honderden bedrijven hebben er een. Costco. Apple. Microsoft. Bijna alles in retail.

Walmart sluit dus Q4 2024 af op 31 januari 2024. Maar Walmart publiceert die cijfers pas op 19 februari. Bijna drie weken later.

Als ik in mijn backtest een snapshot maak op 1 februari 2024 en daar Walmart's Q4-cijfers gebruik, dan gebruik ik data die op dat moment helemaal niet bekend was. Bij niemand. Mijn systeem speelde poker met andermans kaarten op tafel.

Zonder dat ik het door had.

Dit heet look-ahead bias

Een naïeve backtest pakt alle data die er nu is, en draait die door je strategie heen. Probleem: "alle data die er nu is" bevat dingen die in het verleden nog niet bestonden.

Earnings die pas weken na het kwartaal werden gepubliceerd. Analist-targets die achteraf werden bijgesteld. Restatements van eerdere cijfers waar bedrijven later iets corrigeerden.

Als je strategie afhangt van zulke fundamentals, en je bent niet zorgvuldig over wanneer elk getal beschikbaar werd, ben je voor de start van de race al een blik op de finishfoto aan het werpen.

De impact: backtest returns kunnen 5 tot 10 procent te hoog uitvallen. Voor een systeem dat in werkelijkheid 12 procent rendement geeft, kan een naïeve backtest 20 procent suggereren. Het verschil bepaalt of je denkt dat je een edge hebt of dat het niet de moeite waard is.

Hoe ik het regel

Mijn systeem werkt onder andere met factoren die op fundamentals zijn gebaseerd. Value, oftewel "is dit aandeel cheap of duur". Quality, oftewel "is dit een goed bedrijf of een matig bedrijf". Beide leunen op earnings-data. Winst per aandeel, ROIC, omzet-groei. Die cijfers worden niet realtime gepubliceerd. Ze komen 30 tot 60 dagen na het einde van een kwartaal binnen.

Mijn fix: een buffer van 60 dagen. Voor een snapshot op 1 februari 2024 gebruik ik alleen earnings die uiterlijk 1 december 2023 publiek werden. Veiliger te conservatief dan te optimistisch.

Klinkt simpel. Maar in een backtest met duizenden aandelen en jaren aan historische data is dit het verschil tussen een systeem dat denkt dat het werkt en een systeem dat ook in productie werkt. Heel veel zelfgebouwde quant systemen falen op deze ene check.

Hoe ik het door had

In mijn eerste versie had ik geen buffer. Alle fundamentals data gewoon erin. Resultaten zagen er goed uit.

Te goed.

Sharpe ratio aan de hoge kant. Drawdowns klein. Het soort getallen dat een buitenstaander zou doen vragen of ik me niet vergiste. Ik dacht aanvankelijk: nee, dit is gewoon een goed systeem.

Tot ik me afvroeg: in juli 2024, had ik op dat moment al de Q2-earnings van iedereen? En het antwoord, na vijf minuten kijken, was nee. Sommige Q2-rapportages kwamen pas in september. Als ik die in mijn juli-snapshot meeneem, gebruik ik informatie die toen niet bestond.

Buffer toegevoegd. Backtest opnieuw gedraaid. Sharpe een stuk lager. Realistischer. Eerlijker.

Het verschil zat in één getal. 60. Dagen buffer.

Waarom dit ertoe doet

Wie zijn eigen trading systeem bouwt, zal eerder later dan vroeger op look-ahead bias stuiten. Het werkt namelijk altijd in je voordeel. Backtests zien er beter uit dan ze zouden moeten zijn. Je voelt je slim. Je gaat verder bouwen.

Tot je live gaat. En de werkelijkheid haalt je in.

Bij een real-money systeem is dit niet een academische zorg. Het verschil tussen "ik dacht dat ik een edge had" en "ik had een data-illusie" is dezelfde rekening. Een paar maanden onderpresteren. En dan moet je eerlijk zijn over wat dat betekent.

De winst van bias-correctie zit niet in mooiere getallen. De winst zit in dat de getallen kloppen.

En de stille fouten zijn de duurste fouten. Vooral als er echt geld in het spel is.

Wekelijks volgen?