Agent za strategije z AI lahko pripravi veljaven test za nazaj, pri tem pa uporabi informacije, ki v času predvidene izvedbe poslov še niso obstajale. Koda se zažene. Krivulja kapitala je videti verjetna. Tudi signal je lahko smiseln. Toda časovni žig, združevanje podatkov ali popravljeno podatkovno polje mu je potiho razkrilo jutrišnji odgovor.
Rešitev je, da čas razpoložljivosti postane del raziskovalnega dogovora. Za vsak vhodni podatek moramo jasno odgovoriti na dve vprašanji: katero obdobje ta vrednost opisuje in kdaj bi jo strategija lahko prvič poznala?
Kako je videti pristranskost pogleda v prihodnost v strategiji, ustvarjeni z AI?
Očitni primer je signal, izračunan iz zaključne vrednosti iste sveče, ki mu sledi izvršitev po tej zaključni vrednosti. Če strategija za odločitev potrebuje zaključno ceno, po njej ne more tudi trgovati. Toda pri združevanju virov podatkov ali izbiri priročnih privzetih nastavitev agenti pogosto ustvarijo manj očitne različice te napake.
Predpostavimo, da model ob zaključku vsake minute izračuna drseče povprečje za 20 sveč in zavzame pozicijo, ko ga zaključna cena preseže. Če se posel v testu za nazaj izvrši po isti zaključni ceni, strategija uporabi zadnji posel sveče, še preden ji je bil na voljo. Zamik naročila do odprtja naslednje sveče je lahko razumen približek, vendar je treba pri tržnem naročilu še vedno upoštevati provizije in vpliv na ceno.
Zdaj naj bo značilka dnevni temeljni kazalnik delnice ali posnetek odprtih pozicij v kriptovaluti. Datum vrstice je lahko ponedeljek, vendar je bila vrednost morda objavljena šele po ponedeljkovem zaprtju trga ali pa pozneje popravljena. Datum ni časovni žig razpoložljivosti.
Kako naj časovno označim vhodne podatke strategije?
Kjer vir to omogoča, hranite vsaj tri časovne podatke: obdobje, ki ga vrednost opisuje, čas objave pri izdajatelju in čas prejema v vašem sistemu. Nabor informacij strategije ob času odločitve lahko vključuje samo vrednosti, ki so bile do takrat na voljo.
| Polje | Na katero vprašanje odgovarja | Pogosta past |
|---|---|---|
| Čas dogodka | Kdaj se je zgodil tržni dogodek? | Uporaba zaključne vrednosti sveče, preden se ta zaključi |
| Čas objave | Kdaj je vir objavil to vrednost? | Obravnavanje oznake ob koncu dneva kot objave ob odprtju trga |
| Čas zajema | Kdaj jo je ta raziskovalni sistem lahko uporabil? | Neupoštevanje zamika ponudnika ali podatkovnega cevovoda |
| Čas popravka | Kdaj je bila ta različica zabeležena ali popravljena? | Dopolnjevanje zgodovine s popravljenimi podatki, kot da bi bili izvirni |
Pri strategiji z obdobjem 1 minute enosekundni zamik ni samodejno zanemarljiv. Njegov pomen je odvisen od tega, kdaj se sprejme odločitev in kaj signal uporablja. Če je vhodni podatek zaključena urna statistika, je zamik morda skoraj nepomemben. Če gre za neravnovesje v knjigi naročil, izmerjeno tik pred oddajo naročila, pa lahko obrne posel.
Ali lahko podatkovna shramba s podatki, dostopnimi ob določenem času, prepreči uhajanje?
Lahko pomaga, če »dostopno ob določenem času« pomeni, da lahko pridobite vrednost, ki je bila znana ob zgodovinskem času odločitve, skupaj z različico, veljavno takrat. Tabela z zgodovinskimi datumi lahko še vedno vsebuje današnje popravljene vrednosti za te datume.
Za vsak zapis hranite obdobje veljavnosti in čas razpoložljivosti ter ohranite različice, namesto da jih prepisujete. Nato izrecno določite zgodovinske poizvedbe: vrnejo naj zadnjo različico, ki je bila na voljo ob simuliranem času odločitve. To je zlasti pomembno pri temeljnih kazalnikih, sestavi indeksov, ekonomskih objavah in naborih podatkov, ki jih je očistil ponudnik.
V praksi se pojavi še ena manj privlačna zagata: popoln čas objave ne pomaga, če se je opravilo za zajem podatkov zagnalo 20 minut prepozno. Če zgodovinska shramba ne beleži časa zajema, uporabite konservativen zamik in to jasno povejte. Natančnost, ki je vir nikoli ni zabeležil, je zgolj okras.
Katera preverjanja odkrijejo pristranskost pogleda v prihodnost pred simuliranim trgovanjem?
Raziskovalni agent naj poleg testa za nazaj pripravi še časovnico značilk in naročil. Za vsako odločitev zabeležite zadnji čas razpoložljivosti vira za vsako značilko, čas odločitve, čas oddaje naročila in predvideni čas izvršitve. Zavrnite vsako vrstico, v kateri je vhodni podatek prispel po odločitvi.
- Zamaknite signale za eno svečo naprej in primerjajte rezultate. Velik padec lahko razkrije odvisnost od časovnega razmika med zaključnimi cenami, vendar gre za diagnostični preizkus, ne za dokaz uhajanja.
- Vse vire omejite na zgodovinski presečni čas, znova zaženite podatkovni cevovod in primerjajte dobljene značilke s shranjenimi zgodovinskimi značilkami.
- Sumljivo značilko zamenjajte s konstanto. Če rezultati ostanejo skoraj enaki, preverite, ali je koda sploh uporabila predvideno časovno vrsto.
- Skozi cevovod spustite namenoma nemogočo značilko iz prihodnosti. Preverjanje mora glasno spodleteti, ko njen čas razpoložljivosti preseže čas odločitve.
Ta preverjanja strategije ne potrjujejo. Omogočijo pa, da so določene časovne predpostavke vidne, in odkrijejo pogoste kršitve teh predpostavk.
Ali simulirano trgovanje dokazuje, da v testu za nazaj ni bilo uhajanja?
Ne. Simulirano trgovanje lahko razkrije, da je podatkovna pot v živo zakasnjena, da ji podatki manjkajo ali da so podatki poravnani drugače kot v zgodovinskih podatkih. Ne more pa potrditi, da so stare učne značilke odražale takrat znane informacije. Model lahko tudi izgubi korist zaradi uhajanja preprosto zato, ker je prihodnost, ki jo je po naključju videl, zdaj postala sedanjost.
Simulirano trgovanje uporabite za preverjanje skladnosti: primerjajte vrednosti značilk v živo, časovne žige odločitev, ustvarjanje naročil in predvidene izvršitve z opredelitvami iz testa za nazaj. Če se razlikujejo, sledite natančnemu vhodnemu podatku in uri. Ekipa agentov, ki zna pojasniti nabor informacij za vsako odločitev, opravlja koristno raziskovalno delo. Ekipa, ki vam lahko pokaže le gladko krivuljo, je preskočila najtežji del revizije.
← Vse objave


