AI-strateegia agent võib anda kehtiva järeltesti, kasutades samal ajal teavet, mida ei olnud olemas hetkel, mil selle tehingud pidanuks toimuma. Kood käivitub. Omakapitali kõver näib usutav. Signaal võib isegi mõistlik olla. Ometi on ajatempel, ühendamine või hiljem parandatud andmeväli andnud sellele vaikselt homse vastuse.
Lahendus on lisada andmete kättesaadavuse aeg uuringu kokkuleppesse. Iga sisendi puhul peab olema selge vastus kahele küsimusele: millist aega see väärtus kirjeldab ja mis hetkest alates oleks strateegia saanud sellest teada?
Kuidas näeb tulevikuteabe kallutatus välja AI loodud strateegias?
Ilmselge näide on signaal, mis arvutatakse sama küünla sulgemishinna põhjal, mille juures tehing seejärel tehakse. Kui strateegia vajab otsustamiseks sulgemishinda, ei saa ta samal ajal selle hinnaga kaubelda. Andmeallikate ühendamisel või mugavate vaikeväärtuste valimisel loovad agendid sageli siiski peenemaid versioone sellest veast.
Oletame, et mudel arvutab iga minuti lõpus 20 küünla libiseva keskmise ja võtab positsiooni siis, kui sulgemishind selle ületab. Kui järeltestis tehakse tehing sama sulgemishinnaga, on kasutatud küünla viimast tehinguhinda enne, kui see hind strateegiale kättesaadav oli. Korralduse nihutamine järgmise küünla avamishinnale võib olla mõistlik lähendus, kuigi turukorralduse puhul tuleb arvestada ka tasude ja hinnamõjuga.
Nüüd oletame, et tunnus on päevane aktsia fundamentaalnäitaja või krüpto avatud positsioonide mahu hetkeseis. Rea kuupäev võib olla esmaspäev, kuid väärtus võidi avaldada alles pärast esmaspäevast sulgemist või seda hiljem parandada. Kuupäev ei ole kättesaadavuse ajatempel.
Kuidas peaksin strateegia sisendid ajatemplitega varustama?
Võimaluse korral säilita vähemalt kolm aega: periood, mida väärtus kirjeldab, aeg, mil avaldaja selle väljastas, ja aeg, mil sinu süsteem selle vastu võttis. Strateegia otsustushetke teabekogumisse võivad kuuluda ainult selleks hetkeks kättesaadavad väärtused.
| Väli | Millele see vastab | Tüüpiline lõks |
|---|---|---|
| Sündmuse aeg | Millal turusündmus toimus? | Küünla sulgemishinna kasutamine enne küünla valmimist |
| Avaldamisaeg | Millal allikas selle väärtuse avaldas? | Päeva lõpu kuupäevasildi käsitlemine nii, nagu avaldati väärtus turu avamisel |
| Süsteemi jõudmise aeg | Millal sai see uuringusüsteemile kättesaadavaks? | Müüja või andmetöötlustoru viivituse eiramine |
| Paranduse aeg | Millal see versioon talletati või parandati? | Parandatud ajaloo lisamine nii, nagu oleks see algne versioon |
1-minutilise strateegia puhul ei ole 1-sekundiline viivitus automaatselt tähtsusetu. Mõju sõltub otsuse tegemise ajast ja signaali sisust. Kui sisend on lõpetatud tunnipõhine statistika, võib viivitus vaevu lugeda. Kui tegu on korralduse esitamise lähedal mõõdetud order book'i tasakaalustamatusega, võib see tehingu suuna ümber pöörata.
Kas ajahetkepõhine andmehoidla saab andmelekke ära hoida?
Sellest on abi, kui „ajahetkepõhine” tähendab, et saad pärida väärtuse, mis oli teada ajaloolisel otsustushetkel, koos sel hetkel kehtinud versiooniga. Tabel, milles on üksnes ajaloolised kuupäevad, võib siiski sisaldada nende kuupäevade kohta tänaseks parandatud väärtusi.
Säilita iga kirje puhul kehtivusvahemik ja kättesaadavuse ajatempel ning hoia parandatud versioonid alles, selle asemel et vanu üle kirjutada. Seejärel sõnasta ajaloolised päringud selgesõnaliselt: tagasta uusim versioon, mis oli simulatsiooni otsustushetkeks kättesaadav. See on eriti tähtis fundamentaalnäitajate, indeksisse kuulumise, majandusnäitajate avaldamise ja müüja puhastatud andmekogumite puhul.
Siin on ka üks ilustamata töökorralduslik konks: täiuslik avaldamise ajatempel ei aita, kui andmete laadimise töö käivitus 20 minutit hiljem. Kui ajalooline andmehoidla süsteemi jõudmise aega ei talleta, kasuta konservatiivset viivitust ja ütle see selgelt välja. Täpsus, mida allikas kunagi ei salvestanud, on vaid ilustus.
Millised kontrollid avastavad tulevikuteabe kallutatuse enne paberkaubandust?
Palu uuringuagendil väljastada koos järeltestiga tunnuste ja korralduste ajajoon. Salvesta iga otsuse puhul iga tunnuse allika viimane kättesaadavusaeg, otsuse aeg, korralduse aeg ja mudeldatud täitmisaeg. Lükkagi tagasi kõik read, kus sisend saabus pärast otsust.
- Nihuta signaale ühe küünla võrra edasi ja võrdle tulemusi. Tulemuste järsk halvenemine võib paljastada sõltuvuse sulgemishinnast sulgemishinnani arvutatud ajastusest, kuid see on diagnostika, mitte tõend andmelekke kohta.
- Piira iga allika andmed ajaloolise lõikeajani, käivita andmetöötlus uuesti ja võrdle saadud tunnuseid talletatud ajalooliste tunnustega.
- Asenda kahtlane tunnus konstantse väärtusega. Kui tootlus jääb peaaegu samaks, kontrolli, kas kood kasutas üldse mõeldud aegrida.
- Lase andmetöötlusest läbi teadlikult võimatu tulevikutunnus. Valideerimine peab andma selge vea, kui selle kättesaadavusaeg on otsuse ajast hilisem.
Need kontrollid ei tõesta, et strateegia on veatu. Need toovad esile konkreetsed ajastuseeldused ja aitavad avastada levinud viise, kuidas neid eeldusi rikutakse.
Kas paberkaubandus tõestab, et järeltestis andmeleket polnud?
Ei. Paberkaubandus võib paljastada, et reaalajas andmevoog hilineb, andmed puuduvad või need on ajaloolise vooga võrreldes teisiti joondatud. See ei tõesta, et vanad treeningtunnused kajastasid seda, mis toona teada oli. Mudel võib ka lihtsalt lakata andmelekke eelisest kasu saamast, sest tulevik, mida see kogemata nägi, on nüüd olevik.
Kasuta paberkaubandust kooskõlakontrollina: võrdle reaalajas tunnuste väärtusi, otsuste ajatemplid, korralduste loomist ja mudeldatud täitmisi järeltesti määratlustega. Erinevuste korral uuri välja täpne sisend ja kellaaeg. Uuringuagentide tiim, kes suudab selgitada iga otsuse teabekogumit, teeb kasulikku uurimistööd. Tiim, kes näitab ainult sujuvat kõverat, on jätnud kõige keerulisema auditi tegemata.
← Kõik postitused


