Naš backtest je med 100 oddanimi naročili štel 91 izpolnitev. Pri papirnem trgovanju jih je ista strategija dosegla 63. Mediana časa od signala do potrditve naročila je znašala 84 milisekund, 12 neizpolnjenih papirnih naročil z omejeno ceno pa je backtest štel za izpolnjena takoj, ko se je cena dotaknila njihove ravni.
Ta 28-točkovna razlika je bila videti kot težava strategije, dokler nismo ločili odločitev o naročilu od odločitev o njegovi izpolnitvi. Strategija je v obeh izvedbah izbrala skoraj enako smer, velikost in ceno. Razlikovala se je pot izvršitve: nekatera naročila so prispela pozno, nekatera so ostala odprta, nekatera pa so naletela na trg, ki se je že premaknil.
Kaj pomeni ujemanje naročil med backtestom in papirnim trgovanjem?
Ujemanje pomeni, da backtest in papirni sistem na podlagi istih razpoložljivih informacij sprejemata primerljive odločitve, nato pa izrecno upoštevata različna modela izvršitve. To ne pomeni, da se mora vsaka simulirana izpolnitev ujemati s papirno. Zgodovinske sveče ne morejo rekonstruirati položaja v čakalni vrsti, papirna platforma pa lahko uporablja drugačen model ujemanja kot borza v živo.
Uporabno vprašanje je ožje: ali lahko za vsako naročilo, ki ga je strategija nameravala oddati, pojasnite, kaj se je zgodilo zatem? Število poslov in končni donos prikrijeta preveč. Za vsako odločitev vodite povezan zapis, v katerem se isti stabilni ID odločitve strategije prenaša skozi dogodke signala, naročila, potrditve, preklica in izpolnitve.
| Primerjava | Kaj razkrije | Primer |
|---|---|---|
| Čas odločitve in smer | Različni vhodni podatki ali razporejanje opravil | Papirni signal se sproži eno svečo pozneje |
| Zahtevana količina in cena | Zaokroževanje, pravila tveganja ali pravila platforme | Backtest odda 0.013 BTC; papirni sistem zaokroži na 0.01 |
| Spremembe stanja naročila | Vrzel pri oddaji, zavrnitvi ali preklicu | Backtest obravnava zahtevo za preklic kot že izveden preklic |
| Količina in cena izpolnitve | Preoptimističen model izpolnjevanja ali premik trga | Dotaknjena omejena cena pomeni polno izpolnitev v backtestu, v papirnem sistemu pa naročilo ostane neizpolnjeno |
Zakaj je bilo toliko zgrešenih naročil z omejeno ceno, ki se je je trg dotaknil?
Naš backtest je uporabljal enominutne sveče. Če je omejena cena znotraj razpona med najvišjo in najnižjo ceno sveče, je naročilo označil kot izpolnjeno. To pravilo odgovori na vprašanje, ali se je trg v neki točki te minute trgoval po tej ceni. Ne pove pa, ali je bilo naše naročilo takrat aktivno, ali je bilo prvo v čakalni vrsti in ali se je po njegovem prihodu trgovalo z zadostno količino.
Papirni dnevniki so razkrili težavo s časovnimi zamiki. Strategija je izračunala signal ob 12:03:00.000, vendar je dogodek s tržnimi podatki do procesa za naročila prispel 31 milisekund pozneje. Preverjanje tveganja je vzelo še 22 milisekund, simulator platforme pa je naročilo potrdil 31 milisekund za tem. Pri hitrem premiku lahko zgodovinska sveča ustvari vtis, da je bila cena dosegljiva, čeprav je omejeno naročilo prispelo, ko je trg to ceno že zapustil.
Pojavila se je še ena težava: dvanajst papirnih naročil je bilo še vedno odprtih, ko je backtest že nadaljeval. Simulator je zahtevo za preklic sprejel, kot da je naročilo takoj izginilo. V papirnem sistemu je potrditev preklica prispela pozneje; v tem času so se izpolnila tri naročila. To je spremenilo pozicijo, ki jo je videl naslednji signal.
Kako izmerim razliko, ne da bi se zavedel?
Začnite z majhnim poročilom o uskladitvi, razvrščenim po namenu naročila. Imejte imenovalec jasno prikazan. »Stopnja izpolnitve« lahko pomeni število izpolnjenih naročil na vsa oddana naročila, izpolnjeno količino deljeno z zahtevano količino ali število izpolnjenih naročil med tistimi, ki so dosegla platformo. Vsaka možnost odgovarja na drugo vprašanje.
- Dogodke povežite z ID-jem odločitve ali ID-jem naročila stranke, ne s časovnim žigom, ki ga ugibate naknadno.
- Najprej primerjajte odločitve: čas signala, smer, zahtevano količino, vrsto naročila in omejeno ceno.
- Pri ujemajočih se odločitvah primerjajte zakasnitev potrditve, zavrnitve, čas odprtja, čas preklica, izpolnjeno količino in ceno izpolnitve, tehtano glede na obseg.
- Stopnje prikažite glede na vrsto naročila in tržne razmere. Skupna 63-odstotna stopnja izpolnitve lahko prikriva 90 % pri tržnih naročilih in 35 % pri pasivnih naročilih z omejeno ceno.
Kategorije jasno ločite. Zavrnjeno naročilo ni neizpolnjeno naročilo; delno izpolnjeno naročilo ni v celoti izpolnjeno; naročilo, preklicano po delni izpolnitvi, pa je vseeno spremenilo pozicijo. Štejte tako naročila kot zahtevano količino, da skupina drobnih naročil ne bo prikazala boljšega rezultata, kot je v resnici.
Kaj je treba spremeniti v backtestu?
Uporabite pravilo izpolnitve, ki ustreza ločljivosti podatkov in predvidenemu vedenju naročila. Pri svečah je dotik omejene cene dokaz, da bi se naročilo lahko izpolnilo, ne pa dokaz, da se je. Lahko konservativno modelirate delne izpolnitve, zahtevate, da gre cena prek omejene cene, ali izključite pasivna naročila, pri katerih ni mogoče oceniti položaja v čakalni vrsti. Vsaka izbira odgovarja na drugo vprašanje; dokumentirajte jo in rezultat primerjajte z več kot enim verjetnim pravilom.
Modelirajte tudi stanje naročila. Naročilo ostane aktivno, dokler sistem ne prejme končnega dogodka, zahteva za preklic pa ne odpravi izpostavljenosti. Če lahko strategija odda drugo naročilo, medtem ko je prvo še v obdelavi, mora backtest prikazati to tekmo ali jo po zasnovi preprečiti.
Model izpolnitve je trditev o tem, kaj bi se lahko zgodilo z vašim naročilom. Določite pravilo, ki ga znate pojasniti, nato pa ga preverite glede na papirne dnevnike.
Pri naši 28-točkovni razliki ni bilo presenetljivo, da je backtest z minutnimi svečami precenil pasivne izpolnitve. Presenetljivo je bilo, da se je pozicija strategije razšla še pred naslednjo odločitvijo, ker časovnega zamika pri preklicu nismo upoštevali. Ko smo popravili model stanja naročila in nehali vsako dotaknjeno omejeno ceno obravnavati kot izpolnitev, je bila primerjava s papirnim trgovanjem manj laskava, a uporabnejša.
To je praktično merilo ujemanja: vsaka pomembna razlika med simuliranim in papirnim trgovanjem ima zabeležen vzrok, backtest pa ne trdi, da je nekaj gotovo, kadar njegovi podatki tega ne morejo potrditi.
← Vse objave


