24 juni 2021 7:52

Backtesting en forward testing: het belang van correlatie

Handelaren die graag een handelsidee op een live markt willen proberen, maken vaak de fout om volledig te vertrouwen op backtestingsresultaten om te bepalen of het systeem winstgevend zal zijn. Hoewel backtesting handelaren waardevolle informatie kan opleveren, is het vaak misleidend en vormt het slechts een onderdeel van het evaluatieproces.

Out-of-sample testing en forward performance testing geven verdere bevestiging van de effectiviteit van een systeem en kunnen de ware kleuren van een systeem laten zien voordat er echt geld op het spel staat. Een goede correlatie tussen backtesting, out-of-sample en forward performance testing resultaten is essentieel voor het bepalen van de levensvatbaarheid van een handelssysteem.

Basisprincipes van backtesting

Backtesting verwijst naar het toepassen van een handelssysteem op historische gegevens om te verifiëren hoe een systeem zou hebben gepresteerd tijdens de opgegeven periode. Veel van de huidige handelsplatforms ondersteunen backtesting. Handelaren kunnen ideeën met een paar toetsaanslagen testen en inzicht krijgen in de effectiviteit van een idee zonder geld op een handelsrekening te riskeren. Backtesting kan eenvoudige ideeën evalueren, zoals hoe een cross-over met zwevend gemiddelde zou presteren op historische gegevens, of complexere systemen met een verscheidenheid aan inputs en triggers.

Zolang een idee kan worden gekwantificeerd, kan het worden getoetst. Sommige handelaren en investeerders kunnen de expertise van een gekwalificeerde programmeur zoeken om het idee in een toetsbare vorm te ontwikkelen. Meestal houdt dit in dat een programmeur het idee codeert in de eigen taal die wordt gehost door het handelsplatform. De programmeur kan door de gebruiker gedefinieerde invoervariabelen opnemen waarmee de handelaar het systeem kan “tweaken”.

Een voorbeeld hiervan is het eenvoudige crossover-systeem met voortschrijdend gemiddelde dat hierboven is vermeld: de handelaar zou de lengtes van de twee voortschrijdende gemiddelden die in het systeem worden gebruikt, kunnen invoeren (of wijzigen). De handelaar zou een backtest kunnen uitvoeren om te bepalen welke lengtes van voortschrijdende gemiddelden het beste zouden hebben gepresteerd op basis van de historische gegevens.

Optimalisatiestudies

Veel handelsplatforms maken ook optimalisatiestudies mogelijk. Dit houdt in dat u een bereik moet invoeren voor de opgegeven invoer en de computer “de wiskunde laten doen” om erachter te komen welke invoer het beste zou hebben gepresteerd. Een optimalisatie met meerdere variabelen kan de wiskunde voor twee of meer variabelen uitvoeren om te bepalen welke combinaties het beste resultaat zouden hebben opgeleverd.

Handelaren kunnen het programma bijvoorbeeld vertellen welke input ze zouden willen toevoegen aan hun strategie; deze zouden dan worden geoptimaliseerd tot hun ideale gewicht op basis van de geteste historische gegevens.

Backtesting kan opwindend zijn omdat een onrendabel systeem vaak op magische wijze kan worden getransformeerd in een geldverdienende machine met een paar optimalisaties. Helaas leidt het aanpassen van een systeem om het hoogste niveau van eerdere winstgevendheid te bereiken vaak tot een systeem dat slecht zal presteren in de echte handel. Door deze overoptimalisatie ontstaan ​​systemen die er alleen op papier goed uitzien.

Curve-aanpassing is het gebruik van optimalisatieanalyses om het hoogste aantal winnende transacties te creëren met de grootste winst op basis van de historische gegevens die in de testperiode zijn gebruikt. Hoewel het er indrukwekkend uitziet in resultaten van backtesting, leidt curve-aanpassing tot onbetrouwbare systemen, omdat de resultaten in wezen op maat zijn ontworpen voor die specifieke gegevens en tijdsperiode.

Backtesting en optimalisatie bieden een handelaar veel voordelen, maar dit is slechts een deel van het proces bij het evalueren van een mogelijk handelssysteem. De volgende stap van een handelaar is om het systeem toe te passen op historische gegevens die niet zijn gebruikt in de initiële backtestingsfase.

In-sample versus out-of-sample data

Bij het testen van een idee op historische gegevens is het nuttig om een ​​tijdsperiode met historische gegevens te reserveren voor testdoeleinden. De eerste historische gegevens waarop het idee is getest en geoptimaliseerd, worden de in-sample-gegevens genoemd. De dataset die is gereserveerd, staat bekend als out-of-sample data. Deze opzet is een belangrijk onderdeel van het evaluatieproces omdat het een manier biedt om het idee te testen op gegevens die geen onderdeel waren van het optimalisatiemodel.

Als gevolg hiervan zal het idee op geen enkele manier zijn beïnvloed door de gegevens die niet in de steekproef zijn opgenomen, en zullen handelaren kunnen bepalen hoe goed het systeem zou kunnen presteren op nieuwe gegevens, dwz in de praktijk.

Voorafgaand aan het initiëren van backtesting of optimalisatie, kunnen traders een percentage van de historische gegevens opzij zetten om te reserveren voor out-of-sample testing. Een methode is om de historische gegevens in drieën te verdelen en een derde te scheiden voor gebruik bij testen buiten de steekproef. Alleen de in-sample-gegevens mogen worden gebruikt voor de eerste tests en eventuele optimalisatie.

De onderstaande figuur toont een tijdlijn waarin een derde van de historische gegevens wordt gereserveerd voor testen buiten de steekproef en tweederde wordt gebruikt voor testen in de steekproef. Hoewel de onderstaande afbeelding de gegevens buiten de steekproef aan het begin van de test weergeeft, is bij typische procedures het deel buiten de steekproef onmiddellijk voorafgaand aan de voorwaartse prestatie.

Correlatie verwijst naar overeenkomsten tussen de prestaties en de algemene trends van de twee datasets. Correlatiestatistieken kunnen worden gebruikt bij het evalueren van strategische prestatierapporten die tijdens de testperiode zijn gemaakt (een functie die de meeste handelsplatforms bieden). Hoe sterker de correlatie tussen de twee, hoe groter de kans dat een systeem goed zal presteren bij prestatietests en live trading.

De onderstaande afbeelding illustreert twee verschillende systemen die zijn getest en geoptimaliseerd op in-sample data, en vervolgens zijn toegepast op out-of-sample data. De grafiek aan de linkerkant toont een systeem dat duidelijk curve-fit was om goed te werken met de in-sample data en volledig faalde met de out-of-sample data. De grafiek aan de rechterkant toont een systeem dat goed presteerde op zowel in- als out-of-sample data.

Zodra een handelssysteem is ontwikkeld met behulp van in-sample data, is het klaar om te worden toegepast op de out-of-sample data. Handelaren kunnen de prestatieresultaten tussen de in-sample en out-of-sample data evalueren en vergelijken.

Als er weinig correlatie is tussen de in-sample en out-of-sample testen, zoals de linkergrafiek in de bovenstaande afbeelding, is het systeem waarschijnlijk overgeoptimaliseerd en zal het niet goed presteren in live trading. Als er een sterke correlatie is in de prestaties, zoals te zien is in de rechter grafiek, omvat de volgende evaluatiefase een aanvullend type out-of-sample testen, bekend als forward performance testing.

Forward Performance Testing Basics

Voorwaartse prestatietests, ook wel papieren handel genoemd, bieden handelaren een andere set niet-steekproefgegevens waarop ze een systeem kunnen evalueren. Forward performance testing is een simulatie van daadwerkelijke handel en omvat het volgen van de systeemlogica in een live markt. Het wordt ook wel papieren handel genoemd, aangezien alle transacties alleen op papier worden uitgevoerd; dat wil zeggen dat het invoeren en verlaten van transacties wordt gedocumenteerd samen met eventuele winst of verlies voor het systeem, maar er worden geen echte transacties uitgevoerd.

Een belangrijk aspect van voorwaartse prestatietests is het exact volgen van de systeemlogica; anders wordt het moeilijk, zo niet onmogelijk, om deze stap van het proces nauwkeurig te evalueren. Handelaren moeten eerlijk zijn over alle in- en uitgangen van transacties en gedrag vermijden zoals cherry picking transacties of het niet opnemen van een transactie op papier waarin wordt gerationaliseerd dat “ik die transactie nooit zou hebben gedaan.” Als de transactie zou hebben plaatsgevonden volgens de logica van het systeem, zou deze moeten worden gedocumenteerd en geëvalueerd.

Veel makelaars bieden een gesimuleerde handelsrekening waar transacties kunnen worden geplaatst en de bijbehorende winst en verlies kan worden berekend. Het gebruik van een gesimuleerd handelsaccount kan een semi-realistische sfeer creëren waarin u kunt oefenen met handelen en het systeem verder kunt beoordelen.

De bovenstaande afbeelding toont ook de resultaten van voorwaartse prestatietests op twee systemen. Nogmaals, het systeem dat in de linkerkaart wordt weergegeven, presteert niet veel verder dan de eerste tests op in-sample-gegevens. Het systeem dat in de rechter grafiek wordt getoond, blijft echter goed presteren in alle fasen, inclusief de voorwaartse prestatietests. Een systeem dat positieve resultaten laat zien met een goede correlatie tussen in-sample, out-of-sample en forward performance testing is klaar om geïmplementeerd te worden in een live markt.

Het komt neer op

Backtesting is een waardevol hulpmiddel dat beschikbaar is op de meeste handelsplatforms. Het verdelen van historische gegevens in meerdere sets om in-sample en out-of-sample testen mogelijk te maken, kan handelaren een praktische en efficiënte manier bieden om een ​​handelsidee en -systeem te evalueren. Aangezien de meeste handelaren optimalisatietechnieken gebruiken bij backtesting, is het belangrijk om het systeem vervolgens te evalueren op basis van schone gegevens om de levensvatbaarheid ervan te bepalen.

Het voortzetten van de out-of-sample testing met forward performance testing zorgt voor een extra veiligheidslaag voordat een systeem op de markt wordt gebracht met een risico op echt geld. Positieve resultaten en een goede correlatie tussen in-sample en out-of-sample backtesting en forward performance testing verhogen de kans dat een systeem goed zal presteren in de daadwerkelijke handel.