Backtestning utan självbedrägeri
En historisk simulering är ett forskningsverktyg, inte en tidsmaskin eller ett löfte om verkliga resultat.

Skriv regeln innan du granskar svaret
Ett historiskt test tillämpar angivna beslutsregler på historiska data och beräknar vad en modellerad följd av affärer skulle ha gett. Värdet ligger i att pröva en hypotes mot belägg. Om regeln ändras varje gång ett förlustexempel dyker upp blir övningen ett sätt att beskriva det förflutna snarare än att testa en upprepbar beslutsprocess.
Börja med instrumenturval, observationsintervall, inträdesvillkor, utträdesvillkor, storleksmetod och kostnadsmodell. Definiera när information blir tillgänglig och när en order först skulle kunna genomföras. En strategi baserad på stängningspriset kan normalt inte anta att den kände till den slutliga stängningen i förväg och fick avslut till exakt samma pris utan ytterligare motivering.
Se upp för information som läcker bakåt
Framåtblickande bias uppstår när simuleringen använder information som inte fanns vid beslutstidpunkten. Exempel är reviderade ekonomiska data, en senare resultatrapport eller en framtida lista över indexmedlemmar. En historisk databas kan vara helt korrekt i dag men ändå olämplig för att återskapa vad en person faktiskt visste vid ett tidigare datum.
Överlevnadsbias uppstår när det testade universumet utesluter instrument som försvunnit. En strategi som bara testas på företag som fortfarande finns kan missa konkurser, avnoteringar och förvärv som påverkade de historiska möjligheterna. Samma problem kan uppstå med misslyckade kryptotoken eller nedlagda fonder. Dokumentera hur datauppsättningen hanterar försvinnanden i stället för att tyst radera besvärliga poster.
Bolagshändelser behöver en egen kontroll. Vid en split två mot en blir 100 aktier à 40 dollar till 200 aktier à ungefär 20 dollar, före andra prisrörelser. Själva splitten halverar inte positionens värde. Justerade priser tillsammans med ojusterade antal kan skapa påhittade resultat. En kontantutdelning får inte läggas till en avkastningsserie som redan inkluderar återinvesteringen. Skilj signalpriser, handlingsbara priser och positionsbokföring åt.
Gör genomförandet till en modell, inte en tjänst
Att en prisstapel når ett limitpris bevisar inte att hela din order skulle ha utförts. Köposition, tillgänglig mängd och prisets väg inom stapeln spelar roll. Om både stopp och mål nås i samma stapel visar stapeln ensam kanske inte vilket som inträffade först. Hantera sådan tvetydighet försiktigt eller använd data som kan klarlägga ordningsföljden.
Ta med spread, provisioner, finansiering, relevanta lånekostnader och rimlig prisglidning. Skattebehandlingen beror på jurisdiktion och omständigheter, så en generell simulering bör ange om resultaten är före skatt i stället för att hitta på en universell skattesats. Jämför resultat under flera kostnadsantaganden. En metod som bara lyckas med gratis och omedelbart genomförande är skör.
Skilj upptäckt från utvärdering
Att prova hundratals parameterkombinationer och presentera den bästa skapar ett urvalsproblem. Någon kombination kan se utmärkt ut av en slump. Reservera data som inte användes för att utveckla regeln och undvik att granska reserven upprepade gånger tills den blir ännu ett träningsurval. Ett framåtriktat papperstest ger en annan kontroll eftersom nya observationer kommer efter att reglerna låsts.
Redovisa misslyckade varianter, urvalsstorlek, datumintervall och antal experiment, inte bara det vinnande diagrammet. Undersök om närliggande parameterval beter sig likartat eller om en isolerad inställning skapar all vinst. Hypotetiska resultat förblir hypotetiska även när kalkylbladet är exakt till flera decimaler. Likviditet, känslor och operativa problem återskapas inte fullständigt av historisk aritmetik.
För en analyslogg över dataversioner och beräkningsändringar. En korrigerad splitjustering eller en ny inkluderad avnotering kan ändra ett resultat väsentligt, och korrigeringen bör förbli synlig. Reproducerbarhet innebär att någon annan kan återskapa samma svar från angivna indata och regler. Det betyder inte att svaret är ekonomiskt användbart, men är ett nödvändigt steg för att ta reda på det.
Återskapa en affär innan du litar på tusen
Välj en affär och återskapa tidslinjen: datans datum, faktisk tillgänglighet, beslut, orderankomst, avslut och avgifter. Tiderna är inte utbytbara. Ett meddelande som publiceras efter tisdagens stängning får inte påverka ett beslut på tisdag morgon. Tidszoner och övergångar till sommartid kan också smyga in framtida information.
Stäm sedan av hela kontot, inte bara avslutade affärer. Ingående kassa, externa flöden, realiserade resultat och värdet av öppna innehav ska förklara utgående eget kapital. En rapport över enbart stängda positioner kan dölja stora orealiserade förluster. Samtidiga signaler får inte var och en använda samma pengar. Simulatorn behöver regler för konkurrerande order, otillräcklig köpkraft och kvarvarande positioner vid periodens slut.
Testa med små syntetiska datamängder där svaret är känt. Konstant pris utan avgifter ska inte ge handelsvinst. En ren split ska bevara förmögenheten när antalet justeras korrekt. Med oförändrade affärer ska högre provision minska resultatet exakt med merkostnaden. Saknat pris kräver dokumenterad hantering, inte ett tyst avslut till noll eller obegränsad användning av en gammal notering.
Välj ett relevant jämförelsealternativ. En strategi som bara köper aktier kan tjäna pengar för att hela marknaden stiger. Jämför med en definierad passiv exponering under samma datum och konsekvent behandling av utdelningar och kassa. Tid utanför marknaden påverkar också exponering och alternativkostnad. Ett högre slutvärde är något att förklara, inte automatiskt bevis på skicklig tajmning.