En daglig strategi som beregner signalet sitt ut fra mandagens sluttkurs, kan ikke legge inn en ordre på mandagens sluttkurs. Den kan sende ordren etter at prisen er kjent, og deretter handle til en senere pris som faktisk kan oppnås. Dette lille valget av tidspunkt kan påvirke resultatet mer enn en smart indikator.
Før du skriver signalet, bør du fastsette rekkefølgen i en daglig backtest: når baren er fullført, når strategien beregner signalet, når ordren når markedet, og hvilken pris den realistisk kan utføres til. Hvis alle disse hendelsene skjer på samme tidspunkt, har backtesten hoppet over den vanskelige delen.
Kan jeg bruke dagens sluttkurs til å handle på dagens sluttkurs?
Som regel ikke. Et signal som avhenger av den endelige sluttkursen, er først tilgjengelig etter at sluttauksjonen eller den siste handelen har funnet sted. En utførelse til samme pris forutsetter at strategien kjente resultatet tidlig nok til å delta til en pris som bidro til å fastsette resultatet.
Tenk på en enkel regel: kjøp når sluttkursen er over 20-dagers glidende gjennomsnitt. Ved mandagens sluttkurs blir regelen sann. En backtest som kjøper på mandagens sluttkurs, har brukt mandagens ferdige pris både til å ta beslutningen og til utførelsen. I en enkel modell basert på dagsbarer er den ærlige tilnærmingen å generere ordren etter at mandagens bar er fullført og tidligst utføre den ved åpningen tirsdag, med passende kostnader.
Noen strategier sender ordre til en sluttauksjon basert på informasjon som er tilgjengelig før auksjonens frist. Disse kan backtestes, men signalet må bare bruke data fra før fristen, og utførelsen må gjenspeile auksjonshandelen. «Daglig signal» alene oppfyller ingen av disse vilkårene.
Hva er riktig utførelsespris i en daglig backtest?
Det finnes ingen universelt riktig pris. Neste åpningskurs er et tydelig utgangspunkt når signalet dannes fra en fullført dagsbar og ordren sendes etterpå. Det er ingen garanti: Et gap over natten kan flytte markedet, og en markedsordre vil medføre spread, gebyrer og muligens markedspåvirkning.
For mandagssignalet ovenfor kan vi anta at sluttkursen mandag er $100, og at markedet åpner på $103 tirsdag. En backtest fra sluttkurs til sluttkurs kan vise en liten gevinst hvis den later som om kjøpet skjer til $100. En inngang ved neste åpning starter på $103. Forskjellen på $3 er ikke «slippage» som kan justeres bort; den er priskonsekvensen av at signalet først ble kjent etter mandagens sluttkurs.
| Signalet blir tilgjengelig | Mulig utførelse | Modellens forutsetning |
|---|---|---|
| Etter dagens sluttkurs | Neste handelsdags åpning | Ordren kan nå markedet før eller ved åpningen |
| Før fristen for sluttauksjonen | Sluttauksjon | Signalfunksjonen bruker bare informasjon fra før fristen; utførelse i auksjonen modelleres |
| Etter dagens sluttkurs | Senere intradagpris | Strategien venter; utførelsen krever intradagdata og en fastsatt tidsplan |
I kryptomarkeder er «daglig sluttkurs» en konvensjon, siden handelen fortsetter over tidsgrensen. En strategi kan fortsatt bruke en fullført daglig UTC-candle, men må vente til candlen er ferdig og dataene har kommet fram. Hvis datapipelinen din ferdigstiller en bar flere sekunder for sent, er det særlig vanskelig å forsvare en ordre til prisen ved tidsgrensen.
Hvordan bør jeg modellere ordre når jeg bare har dagsbarer?
Vær tydelig på hva baren kan og ikke kan fortelle deg. Daglig OHLCV kan brukes til en tilnærming basert på neste åpning, men viser ikke spreaden når ordren kommer fram, kursforløpet gjennom dagen eller om en limitordre kom inn i køen før kursen nådde grensen.
For en daglig markedsordre kan du begynne med neste åpningskurs og deretter belaste strategien for kostnadene den faktisk ville hatt: handelsplassens gebyrer, et anslag for spread og et anslag for markedspåvirkning som passer til ordrevolumet. Test kostnadene under strengere forutsetninger. Hvis resultatet avhenger av at spreaden er null eller markedspåvirkningen ubetydelig, gir dagsbarene ikke grunnlag for slik tillit.
At dagens laveste kurs krysser grensen for en limitordre, beviser ikke at ordren ble utført. Markedet kan ha handlet til den kursen før ordren kom fram, eller det kan ha vært større volum foran deg i køen enn det som ble omsatt. Dagsbarer er ofte for grove til å støtte en troverdig kømodell. Bruk mer detaljerte data hvis påstanden avhenger av intradagutførelse, eller gjør forutsetningen om utførelse bevisst konservativ og merk den tydelig.
Hvilke tidssjekker avdekker fremoverskuende informasjon i en backtest med dagsbarer?
Jeg liker noen enkle, direkte kontroller fordi de raskt avdekker forutsetningene:
- Flytt hver ordre som bygger på et signal, én handelsdag fram. Hvis resultatene faller kraftig, undersøk om den opprinnelige testen brukte sluttkursen på signaldagen som utførelsespris.
- Loggfør signalets tidspunkt, tidspunktet ordren sendes og tidspunktet den utføres, hver for seg. Tidsstemplene bør fortelle en plausibel historie uten at du må tolke dem.
- Sammenlign utførelser ved neste åpning med en senere, konservativ utførelsespris. En strategi som bare fungerer på det mest gunstige tidspunktet i baren, har et utførelsesproblem.
- Sjekk hvordan helligdager, manglende barer og markedsstengninger påvirker «neste handelsdag». Neste kalenderdag er ikke nødvendigvis en handelsdag.
Et skift på én handelsdag er en diagnostisk kontroll, ikke en universell utførelsesmodell. En langsom porteføljejustering, en strategi for sluttauksjonen og et kryptosystem som handler kontinuerlig, trenger ulike klokker. Poenget er å gjøre tidspunktet synlig.
Gjør daglige data en backtest mindre nyttig?
Nei. Daglige data kan passe svært godt for en strategi der beslutninger og holdeperioder måles i dager eller uker. De er nyttige for å vurdere om en overordnet regel er verdt å undersøke nærmere. De blir misvisende når backtesten hevder å beregne utførelser presist, selv om barene ikke viser nok til det.
Jeg har sett mer enn én strategi forbedre seg dramatisk fordi noen endret «signal ved sluttkurs, utførelse ved sluttkurs» til «signal ved sluttkurs, utførelse ved neste åpning». Det resultatet kan være skuffende, men det er verdifullt: Det viser om ideen holder når den faktisk blir mulig å handle på. Oppbevar tidsreglene sammen med strategikoden. Ellers vil neste optimaliseringsrunde i det stille føre tilbake den umulige utførelsen.
← Alle innlegg


