23. august 2026 · uuringud

Sinu tagasittestil on kellaprobleem, isegi kui kõik ajatemplid on õiged

Sinu tagasittestil on kellaprobleem, isegi kui kõik ajatemplid on õiged

Tagasittestimise kõige ohtlikum ajastusviga võib jääda märkamatuks isegi pärast täiuslikku ajatemplite kontrolli. Kahel sündmusel võib olla ajatempel 10:00:00.000, kuid need võisid toimuda järjekorras, mille sinu simulaator lihtsalt ära arvas.

See on oluline alati, kui strateegia reageerib enamale kui sulgunud küünaldele: noteeringu uuendusele, tehingule, rahastusteatele, börsi staatuse muutusele või enda orderi kinnitusele. Ajatempel ütleb, millal sündmus märgistati. See ei pruugi öelda, millal sinu strateegia sai sellele reageerida.

Mida sündmuste järjestus muudab?

Kujutle strateegiat, mis ostab siis, kui parim müügihind langeb alla $100.00. Samal millisekundil salvestab andmevoog müügihinna uuenduse tasemele $99.99 ja tehingu hinnaga $99.99. Kui sinu tagasittest töötleb kõigepealt tehingu ja seejärel noteeringu, näeb strateegia uut müügihinda ning esitab orderi. Kui noteering töödeldakse esimesena, võib see samuti sobida, kui sündmus oli selleks ajaks tegelikult kättesaadav. Aga kui tehing tarbis kuvatud likviidsuse enne orderi saabumist, on täitmine hinnaga $99.99 väljamõeldis.

Ainuüksi ridade ajatemplite järgi sortimine jätab simulaatori otsustada, millises järjekorras sama ajaga sündmusi töödelda. Faili järjekord, sümbolite järjekord või andmebaasi päringuplaan võib kujuneda juhuslikuks täitmisreegliks. Omakapitali kõver võib muutuda, kuigi algandmed jäid samaks.

Selle suvalisuse nägemiseks on lihtne viis: sorteeri sama ajaga sündmused saabumisjärjestuse asemel sümboli nime järgi. Mitme varaga strateegia võib siis käituda erinevalt lihtsalt selle tõttu, et üks ticker sorteeritakse teisest ettepoole.

Milliseid kellaaegu peaks tagasittest säilitama?

Turuandmete ja orderite käsitlemisega kaasneb sageli mitu eri aega. Säilita allika pakutud väljad ja nimeta nende tähendused täpselt. Paljude andmevoogude puhul on kasulikud nii börsi ajatempel kui ka kohalik vastuvõtuaeg; kumbki ei anna universaalset tõde selle kohta, mida iga osaline nägi.

KellaaegMida see salvestabMida see üksi tõestada ei saa
Börsi sündmuse aegMillal börsi sõnul sündmus toimusMillises järjekorras teine andmevoog või sinu protsess seda märkas
VastuvõtuaegMillal sinu andmekoguja sõnumi vastu võttisMillal sinu strateegia selle töötlemise lõpetas
Otsuse aegMillal sinu kood signaali hindasEt noteeritud hind oli endiselt saadaval
Orderi saabumisaegMillal börs sai orderit täitma hakataTäitmist, kui sobitamisreeglid ja likviidsus seda ei toeta

Kui ajaloolistel andmetel vastuvõtuajad puuduvad, ütle, mida eeldad. Tagasittest võib töödelda börsi sündmusi järjestikku ja rakendada otsuse ning orderi börsile saabumise vahele fikseeritud 5 ms viivitust. See on mudel, mitte taastatud ajalugu. Kui sama ajatempliga börsisündmuste jaoks järjekorranumbreid pole, on ka viigi lahendamise reegel eeldus.

Kuidas modelleerida samaaegseid sündmusi?

Esmalt säilita allika järjekorranumbrid, kui need olemas on. Järjekorranumber annab oma andmevoo piires tugevama järjestuse kui ajatempel, kuigi eri kanalite või toodete järjekorranumbrid võivad kuuluda eraldi ruumidesse.

Seejärel tee simulaatori töötlemisreegel selgesõnaliseks. Otsusta iga sündmuse puhul, kas see uuendab strateegia käsutuses olevat teavet, muudab saadaval olevat likviidsust, käivitab orderi või kinnitab orderi. Need on eri toimingud; nende kokkusurumine üheks „rea töötlemiseks” laseb võimatutel täitmistel sisse hiilida.

  1. Rakenda ainult turuteavet, mis on strateegia otsuse tegemise ajaks kohale jõudnud.
  2. Loo order ja vii see seejärel mudeldatud börsile saabumise ajani.
  3. Luba täitmine ainult saabumisjärgse sobiva likviidsuse vastu, arvestades selle orderitüübi täitmiseeldusi.
  4. Salvesta iga simuleeritud täitmise puhul kasutatud sisendid, sündmuste järjestus ja viivitus.

Küünlapõhise strateegia puhul võib see olla rohkem keerukust, kui küsimus nõuab. Kui signaal kasutab sulgunud 1-minute küünlaid ja orderid täidetakse järgmise küünla avahinnaga konservatiivse kulumudeliga, ei pruugi millisekundi murdosade järjestus uuringu järeldust muuta. Oluline on, et ajastuse detailsus vastaks väitele, mille tagasittest esitab.

Kas saan usaldada tagasittestimist, kui saabumisaja andmed puuduvad?

Saad seda siiski kasutada, kuid jäta piirang nähtavaks. Kui strateegia kaupleb aeglaselt ja riskipiirid on laiad, võib mõni millisekund olla tähtsusetu. Kui strateegia reageerib kiiresti kaduvatele noteeringutele, võistleb järjekohas või sõltub börsidevahelisest juhtivuse-viivituse signaalist, võivad puuduvad saabumisajad olla tulemuse seisukohalt keskse tähtsusega.

Kriitikud märgivad õigusega, et täpne sündmuste ajastus võib luua näilise täpsuse. Ajaloolised andmevood on puudulikud, kellad triivivad ja börside ajatemplid ei näita kõiki võrguhüppeid. Nanosekundiväljadega simulaator võib ikka kasutada jämedat täitmiseeldust.

Seega kontrolli tundlikkust, selle asemel et väita kindlust: korda läbimängimist usutavate samaaegsete sündmuste järjestusreeglite ja orderiviivitustega ning võrdle tehingute arvu, täitmishinda ja seda, millised signaalid püsima jäävad. Kui tulemus sõltub järjestusest, mida andmed ei võimalda kindlaks teha, tuleb see sõltuvus uurimisraportis välja tuua. Tagasittest võib olla kasulik ka ebatäiusliku kellaga. See peab lihtsalt tunnistama, millist aega ta tegelikult teab.

sündmuspõhine tagasittestiminetäitmise modelleerimineturuandmedstrateegiauuringud
← Kõik postitused