Backtesting

Det finns ett antal grundläggande tillvägagångssätt för backtesting som du måste vara medveten om.

 backtesting

backtesting

Först och möjligen det farligaste är om du möjliggör ditt system att se ”framtida data” – med det här menar jag att du inte får låta dina ”backtester” få tillgång till data som eventuellt kan komma i framtiden. Detta kan vara mycket subtilt och svårt att felsöka och inte särskilt uppenbart. Det bästa sättet att ta sig runt detta problem är att vara riktigt disciplinerad i din kodning och att isolera data baserat på dess ålder.

För det andra, och en potentiell fara för de som jobbar med gratis data, är Survivor Bias. Det är här aktier har fallit ut ur indexen under åren och därför är ditt första dataset redan partisk till förmån för de som är kvar. Det finns inget enkelt sätt runt detta. Jag tror att om testningen är noggrann och dina provstorlekar är tillräckligt stora så kommer det inte nödvändigtvis att vara ett problem.

Tredje och viktigaste, undvik curvefitting. Med detta menar jag att om du lägger till otaliga parametrar till din modell, så skall du inte bli förvånad om du får väldigt bra avkastning vid en backtest. Less is more är ett bra motto här. Du bör sträva efter att minska dina parametrar till ett absolut minimum så att din modell kommer att fungera inom de bredaste områdena och typerna av marknaden. Tecknet på en bra modell är hur få, och hur enkla parametrarna är. Du bör sträva efter att kontinuerligt testa och minska dina parametrar tills du inte ser någon observerbar förändring av dina resultat. Detta är inte helt enkelt att göra, men avgörande, särskilt för amatörer.

Fjärde, ”ränta på ränta principen”. Jag gjorde detta misstag ett tag, min back-testmodell skulle använda avkastningen från tidigare affärer för att finansiera framtida. Det ser bra ut och hjälper dig att se effekterna av ränta på ränta principen, men det hjälper inte att testa eller verifiera hur bra din strategi är. Du måste eliminera detta från din ursprungliga modelltestning så att du bara testar sannolikheten av dina parametrar.

Fler bra källor som förklarar vad backtesting är:
Backtesting in Algorithmic Trading
Are your backtest results fooling you?