Pilnībā reproducējams atpakaļtests var būt mazāk uzticams nekā tāds, kura rezultāts nedaudz svārstās. Atkārtojamība pierāda, ka iespējams divreiz iegūt vienu un to pašu atbildi; tā neko nepasaka par to, vai atbilde ir atkarīga no viena patvaļīgi izvēlēta datu momentuzņēmuma, bibliotēkas īpatnības vai slēpta noklusējuma iestatījuma.
Tas izklausās pēc argumenta pret reproducējamību, bet tā nav. Fiksējiet izpildi, lai varētu to izskaidrot. Pēc tam apzināti mainiet pieņēmumus, kuriem nevajadzētu noteikt rezultātu. Pirmais solis padara rezultātu auditējamu; otrais parāda, vai tam ir nozīme.
Ko patiesībā apliecina reproducējams atpakaļtests?
Ja viens un tas pats kods, dati, konfigurācija un nejaušības sēkla dod tos pašus darījumus un rādītājus, esat novērsuši vienu svarīgu neskaidrības avotu. Aģenta “uzlabojumu” var salīdzināt ar tā sākotnējo izpildi. Kļūdas labojumu var nošķirt no mainīta komisijas maksas grafika. Kolēģis var pārbaudīt to pašu virsgrāmatu un atrast tos pašus izpildījumus.
Taču rezultāts ir atkarīgs no visa, ko fiksējāt. Iedomājieties kriptovalūtu stratēģiju, kuras vēsturiskajā failā ir vienas minūtes sveces. Jūs saglabājat faila jaucējkodu, piesaistāt konkrētu koda versiju un katrā atkārtotā izpildē iegūstat Sharpe rādītāju 1.4. Ja pakalpojuma sniedzējs vēlāk izlabo vairākas sveces, šī nevainojamā reproducējamība joprojām raksturo veco failu. Tā nepasaka, vai signāls saglabājas izlabotajā vēsturē un vai attiecīgās sveces tobrīd bija pieejamas tieši šādā formā.
Jaucējkods ir noderīgs: tas padara atkarību redzamu. Taču tas nepierāda, ka šī atkarība ir nekaitīga.
Fiksējiet izpildi, pārbaudiet secinājumu
Man patīk nošķirt divus jautājumus. Vai varam precīzi atjaunot šo izpildi? Un vai pētījuma secinājums saglabājas pēc saprātīgām izmaiņām? Pirmajam vajadzīgs nemaināms ieraksts, otrajam — kontrolētas izmaiņas, pa vienai.
| Ko reģistrēt | Ko pēc tam mainīt | Ko tas var atklāt |
|---|---|---|
| Neapstrādāto datu versiju un kontrolsummas | Pakalpojuma sniedzēja labojumu vai otru avotu | Atkarību no labotām vai konkrētam sniedzējam raksturīgām vērtībām |
| Koda komitu un pakotņu versijas | Skaitliski ekvivalentu implementāciju | Jutīgumu pret darbību secību, noapaļošanu vai bibliotēku |
| Komisijas maksas, finansējumu un izpildījuma pieņēmumus | Pamatotu izmaksu diapazonu | Vai neliela priekšrocība ir atkarīga no neparasti labvēlīgas izpildes |
| Instrumentu kopu un dalību tajā konkrētajā laikā | Alternatīvus noteikumus tirgu iekļaušanai | Atkarību no iekļaušanas vai izslēgšanas lēmumiem |
Piemēram, pieņemsim, ka nākotnes līgumu stratēģija bāzes simulācijā uzrāda 8% gada pārsnieguma ienesīgumu. Palaidiet to vēlreiz ar par 25% augstākām taker izmaksām, pārceļot finansējumu uz nākamo novēroto norēķinu brīdi un katrā reizē izslēdzot vienu no diviem lielākajiem rezultāta devējiem. Tie nav trīs veidi, kā uzlabot modeli. Tie ir pārbaudes jautājumi: katrs noskaidro, vai kāda ticama detaļa nosaka galveno rezultātu.
Pārbaudiet katru variantu atsevišķi. Ja vienlaikus maināt datus, komisijas maksas un izpildes laiku, sliktāks rezultāts maz ko izskaidros. Ja kāds pārbaudes scenārijs nav ticams, apzīmējiet to kā stresa scenāriju, nevis pasniedziet kā iespējamo iznākumu.
Neuzskatiet identiskus baitus par skaitlisko patiesību
Daži aprēķini ir jutīgi pret darbību secību. Peldošā komata saskaitīšana nav asociatīva, tāpēc, saskaitot daudz mazu P&L vērtību citā secībā, var mainīties pēdējie cipari. Paralēla summēšana, aparatūra un bibliotēku versijas var ietekmēt arī precīzo rezultātu. Parasti tas nekaitē; dažkārt sīka skaitliska izmaiņa pārkāpj slieksni, maina pozīciju un novirza pārējo simulāciju pa citu ceļu.
Tāpēc es saglabātu gan precīzos artefaktus, gan salīdzināšanas pielaides. Reģistrējiet darījumu virsgrāmatu, ne tikai galīgo Sharpe rādītāju. Vispirms salīdziniet lēmumus un naudas plūsmas, pēc tam rādītājus norādītās pielaides robežās. Ja viena centa starpība maina to, vai tiek iesniegts rīkojums, pārbaudiet šo robežsituāciju atsevišķi.
Noderīgā izpildes ierakstā ir iekļauta datu un koda identitāte, konfigurācija, nejaušības sēkla, izpildes vide un pietiekami daudz starprezultātu, lai izsekotu rādītājam līdz izpildījumiem un naudas plūsmām. Ar galīgo rezultātu vien nepietiek, lai pētījuma artefakts būtu reproducējams.
Kad svārstības ir troksnis un kad — atklājums
Ne katra skaitļa izmaiņa ir krīze. Neliela rādītāja novirze citas summēšanas secības dēļ var nemainīt darījumus. Darījuma izmaiņu tuvu slieksnim var būt vērts pārskatīt. Ja stratēģija zaudē lielāko daļu rezultāta, kad pakalpojuma sniedzējs izlabo nelielu vēstures posmu, tā ir uzzinājusi ko svarīgu par savu trauslumu, pat ja sākotnējā izpilde joprojām ir pilnībā reproducējama.
Robustuma pārbaužu kritiķiem vienā ziņā ir taisnība: ir viegli mainīt pieņēmumus, līdz vēlamā stratēģija izskatās noturīga, vai noraidīt pamatotu rezultātu, jo to izjauc kāds apzināti ekstrēms scenārijs. Iepriekš nosakiet ticamās izmaiņas, atspoguļojiet visu to kopumu un nošķiriet parastas alternatīvas no stresa scenārijiem. Pēc tam saglabājiet bāzes izpildi, lai cits pētnieks varētu precīzi atkārtot redzēto.
Reproducējamība sniedz uzticamu sākumpunktu. Tālāk jāuzdod noderīgais jautājums: kuras atbildes daļas paliek nemainīgas, kad apstākļi ap šo izpildi mainās tā, kā to varētu saprātīgi paredzēt?
← Visi raksti


