Un backtest poate marca corect fiecare lumânare temporal și totuși să folosească informații din viitor. Asta se întâmplă când strategia testează, pe mai mulți ani de date istorice, activele care au supraviețuit până azi, ca și cum ar fi știut care piețe aveau să rămână lichide, listate și demne de păstrat.
Construirea universului face parte din strategie. Dacă sistemul live putea alege doar dintre activele disponibile la fiecare moment al deciziei, backtestul trebuie să respecte aceeași limită. Trei scurtături o șterg în mod obișnuit.
Greșeala unu: testarea listei de azi pe tot istoricul
Să presupunem că astăzi selectezi cele mai mari 50 de piețe crypto perpetual, apoi le testezi retrospectiv începând din 2021. Lista exclude contractele care au dispărut, și-au pierdut lichiditatea sau au fost delistate. În plus, le oferă datelor mai vechi acces la piețe care poate nici nu existau încă.
E ușor să nu observi urmările: strategia pare mai stabilă fiindcă activele care au eșuat au dispărut din eșantion. De exemplu, o regulă de momentum poate arăta excelent pe cele 50 de piețe de azi, în timp ce versiunea istorică ar fi alocat în mod repetat capital către active care ulterior s-au prăbușit sau au fost delistate de pe platforma pe care se tranzacționau. Ai testat un portofoliu selectat cunoscând rezultatul.
Construiește apartenența la univers ca pe o evidență datată. Pentru fiecare activ, urmărește când a devenit eligibil, când a încetat să mai fie eligibil și din ce motiv. La fiecare reechilibrare, aplică regulile folosind doar informațiile disponibile atunci. O piață ar trebui inclusă după listarea efectivă și după orice perioadă de încălzire necesară. Dacă este delistată, poziția finală trebuie să aibă o regulă definită de ieșire sau de decontare; eliminarea rândurilor sale nu este o regulă de ieșire.
Greșeala doi: clasarea pe baza unei statistici măsurate după momentul deciziei
Chiar și un univers istoric poate introduce scurgeri de informații dacă regula de apartenență folosește o fereastră completă care include date viitoare. „Tranzacționează cele mai lichide 20 de acțiuni în fiecare lună” pare rezonabil, până când lichiditatea este evaluată folosind întreaga lună în care strategia ar trebui să tranzacționeze.
Să presupunem că reechilibrezi în prima zi de tranzacționare. Clasarea după volumul mediu lunar în dolari folosește pe ascuns următoarele trei săptămâni pentru a decide ce se califica în prima zi. Urmările apar adesea sub forma unei capacități de tranzacționare neobișnuit de bune: strategia evită activele care au devenit nelichide mai târziu în lună, deși nu avea cum să știe asta la intrare.
Stabilește limita de măsurare înainte de momentul selecției. Pentru o reechilibrare lunară în prima sesiune, ai putea face clasarea pe baza celor 20 de sesiuni încheiate anterior, până la sesiunea precedentă. Apoi precizează explicit întârzierea până la execuție: dacă clasarea folosește închiderea de ieri, poate fi trimis ordinul la deschiderea de azi în fluxul de lucru presupus?
| Regulă de selecție | Versiune disponibilă la momentul respectiv | Scurgere frecventă |
|---|---|---|
| Primele 20 după volumul în dolari | Clasarea sesiunilor încheiate înainte de reechilibrare | Includerea zilei sau lunii reechilibrării |
| Listat pe platformă | Folosește momentele efective ale listării și delistării | Folosirea endpointului actual de simboluri pentru date vechi |
| Istoric minim | Numără observațiile disponibile la momentul selecției | Solicitarea ca activul să supraviețuiască în viitor pentru a trece filtrul |
Greșeala trei: tratarea istoricului lipsă ca dovadă că un activ nu era eligibil
Arhiva unui furnizor de date nu este neapărat o evidență completă a pieței istorice. Absența unui simbol poate însemna că activul nu a existat niciodată, că platforma și-a schimbat convenția de denumire, că furnizorul nu a păstrat instrumentele delistate sau pur și simplu că există o întrerupere în fluxul de date. Aceste situații au implicații diferite.
Urmarea este un univers ordonat, dar cu goluri neexplicate. Cercetătorii cer adesea o fereastră completă de date istorice, apoi exclud în tăcere tot ce nu o are. Poate fi o regulă rezonabilă pentru perioada de încălzire, dar exclude intenționat și activele listate recent. Mai grav, dacă istoricul lipsește mai ales pentru piețele eșuate, „doar date complete” devine încă un filtru de supraviețuire.
Ține separat eligibilitatea, disponibilitatea datelor și perioada de încălzire a strategiei. Înregistrează motivul excluderii unui activ la fiecare dată. Păstrează lipsurile în registrul de cercetare în loc să le transformi în ștergeri tăcute. Când sursa nu poate stabili dacă o piață era listată sau putea fi tranzacționată, spune acest lucru și măsoară cât de mult depinde rezultatul de această incertitudine.
Fă universul reproductibil
Un audit util începe cu o singură reechilibrare istorică. Reconstituie lista candidaților folosind listările datate și datele disponibile la acel moment. Recalculează variabilele de clasare folosind numai observații încheiate. Apoi compară apartenența rezultată cu lista folosită efectiv de backtest.
Salvează regula, limita temporală, deciziile de includere și versiunea sursei împreună cu rularea. Dacă nu poți explica de ce un activ a fost inclus, iar altul exclus la o anumită dată, încă nu poți spune dacă strategia a descoperit un avantaj sau a moștenit un eșantion modelat după viitor.
Greșelile de construire a universului rareori se anunță prin prețuri imposibile. Se văd într-o strategie care a evitat, în mod convenabil, piețele care au încetat să mai fie convenabile.
← Toate articolele


