Backtesting term
Doorlopend (teruggecorrigeerd) futurescontract
Een doorlopend futurescontract is een keten van aflopende contracten die aan elkaar zijn gekoppeld, zodat een strategie over jaren in plaats van maanden kan worden getest. De manier waarop je deze contracten koppelt, bepaalt of het voordeel dat je achteraf ziet, daadwerkelijk bestaat.
Een futurescontract wordt een paar maanden verhandeld en verloopt dan. Om een strategie te testen over 13 jaar aan data, heb je één ononderbroken lijn nodig. Daarom plak je het aflopende contract aan het volgende, en het daaropvolgende, tot één doorlopend (teruggecorrigeerd) contract . Als je dit niet zorgvuldig doet, ontstaat er bij elke roll-on datum een spookgat of een spookwinst in de grafiek, een sprong die geen enkele handelaar ooit daadwerkelijk heeft gemaakt.
Terugwaartse aanpassing is de oplossing: verschuif elke prijs vóór elke roll met de grootte van de gap, en de naad verdwijnt, waardoor de grafiek eruitziet als één vloeiende lijn in plaats van een trap van sprongen. Dat is noodzakelijk en meestal onschadelijk voor de huidige datum. Ga je echter ver genoeg terug, dan kunnen de opeenvolgende verschuivingen oude prijzen naar nul, of zelfs negatief, duwen, en een onzorgvuldige berekening van het percentage rendement op die aangepaste reeks betekent niet meer wat het lijkt te betekenen.
De valstrik is stil omdat hij zich nooit aankondigt. De vermogenscurve ziet er overzichtelijk uit en de strategie lijkt winstgevend. De werkelijke oorzaak is hoe een dozijn afzonderlijke contracten aan elkaar zijn geplakt, en dat heeft niets met de regels te maken. Het is nauw verwant aan de look-ahead bias : beide geven een backtest geld dat nooit te innen was, de ene door toekomstige informatie in het verleden te lekken, de andere door een samenvoegingsartefact in de prijsreeks zelf te lekken.
We analyseren 13 jaar aan CME-futures en voeren elke roll-over bewust uit in plaats van de standaardinstellingen te gebruiken. Een kleine fout kan immers al een voordeel opleveren, zonder dat er een regelwijziging nodig is. De belangrijkste controle is simpel: of de aangepaste reeks nog steeds overeenkomt met de prijs waartegen een handelaar daadwerkelijk een order had kunnen ontvangen, roll-over na roll, gedurende de hele looptijd van de backtest.
Als je dat verkeerd aanpakt, test de backtest niet langer je strategie, maar een artefact: een contract dat nooit heeft bestaan. De grafiek ziet er realistisch uit. De transacties die erin worden uitgevoerd, zijn dat niet. Die kloof tussen een vloeiende, continue reeks en de grillige, aflopende realiteit eronder is precies waar een backtest stilletjes kan ophouden een backtest te zijn van iets dat überhaupt verhandelbaar is.
Het onderzoek hierachter
- López de Prado (2018). “Advances in Financial Machine Learning.” Wiley. — Behandelt backtest-overfitting en datalekken in financiële machine learning, dezelfde faalmodus die een slechte contractsplitsing ongemerkt kan introduceren.
Extern onderzoek, met links voor context en verdere lectuur. FoxAlgo is onafhankelijk en niet gelieerd aan deze auteurs of uitgevers.
Dit zijn de voorwaarden achter De Nee-lijst — de volledige audit, waarbij elke strategie en indicator wordt genoemd, met het oordeel en de exacte reden waarom deze wel of niet is aangenomen.
Download de 'Nee'-lijst →