17 octombrie 2026 · cercetare

Am pus un agent de cercetare AI să optimizeze o strategie. Jurnalul a fost mai puțin impresionant.

Am pus un agent de cercetare AI să optimizeze o strategie. Jurnalul a fost mai puțin impresionant.

Luni, agentul nostru de cercetare AI a găsit o strategie pentru contracte futures cripto cu un raport Sharpe de 4.1. Până joi, după ce am numărat experimentele și am oprit agentul să mai ajusteze parametrii pe aceeași fereastră de validare, rezultatul ajunsese la 0.8. Strategia nu se schimbase. Se schimbase estimarea noastră asupra a ceea ce reușise căutarea.

Am ținut acest jurnal de cercetare pentru că „optimizează cu grijă” e un sfat ușor de dat și greu de pus în practică atunci când un agent poate scrie cod, lansa backtesturi, inspecta scorul și încerca din nou în câteva minute. Iată ce a mers prost, în ordine.

Luni: îi dăm agentului o întrebare bine delimitată

I-am cerut agentului să testeze o idee simplă de urmărire a trendului, pe intervale orare, pe o piață lichidă de contracte futures perpetue: să intre când o medie mobilă scurtă o intersectează pe una mai lungă, să dimensioneze poziția pentru o țintă fixă de volatilitate și să închidă poziția la semnalul opus. Am specificat instrumentul, datele, grila de comisioane, istoricul finanțării, ipoteza de execuție și intervalele de parametri pe care le putea explora.

Eșantionul istoric acoperea perioada 2021–2025. Am alocat 2021–2023 dezvoltării, 2024 validării, iar 2025 l-am păstrat ca set final de testare, sigilat. Am consemnat această împărțire în configurația sarcinii, astfel încât agentul să poată citi rezultatele dezvoltării și scorurile de validare, dar să nu poată accesa randamentele din setul de testare.

Prima noastră greșeală a fost să permitem 300 de combinații de parametri într-o singură sarcină, fără să consemnăm bugetul de căutare ca rezultat al cercetării. Agentul ne-a returnat configurația cu cel mai bun rezultat: o medie rapidă de 9 ore, una lentă de 73 de ore și o țintă de volatilitate de 0.8%. Sharpe-ul pe validare era 4.1. Știam că agentul încercase multe configurații. Încă nu făcuserăm imposibil să uităm acest lucru.

Marți: câștigătoarea s-a schimbat când am rerulat experimentul

Am rerulat aceeași sarcină într-un mediu curat. Configurația de top s-a schimbat, iar Sharpe-ul ei a scăzut la 2.7. În prima rulare, cache-ul datelor de piață furnizase o serie de finanțare actualizată, pe când rerularea folosise o versiune fixată. Ambele sarcini declarau același interval de date; doar una avea o versiune reproductibilă a datelor.

Am încetat să comparăm scoruri și am început să consemnăm experimentul complet: revizia codului, instantaneul datelor, comisioanele, finanțarea, setările de execuție, valorile parametrilor și fiecare încercare lansată de agent. Așa am văzut că scorul de 4.1 nu indica un avantaj misterios al pieței. Era rezultatul unei configurații dintr-o căutare cu 300 de încercări pe același an de validare.

300de combinații de parametri testate
1an de validare inspectat în mod repetat
0de rezultate din setul de testare arătate agentului

Miercuri: înghețăm căutarea înainte să deschidem setul de testare

Am rerulat experimentul cu un instantaneu fix al datelor și o grilă mai restrânsă, stabilită dinainte: 24 de combinații. Agentul le putea ordona după performanța din perioada de dezvoltare 2021–2023. L-am lăsat să vadă datele din 2024 o singură dată, pentru selecție, apoi am blocat setările alese și codul.

Strategia selectată a obținut un Sharpe de 0.8 pe validare. Pe setul sigilat de testare din 2025, a obținut 0.3 după comisioanele taker, finanțare și aceeași întârziere de execuție de 1 bară aplicată pe tot parcursul studiului. A fost un răspuns util. Nu era o dovadă că strategia ar fi profitabilă într-un cont real.

O paranteză despre săptămâna aceasta: am petrecut mai mult timp stabilind ce înseamnă „o încercare” decât scriind codul pentru mediile mobile. Am numărat fiecare set de parametri modificat ca o încercare, dar și rulările în care schimbam semnalul sau regula de dimensionare a poziției. O versiune nouă a datelor sau o ipoteză diferită de execuție primea o înregistrare separată, pentru că putea schimba ordinea rezultatelor la fel de mult.

Joi: ce am sări data viitoare

Am sări peste prima sarcină cu domeniu deschis. Un agent de cercetare are nevoie de un buget de căutare și de o evidență a lucrurilor încercate, mai ales când poate folosi fiecare rezultat pentru a decide ce încearcă apoi. Setul de testare trebuie, de asemenea, protejat de verificări informale: după ce cineva îi citește rezultatul și schimbă strategia, acesta devine încă un set de validare.

Pentru o căutare de mici dimensiuni, un registru practic al experimentelor poate fi simplu și explicit:

Ce consemnămDe ce contează
Versiunile codului și ale datelorAstfel, rerularea folosește aceleași date de intrare și aceeași logică
Fiecare variantă încercatăAstfel, înțelegem câștigătoarea în contextul căutării
Rolurile perioadelor de dezvoltare, validare și testareAstfel, scorul final nu este reutilizat pe ascuns pentru ajustarea parametrilor
Ipotezele privind comisioanele, finanțarea și execuțiaAstfel, rezultatul raportat descrie o simulare care poate fi testată

După deschiderea setului de testare, reveniți la dezvoltare cu o nouă întrebare de cercetare și păstrați vechiul rezultat ca dovadă istorică. Nu continuați să șlefuiți aceeași strategie pe o perioadă pe care a văzut-o deja.

Agentul și-a făcut treaba: a căutat rapid și a găsit o configurație care merita examinată. Treaba noastră a fost să facem căutarea transparentă, să păstrăm un test neatins și să tratăm scorul ca pe o măsurătoare cu un istoric. Rezultatul interesant nu a fost 4.1 sau 0.3. A fost să vedem exact cum s-a obținut primul număr.

agenți AIoptimizarea strategiilorsupraoptimizarebacktestingtranzacționare pe hârtie
← Toate articolele