Een backtest kan elke candle de juiste tijdstempel geven en toch informatie van morgen gebruiken. Dat gebeurt wanneer de strategie de assets test die vandaag nog bestaan, over meerdere jaren aan historie, alsof ze had geweten welke markten liquide, genoteerd en het behouden waard zouden blijven.
Het samenstellen van het universum is onderdeel van de strategie. Als het live-systeem alleen kon kiezen uit assets die op elk beslismoment beschikbaar waren, moet de backtest diezelfde grens respecteren. Drie veelgebruikte sluiproutes wissen die grens uit.
Fout één: de lijst van vandaag over de hele historie backtesten
Stel dat je vandaag de 50 grootste crypto-perpetualmarkten selecteert en ze vervolgens vanaf 2021 backtest. De lijst sluit contracten uit die zijn verdwenen, illiquide zijn geworden of van de beurs zijn gehaald. Ook geeft die lijst oudere datums toegang tot markten die toen misschien nog niet bestonden.
De schade valt makkelijk over het hoofd te zien: een strategie lijkt stabieler omdat de assets die faalden uit de steekproef zijn verdwenen. Een momentumregel kan bijvoorbeeld uitstekend lijken op basis van de 50 markten van vandaag, terwijl de historische versie herhaaldelijk posities zou hebben ingenomen in assets die later instortten of niet meer op de beurs werden verhandeld. Je hebt een portefeuille getest die is samengesteld met kennis van de uitkomst.
Leg het lidmaatschap vast als een gedateerd overzicht. Houd per asset bij wanneer die in aanmerking kwam, wanneer dat niet langer zo was en waarom. Pas bij elke herbalancering de regels toe met alleen de informatie die op dat moment beschikbaar was. Een markt mag pas worden opgenomen na de daadwerkelijke notering en eventuele vereiste opwarmperiode. Bij een delisting moet voor de laatste positie een duidelijke exit- of afwikkelingsmethode gelden; de bijbehorende rijen verwijderen is geen exitregel.
Fout twee: rangschikken op basis van een statistiek die na het beslismoment is gemeten
Zelfs een historisch universum kan informatielekken bevatten als de lidmaatschapsregel een venster gebruikt dat pas later compleet is. ‘Elke maand de 20 meest liquide aandelen verhandelen’ klinkt redelijk, totdat de liquiditeit wordt gerangschikt op basis van de hele maand waarin de strategie zou moeten handelen.
Stel dat je op de eerste handelsdag herbalancert. Rangschikken op basis van het gemiddelde dollarvolume van die maand gebruikt ongemerkt de daaropvolgende drie weken om te bepalen welke assets op dag één in aanmerking kwamen. Het resultaat lijkt vaak een opvallend grote capaciteit te hebben: de strategie vermijdt assets die later die maand illiquide werden, terwijl ze dat bij het instappen niet kon weten.
Stel de meetgrens vast vóór het selectiemoment. Bij een maandelijkse herbalancering tijdens de eerste sessie kun je rangschikken op basis van de vorige 20 voltooide sessies, tot en met de voorgaande sessie. Maak vervolgens de uitvoeringsvertraging expliciet: als de rangschikking de slotkoers van gisteren gebruikt, kan de order dan volgens je veronderstelde werkwijze bij de opening van vandaag worden ingediend?
| Selectieregel | Point-in-time-versie | Veelvoorkomend lek |
|---|---|---|
| Top 20 op dollarvolume | Rangschik op voltooide sessies vóór de herbalancering | De dag of maand van de herbalancering meenemen |
| Genoteerd op de beurs | Gebruik de ingangsdatums van noteringen en delistings | Een actuele symbolen-API gebruiken voor oude datums |
| Minimale historie | Tel waarnemingen die op het selectiemoment beschikbaar zijn | Toekomstig overleven vereisen om door de filter te komen |
Fout drie: ontbrekende historie behandelen als bewijs dat een asset niet in aanmerking kwam
Het archief van een dataleverancier is niet per se een compleet overzicht van de historische markt. Een ontbrekend symbool kan betekenen dat de asset nooit heeft bestaan, dat de beurs de naamgevingsconventie heeft gewijzigd, dat de leverancier delisted instrumenten niet heeft bewaard of dat de datastroom simpelweg een gat bevat. Die situaties hebben verschillende gevolgen.
Het resultaat is een keurig universum met onverklaarde gaten. Onderzoekers eisen vaak een volledig terugkijkvenster en sluiten vervolgens alles zonder zo'n venster stilzwijgend uit. Dat kan een verstandige opwarmregel zijn, maar sluit daarmee ook bewust nieuw genoteerde assets uit. Erger nog: als vooral gefaalde markten ontbrekende historie hebben, wordt ‘alleen complete data’ een nieuwe survivorshipfilter.
Houd geschiktheid, databeschikbaarheid en de opwarmperiode van de strategie als aparte gegevens bij. Leg per datum vast waarom een asset werd uitgesloten. Bewaar ontbrekende waarden in het onderzoekslogboek in plaats van ze stilzwijgend te verwijderen. Als de bron niet kan vaststellen of een markt genoteerd of verhandelbaar was, vermeld dat dan en meet in hoeverre de uitkomst van die onzekerheid afhangt.
Maak het universum reproduceerbaar
Een nuttige audit begint met één historische herbalancering. Stel de kandidatenlijst opnieuw samen op basis van gedateerde noteringen en data die op dat meetmoment beschikbaar waren. Bereken de rangschikkingsinputs opnieuw met alleen voltooide waarnemingen. Vergelijk vervolgens het resulterende universum met de lijst die je backtest daadwerkelijk gebruikte.
Bewaar de regel, de meetgrens, de lidmaatschapsbeslissingen en de bronversie bij de run. Als je niet kunt uitleggen waarom de ene asset op een bepaalde datum werd opgenomen en de andere niet, kun je nog niet zeggen of de strategie een edge heeft ontdekt of een steekproef heeft geërfd die door kennis van de toekomst is gevormd.
Fouten bij het samenstellen van een universum verraden zich zelden door onmogelijke prijzen. Ze blijken uit een strategie die wel erg handig de markten vermeed zodra die niet meer handig waren.
← Alle artikelen


