To je vprašanje, ki mi ga ljudje, ki so pravkar dokončali svojo prvo strategijo, najpogosteje zastavijo v takšni ali drugačni obliki: koliko poslov potrebujem, da je rezultat resničen? Ponavadi zraven navedejo še številko. »Imam 1.200 poslov, to je dovolj, kajne?« Iskren odgovor pa vse zmoti, ker število poslov sploh ni pomembno.
Vse je zajeto v eni vrstici, preostanek objave pa bom namenil temu, zakaj je ta odgovor neprijeten.
Kolikšna je standardna napaka Sharpeovega razmerja?
Za Sharpe, izračunan na podlagi n periodičnih donosov, ob predpostavki, da so neodvisni in približno normalno porazdeljeni, je napaka vzorčenja:
SE(s) ≈ √((1 + s²/2) / n)
kjer je s Sharpe, izmerjen pri isti frekvenci. Če annualiziramo obe strani, dobimo preprosto formulo. Pri k opazovanjih na leto in T letih je annualizirani Sharpe S takšen:
SE(S) ≈ √((1 + S²/(2k)) / T)
Poglejte 2k v imenovalcu. Pri dnevnih donosih je k = 252, zato tudi Sharpe 2 prispeva le 4/504 ≈ 0.008 v števec. Celoten člen se skrči na 1. Standardna napaka annualiziranega Sharpa je približno 1/√T, pri čemer je T število koledarskih let podatkov. Komajda je odvisna od samega Sharpa, ni odvisna od frekvence vzorčenja in zagotovo ni odvisna od števila poslov, ki ste jih sklenili.
Torej:
| Leta podatkov | SE(Sharpe) | 95-odstotni interval zaupanja, če ste izmerili 1.5 |
|---|---|---|
| 1 | 1.00 | −0.46 do 3.46 |
| 2 | 0.71 | 0.11 do 2.89 |
| 3 | 0.58 | 0.37 do 2.63 |
| 5 | 0.45 | 0.62 do 2.38 |
| 10 | 0.32 | 0.88 do 2.12 |
Backtest, ki v dveh letih zgodovine pokaže Sharpe 1.5, se pri 95-odstotni ravni statistične značilnosti ne more razlikovati od metanja kovanca. To je izhodiščno stanje pri večini kripto raziskav, saj se večini raziskovalcev čisti podatki, popravljeni za pristranskost preživelih in z natančno upoštevanimi provizijami, začnejo nekje okoli leta 2022, polovica zanimivih simbolov pa pred letom 2023 sploh ni obstajala.
Ampak imam 40.000 poslov. Mar to ne reši težave?
Ne, in to je zmota, ki jo želim najbolj odpraviti.
Število poslov in dolžina vzorca sta različni količini, v formuli pa nastopa samo ena od njiju. Če vaša strategija v šestih mesecih sproži 40.000 poslov, je T = 0.5 in SE ≈ 1.41. 95-odstotni interval zaupanja za izmerjeni Sharpe 2.0 sega od −0.8 do 4.8. Štirideset tisoč poslov, iskren sklep pa je še vedno: »Morda je dobra, morda je donosnost negativna.«
Razlog je v tem, da teh 40.000 poslov ni 40.000 neodvisnih stav na 40.000 različnih tržnih stanj. Gre za 40.000 vzorcev iz približno 180 dni tržnega vedenja; dnevi so med seboj korelirani, korelirani pa so tudi režimi znotraj posameznih obdobij. Knjiga z visokofrekvenčno strategijo vračanja k povprečju, ki štiri mesece vsak dan ustvarja dobiček, je v resnici stavila enkrat — da bo kratkoročno vračanje k povprečju vztrajalo v tem likvidnostnem režimu — in opazovala razplet te stave morda le peščico neodvisnih krat.
Sam si to predstavljam takole: štejte režime, ne izvršitev poslov. Koliko resnično različnih tržnih razmer je strategija prestala? Strategija prenosa donosa iz financiranja, ki je delovala v enem dolgem obdobju pozitivne baze, je videla n = 1, ne glede na to, koliko urnih prilagoditev pozicij je zabeležila.
Hitra diagnostika: z metodo blokovnega bootstrap vzorčite dnevni P&L z dolžino bloka 20 dni in si oglejte razpon ponovno vzorčenih vrednosti Sharpa. Če je 5. percentil pod ničlo, je število poslov nepomembno. To zahteva približno devet vrstic kode numpy in me je odvrnilo od več strategij kot katera koli druga posamezna preverba.
Ali formula velja za resnične strategije?
Ne povsem; napaka pa gre v smer, ki vam ne bo všeč. Rezultat 1/√T predpostavlja IID normalno porazdeljene donose. Donosi resničnih strategij so avtokorelirani in asimetrično porazdeljeni, asimetrija pa je običajno negativna pri vsem, kar spominja na strategije prenosa donosa, prodaje volatilnosti ali vračanja k povprečju. Mertensov popravek ponovno vključi te momente:
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
kjer je γ₃ asimetrija, γ₄ pa kurtoza. Negativna asimetrija povzroči, da je člen −γ₃·s pozitiven, s čimer se interval razširi. Presežna kurtoza ga razširi še bolj. Pri tipičnem P&L kripto strategije prenosa donosa z asimetrijo okoli −1.2 in kurtozo okoli 9 sem videl, da je popravljena standardna napaka za 30–40% večja od naivne ocene. Loov članek iz leta 2002 obravnava avtokorelacijo in učinek je enako usmerjen: pozitivna serijska korelacija donosov napihne naivno oceno Sharpa in zmanjša navidezno napako, kar je neprijetna kombinacija.
Zato 1/√T obravnavajte kot spodnjo mejo negotovosti. To je najboljši možni primer.
Kako visok mora biti Sharpe, če sem preizkusil 500 različic?
Zdaj pridemo do dela, ki je pomemben za vse, ki izvajajo avtomatiziran raziskovalni proces — takšen imamo vsak dan pri Stratmillu: agent za generiranje ne ustvari enega kandidata, temveč stotine.
Pričakovana največja vrednost M vzorcev iz standardne normalne porazdelitve je približno √(2 ln M). Če jo pomnožite s standardno napako, dobite Sharpe, ki ga bo pokazala najsrečnejša od M strategij brez kakršnekoli dejanske vrednosti.
| Preizkušene strategije | √(2 ln M) | Sharpe najboljšega šuma, 5 let (SE 0.45) | Najboljši šum, 2 leti (SE 0.71) |
|---|---|---|---|
| 10 | 2.15 | 0.96 | 1.52 |
| 100 | 3.03 | 1.36 | 2.16 |
| 500 | 3.53 | 1.58 | 2.50 |
| 5,000 | 4.13 | 1.85 | 2.93 |
Preberite predzadnjo vrstico. Če ste na podlagi dveh let podatkov ustvarili 500 kandidatov in je zmagovalec dosegel Sharpe 2.4, niste odkrili prav ničesar. To je pod ravnjo šuma. Deflacionirani Sharpe Baileyja in Lópeza de Prada to formalizira tako, da namesto grobega √(2 ln M) uporabi varianco preizkušenih Sharpov. Vredno ga je pravilno implementirati, a že groba različica lahko spremeni vaše ravnanje.
Dve stvari sta še slabši, kot nakazuje tabela. Prvič, M ni število strategij, ki ste jih shranili, temveč število strategij, ki ste jih ovrednotili — vključno z vsako prilagoditvijo parametrov, vsakim »poskusimo še 30-obdobni pogled nazaj« in vsakim ponovnim zagonom po popravku hrošča. Nihče tega ne šteje pošteno. Drugič, vaši kandidati niso neodvisni vzorci, zato √(2 ln M) preceni efektivno širino izbora, čeprav zaradi koreliranih preizkusov en sam srečen režim dvigne celoten skupek kandidatov hkrati.
Najnevarnejša številka v kvantitativnih raziskavah je tista, ki je nihče ni zabeležil: kolikokrat ste pogledali.
Kaj torej dejansko naredim?
Pet stvari, po vrstnem redu, kot bi se jih lotil.
- Zabeležite vsako vrednotenje. Števec, ki se poveča ob vsakem zagonu backtesta, se shrani in se nikoli ne ponastavi. Če ne znate povedati, kolikšen je M, ne morete določiti praga. To je najkoristnejša ura inženirskega dela na celotnem seznamu.
- Sharpe vedno poročajte skupaj z intervalom. Nikoli ne izpišite gole številke. Naša poročila o backtestih prikazujejo
1.72 ± 0.51 (2.9y, skew-adjusted), znak ± pa ni neobvezen. To spremeni način, kako celotna ekipa govori o rezultatih. - Prag določite na podlagi M in T, preden pogledate rezultate. Vzemite številko iz zgornje tabele in jo zapišite. Naknadno določanje pragov je način, kako se vsi prepričujejo, da je prileganje krivulji v redu.
- Ko imate premalo vzorcev, dajte prednost širini izbora pred frekvenco. Koledarskega časa ne morete ustvariti več, lahko pa isti signal izvajate na 40 nekoreliranih simbolih. S tem se efektivni n zares poveča, s povečevanjem frekvence poslov pa ne. Vseeno spremljajte korelacije — 40 kripto trajnih pogodb v obdobju zmanjševanja tveganja je en sam instrument.
- Nato jo preizkusite na papirju. Čas zunaj vzorca se nabira po en dan na dan in bližnjice ni, zato je to edini vzorec, ki mu nihče ne more prilagoditi strategije.
Nič od tega ne naredi kratkih vzorcev uporabnih. Pomaga vam biti iskreni glede tega, kaj lahko kratek vzorec podpre; to je precej šibkejša trditev, kot jo navadno nakazujejo poročila o backtestih. Sharpe 1.5 v dveh letih je hipoteza, vredna preizkusa na papirju. Ni pa ugotovitev.
← Vse objave
