Un agent AI de strategie poate produce un backtest valid folosind informații care nu existau încă la momentul la care ar fi trebuit executate tranzacțiile. Codul rulează. Curba capitalului pare plauzibilă. Semnalul poate fi chiar unul rezonabil. Totuși, un marcaj temporal, o îmbinare de date sau un câmp revizuit i-a furnizat pe nesimțite răspunsul de mâine.
Soluția este să incluzi momentul disponibilității în regulile cercetării. Pentru fiecare intrare trebuie să existe un răspuns clar la două întrebări: la ce perioadă se referă această valoare și când ar fi putut strategia să o cunoască pentru prima dată?
Cum se manifestă biasul de anticipare într-o strategie generată de AI?
Varianta evidentă este un semnal calculat pe baza închiderii aceleiași bare, urmat de o execuție la acel preț de închidere. Dacă strategia are nevoie de prețul de închidere pentru a lua decizia, nu poate tranzacționa totodată la acel preț. Însă agenții creează adesea variante mai subtile când îmbină surse de date sau aleg valori implicite convenabile.
Să presupunem că un model calculează o medie mobilă pe 20 de bare la închiderea fiecărui minut și deschide o poziție când prețul de închidere o depășește. Dacă backtestul execută ordinul la aceeași închidere, a folosit ultima tranzacție a barei înainte ca aceasta să fie disponibilă strategiei. Mutarea ordinului la deschiderea barei următoare poate fi o aproximare rezonabilă, deși un ordin la piață trebuie să țină cont și de comisioane și impact.
Acum să presupunem că această caracteristică este un indicator fundamental zilnic pentru acțiuni sau o captură a interesului deschis pentru criptomonede. Data rândului poate indica luni, dar valoarea poate să fi fost publicată după închiderea de luni sau corectată ulterior. O dată nu este un marcaj temporal al disponibilității.
Cum ar trebui să atribui marcaje temporale intrărilor unei strategii?
Păstrează cel puțin trei momente, atunci când sursa le permite: perioada descrisă de valoare, momentul publicării de către furnizor și momentul recepționării de către sistemul tău. Setul de informații al strategiei la momentul deciziei poate include doar valorile disponibile până atunci.
| Câmp | La ce răspunde | Capcană frecventă |
|---|---|---|
| Momentul evenimentului | Când a avut loc evenimentul de piață? | Folosirea închiderii barei înainte ca bara să fie completă |
| Momentul publicării | Când a publicat sursa această valoare? | Tratarea unei etichete de sfârșit de zi drept publicare la deschidere |
| Momentul ingestiei | Când ar fi putut sistemul de cercetare să o preia? | Ignorarea întârzierii furnizorului sau a procesării datelor |
| Momentul revizuirii | Când a fost înregistrată sau corectată această versiune? | Completarea retrospectivă a istoricului revizuit ca și cum ar fi fost original |
Pentru o strategie cu interval de 1 minut, o întârziere de o secundă nu este automat inofensivă. Efectul ei depinde de momentul luării deciziei și de datele folosite de semnal. Dacă intrarea este o statistică orară calculată după închiderea perioadei, poate să conteze foarte puțin. Dacă este dezechilibrul registrului de ordine măsurat chiar înainte de plasarea ordinului, poate inversa tranzacția.
Poate un depozit de date „point-in-time” să prevină scurgerile?
Ajută, dacă prin „point-in-time” înțelegem că poți recupera valoarea cunoscută la un moment istoric al deciziei, inclusiv versiunea disponibilă atunci. Un tabel care conține doar date istorice poate include totuși valorile corectate astăzi pentru acele date.
Pentru fiecare înregistrare, păstrează un interval de valabilitate și un marcaj temporal al disponibilității și arhivează reviziile în loc să le suprascrii. Apoi formulează explicit interogările istorice: returnează cea mai recentă versiune disponibilă la momentul simulat al deciziei. Acest lucru este deosebit de important pentru indicatorii fundamentali, componența indicilor, publicările economice și seturile de date curățate de furnizori.
Există și o problemă operațională mai puțin atrăgătoare: un marcaj temporal perfect al publicării nu folosește la nimic dacă procesul de ingestie a rulat cu douăzeci de minute întârziere. Dacă depozitul istoric nu înregistrează momentul ingestiei, folosește o întârziere conservatoare și menționeaz-o. Precizia pe care sursa nu a înregistrat-o este doar de fațadă.
Ce verificări depistează biasul de anticipare înainte de tranzacționarea pe hârtie?
Cere-i agentului de cercetare să genereze, alături de backtest, o cronologie a caracteristicilor și ordinelor. Pentru fiecare decizie, înregistrează cel mai recent moment de disponibilitate al sursei pentru fiecare caracteristică, momentul deciziei, momentul ordinului și momentul estimat al execuției. Respinge orice rând în care o intrare a sosit după decizie.
- Decalează semnalele cu o bară și compară rezultatele. O scădere puternică poate indica o dependență de sincronizarea dintre închideri, deși este un test de diagnostic, nu o dovadă a scurgerii de informații.
- Trunchiază fiecare sursă la un moment istoric-limită, rulează din nou procesarea și compară caracteristicile rezultate cu cele istorice stocate.
- Înlocuiește o caracteristică suspectă cu o valoare constantă. Dacă performanța rămâne aproape identică, verifică dacă codul a folosit efectiv seria vizată.
- Trece prin procesare o caracteristică imposibilă, bazată intenționat pe date din viitor. Validarea ar trebui să eșueze clar când momentul disponibilității ei este ulterior momentului deciziei.
Aceste verificări nu certifică o strategie. Ele fac vizibile ipotezele precise privind sincronizarea și depistează modurile frecvente în care sunt încălcate.
Dovedește tranzacționarea pe hârtie că backtestul nu a avut scurgeri de informații?
Nu. Tranzacționarea pe hârtie poate scoate la iveală o sursă de date în timp real care întârzie, lipsește sau este aliniată diferit față de cea istorică. Nu poate stabili dacă vechile caracteristici de antrenare reflectau ceea ce se știa la momentul respectiv. Un model poate și să nu mai beneficieze de scurgere, pur și simplu pentru că viitorul văzut din greșeală a devenit prezentul.
Folosește tranzacționarea pe hârtie ca verificare a parității: compară valorile live ale caracteristicilor, marcajele temporale ale deciziilor, generarea ordinelor și execuțiile estimate cu definițiile din backtest. Când diferă, urmărește intrarea și ceasul exacte. O echipă de agenți care poate explica setul de informații folosit pentru fiecare decizie face cercetare utilă. O echipă care îți poate arăta doar o curbă lină a sărit peste cel mai dificil audit.
← Toate articolele


