Idealiai atkuriamu atgaliniu testu kartais galima pasitikėti mažiau nei tokiu, kurio rezultatas šiek tiek kinta. Pakartojamumas įrodo, kad tą patį atsakymą galite gauti du kartus; jis nieko nepasako apie tai, ar atsakymas priklauso nuo vienos atsitiktinės duomenų momentinės kopijos, bibliotekos ypatybės ar paslėptos numatytosios nuostatos.
Gali pasirodyti, kad tai argumentas prieš atkuriamumą, bet taip nėra. Užfiksuokite paleidimą, kad galėtumėte jį paaiškinti. Tada sąmoningai keiskite prielaidas, kurios neturėtų nulemti rezultato. Pirmasis žingsnis leidžia rezultatą audituoti, antrasis parodo, ar jis ką nors reiškia.
Ką iš tiesų parodo atkuriamas atgalinis testas?
Jei tas pats kodas, duomenys, konfigūracija ir atsitiktinių skaičių pradinis skaičius duoda tuos pačius sandorius ir metrikas, suvaldėte svarbų painiavos šaltinį. Agento „patobulinimą“ galima palyginti su pradine jo versija. Klaidos pataisą galima atskirti nuo pakeisto komisinių grafiko. Kolega gali peržiūrėti tą pačią operacijų apskaitą ir rasti tuos pačius sandorių įvykdymus.
Tačiau rezultatas galioja tik esant visoms jūsų užfiksuotoms sąlygoms. Tarkime, kriptovaliutų strategijos istoriniame faile yra vienos minutės žvakės. Išsaugote failo maišą, užfiksuojate kodą ir kiekvieną kartą iš naujo paleidę gaunate 1,4 Sharpe rodiklį. Jei duomenų teikėjas vėliau pataiso kelias žvakes, tas tvarkingas atkuriamumas vis tiek apibūdina senąjį failą. Jis neparodo, ar signalas išlieka pataisius istoriją ir ar tos žvakės tuo metu buvo prieinamos būtent tokiu pavidalu.
Maiša naudinga: ji aiškiai parodo priklausomybę. Tačiau ji neįrodo, kad ši priklausomybė nekenksminga.
Užfiksuokite paleidimą; patikrinkite radinį
Man patinka atskirti du klausimus. Ar galime atkurti būtent šį paleidimą? Ir ar tyrimo išvada išlieka atlikus pagrįstus pakeitimus? Pirmajam reikia nekintančio įrašo, antrajam – kontroliuojamų pakeitimų po vieną.
| Ką užfiksuoti | Ką vėliau keisti | Ką tai gali atskleisti |
|---|---|---|
| Pradinių duomenų versiją ir kontrolines sumas | Duomenų teikėjo pataisą arba kitą šaltinį | Priklausomybę nuo pataisytų arba konkrečiam teikėjui būdingų reikšmių |
| Kodo pakeitimo versiją ir paketų versijas | Skaitmeniškai lygiavertį įgyvendinimą | Jautrumą operacijų tvarkai, apvalinimui ar bibliotekai |
| Komisinius, finansavimą ir sandorių įvykdymo prielaidas | Pagrįstą sąnaudų intervalą | Ar nedideliam pranašumui reikia neįprastai palankių sandorių įvykdymo sąlygų |
| Instrumentų visumą ir narystę konkrečiu laiko momentu | Alternatyvias tinkamų rinkų taisykles | Priklausomybę nuo įtraukimo ar neįtraukimo sprendimų |
Pavyzdžiui, tarkime, ateities sandorių strategijos bazinė simuliacija rodo 8% metinę perteklinę grąžą. Paleiskite ją iš naujo su 25% didesnėmis taker sąnaudomis, finansavimą priskirkite kitam stebėtam atsiskaitymo momentui ir po vieną pašalinkite du didžiausią indėlį davusius instrumentus. Tai nėra trys būdai modeliui pagerinti. Tai patikros: kiekviena klausia, ar antraštinį rezultatą lemia koks nors tikėtinas niuansas.
Kiekvieną patikrą atlikite atskirai. Jei kartu pakeisite duomenis, komisinių grafiką ir sandorių įvykdymo laiką, iš prastesnio rezultato mažai ką sužinosite. O jei patikros sąlyga neįtikėtina, įvardykite ją kaip ekstremalų scenarijų, o ne pateikite kaip tikėtiną baigtį.
Nepainiokite identiškų baitų su skaitmeniniu tikslumu
Kai kurie skaičiavimai priklauso nuo veiksmų tvarkos. Slankiojo kablelio sudėtis nėra asociatyvi, todėl sudėjus daug mažų P&L reikšmių kita tvarka gali pasikeisti paskutiniai keli skaitmenys. Lygiagretūs sumavimai, aparatinė įranga ir bibliotekų versijos gali pakeisti tikslų rezultatą. Paprastai tai nekenkia; kartais menkas skaitinis pokytis peržengia ribą, pakeičia poziciją ir nukreipia likusią simuliaciją kitu keliu.
Todėl išsaugočiau ir tikslius artefaktus, ir palyginimams taikomas paklaidas. Užfiksuokite sandorių apskaitą, ne vien galutinį Sharpe rodiklį. Pirmiausia palyginkite sprendimus ir pinigų srautus, o tada metrikas pagal nurodytą paklaidą. Jei vieno cento skirtumas lemia, ar pateikiamas pavedimas, atidžiai patikrinkite šią ribą.
Naudingame paleidimo įraše nurodoma duomenų ir kodo tapatybė, konfigūracija, atsitiktinių skaičių pradinis skaičius, vykdymo aplinka ir pakankamai tarpinių rezultatų, kad metriką būtų galima susieti su sandorių įvykdymais ir pinigų srautais. Vien galutinis įvertis nėra atkuriamas tyrimo artefaktas.
Kada pokytis tėra triukšmas, o kada – radinys
Ne kiekvienas pasikeitęs skaičius reiškia krizę. Nedidelis metrikos nuokrypis dėl kitos sumavimo tvarkos gali nepakeisti sandorių. Pasikeitusį sandorį netoli ribos gali būti verta peržiūrėti. Strategija, kurios rezultatas smarkiai suprastėja duomenų teikėjui pataisius nedidelę istorijos atkarpą, atskleidė kai ką apie savo pačios trapumą, net jei pradinis paleidimas tebėra visiškai atkuriamas.
Patikimumo testų kritikai teisūs dėl vieno dalyko: prielaidas lengva kaitalioti tol, kol norima strategija atrodo atspari, arba atmesti patikimą rezultatą vien todėl, kad jį sugriauna sąmoningai ekstremalus scenarijus. Iš anksto apibrėžkite tikėtinus pakeitimus, pateikite visą jų rinkinį ir atskirkite įprastas alternatyvas nuo ekstremalių scenarijų. Tada išsaugokite bazinį variantą, kad kitas tyrėjas galėtų tiksliai atkurti tai, ką matėte.
Atkuriamumas suteikia patikimą atskaitos tašką. Toliau kyla naudingas klausimas: kurios atsakymo dalys išlieka, kai aplinkybės pasikeičia taip, kaip galima pagrįstai tikėtis?
← Visi įrašai


