Agent za strategije lahko onesnaži testni nabor, ne da bi bila v učni postopek vključena ena sama testna vrstica. Če agent vidi testni rezultat, spremeni parameter in znova zažene postopek, je ta rezultat že vplival na strategijo. V kodi je obdobje lahko označeno kot »izven vzorca«. Raziskovalni proces pa ga je vključil v iskanje.
To sem že videl v praksi, in sicer zaradi priročnosti: agent izvede serijo poskusov, prebere zbirno tabelo in nato predlaga manjšo izboljšavo. Nihče mu ni naročil, naj prilagaja strategijo na podlagi zadržanega nabora. To je vseeno storila povratna zanka.
Napaka 1: agentu po vsakem zagonu dovolimo vpogled
Posledice se običajno pokažejo kot testni Sharpe, ki se v urejenih majhnih korakih povečuje. Agent preizkusi 30 različic, obdrži najboljšo, nato pa preizkusi še 30 različic, ki so ji podobne. Vsaka posamezna sprememba je videti razumna. Skupaj pa testno obdobje spremenijo v cilj optimizacije.
Poglejmo poenostavljen primer. Recimo, da strategija nima prave prednosti in da na zadržanem naboru preizkusite 100 neodvisnih različic. Če izberete tisto z najvišjim Sharpom, lahko po naključju dobite zelo ugoden rezultat. Pri večini iskanj strategij različice ne bodo zares neodvisne, vendar to procesa ne reši: ponavljajoče se povratne informacije še vedno nagrajujejo nastavitve, ki po naključju ustrezajo posebnostim zadržanega nabora.
Zadržani nabor zavarujte z mejo dostopa do rezultatov. Agent lahko razvija strategijo na podlagi učnih in validacijskih obdobij, do meritev in grafov zadržanega nabora pa ne more dostopati. Končno oceno izvedite v ločenem postopku, samo enkrat, ko so raziskovalne odločitve že zamrznjene, ter ob rezultatu zabeležite različico strategije in posnetek podatkov.
Napaka 2: vsako poznejše obdobje označimo za »sveže«
Časovno obdobje ni sveže samo zato, ker sledi učnemu obdobju. Če je agent videl rezultat za to obdobje ali je človek na podlagi njegovega črpanja izbral drugo značilko, je to obdobje postalo del povratne zanke.
| Obdobje | Dovoljena uporaba | Kaj spremeni njegov status |
|---|---|---|
| Učno | Prilagajanje pravil in parametrov | Nič; namenjeno je iskanju |
| Validacijsko | Primerjava kandidatov in raziskovalne odločitve | Ponavljajoča se uporaba poveča možnost preprileganja |
| Končni zadržani nabor | Enkratna ocena zamrznjenega kandidata | Vpogled v rezultat in spreminjanje kandidata |
| Prihodnje obdobje za simulirano trgovanje | Sprotno opazovanje vedenja pri izvajanju | Prilagajanje na podlagi rezultatov sproži nov raziskovalni cikel |
Drseče vrednotenje naprej lahko pomaga oceniti, kako se določen raziskovalni proces obnese skozi čas. Ne omogoča pa neomejenega vpogleda v vsak razdelek. Če agent vidi rezultate razdelkov in prilagodi iskanje, so tudi ti razdelki del povratnih informacij. Za odločitev, ki jo želite sprejeti, ohranite končno nedotaknjeno obdobje.
Napaka 3: kodo zamrznemo, vprašanje pa spreminjamo
Včasih koda strategije ostane nespremenjena, raziskovalec pa po ogledu rezultata spremeni vrednotenje: zamenja referenčno merilo, izloči slab mesec, prikaže drugo skupino instrumentov ali poudari metriko z najboljšim rezultatom. Testni nabor je usmerjal zgodbo, četudi se parameter ni spremenil.
Posledice se pokažejo v izpiljenem poročilu z enim prepričljivim glavnim rezultatom, brez zapisa o drugih preizkušenih pogledih. Delniška strategija je lahko videti šibka v primerjavi s širokim tržnim indeksom, a močna v primerjavi z denarjem; kriptostrategija pa lahko izstopa na eni borzi, potem ko smo pregledali več borz. Te primerjave so lahko koristne, vendar je izbira med njimi po vpogledu v zadržani nabor še en korak izbire.
Vodite raziskovalni dnevnik. Za vsak zagon shranite hipotezo, različico kode, posnetek podatkov, iskanje parametrov, ocenjevalna obdobja, zahtevane metrike in podatek, ali je agent ali raziskovalec videl rezultat. Jedrnat zapis je uporabnejši od oznake »izven vzorca«, ki zveni popolno.
Pred vrednotenjem jasno določite končno vprašanje: kateri kandidat, kateri tržni nabor, katero referenčno merilo, kateri stroški in katere metrike? Če se odgovor spremeni, ko prispe rezultat, naslednji zagon obravnavajte kot raziskavo, za naslednjo končno preverbo pa si prihranite nove podatke.
Kaj se še lahko naučim iz onesnaženega zadržanega nabora?
Ni neuporaben. Pokaže lahko, kako se je strategija obnašala v tistem obdobju, in pomaga pri diagnosticiranju napak. Njegove ocene pa ne predstavljajte več kot neodvisne potrditve. Uporabite ga kot dokaz pri razvoju, zamrznite naslednjega kandidata in ga ocenite v zares prihodnjem obdobju za simulirano trgovanje z enakimi računovodskimi predpostavkami in predpostavkami o izvajanju.
Pri delu z agenti zlahka izgubimo pregled nad številom poskusov: en sam poziv lahko sproži več deset zagonov, še preden kdo to opazi. Zaščita je stvar postopka. Omejite, kaj lahko agent pregleda, zabeležite vsak poskus in ohranite eno vrednotenje, katerega rezultat ne more usmerjati ocenjevanega kandidata.
← Vse objave


