Backtesting - KamilTaylan.blog
1 mai 2021 9:04

Backtesting

Ce este Backtesting?

Backtesting-ul este metoda generală pentru a vedea cât de bine s-ar fi descurcat ex-post o strategie sau un model. Backtesting-ul evaluează viabilitatea unei strategii de tranzacționare prin descoperirea modului în care s-ar desfășura folosind date istorice. Dacă backtesting-ul funcționează, comercianții și analiștii pot avea încrederea în a-l utiliza în viitor.

Chei de luat masa

  • Backtesting-ul evaluează viabilitatea unei strategii de tranzacționare sau a unui model de stabilire a prețurilor, descoperind cum s-ar fi desfășurat retrospectiv folosind date istorice.
  • Teoria de bază este că orice strategie care a funcționat bine în trecut este probabil să funcționeze bine în viitor și, dimpotrivă, orice strategie care a avut performanțe slabe în trecut este probabil să aibă performanțe slabe în viitor.
  • Atunci când testați o idee pe date istorice, este benefic să rezervați o perioadă de timp a datelor istorice în scopul testării. Dacă are succes, testarea acestuia pe perioade de timp alternative sau date în afara eșantionului poate ajuta la confirmarea potențialului său de viabilitate.

Înțelegerea Backtesting-ului

Backtesting-ul permite unui comerciant să simuleze o strategie de tranzacționare folosind date istorice pentru a genera rezultate și a analiza riscul și profitabilitatea înainte de a risca orice capital real.

Un backtest bine condus, care dă rezultate pozitive, îi asigură pe comercianți că strategia este fundamental solidă și este probabil să producă profituri atunci când este implementată în realitate. În schimb, un backtest bine realizat care dă rezultate suboptime îi va determina pe comercianți să modifice sau să respingă strategia.



Strategiile de tranzacționare deosebit de complicate, cum ar fi strategiile implementate de sistemele de tranzacționare automate, se bazează în mare măsură pe backtesting pentru a-și demonstra valoarea, deoarece sunt prea arcane pentru a evalua altfel.

Atâta timp cât o idee de tranzacționare poate fi cuantificată, aceasta poate fi testată înapoi. Unii comercianți și investitori pot solicita expertiza unui programator calificat pentru a dezvolta ideea într-o formă testabilă. De obicei, aceasta implică un programator care codifică ideea în limbajul propriu găzduit de  platforma de tranzacționare.

Programatorul poate încorpora variabile de intrare definite de utilizator care permit traderului să „regleze” sistemul. Un exemplu în acest sens ar fi în  sistemul de încrucișare a mediei mobile simple (SMA). Comerciantul ar putea introduce (sau modifica) lungimile celor două medii mobile utilizate în sistem. Comerciantul ar putea apoi să testeze înapoi pentru a determina care lungimi ale mediilor mobile ar fi avut cel mai bun rezultat pe baza datelor istorice.

Scenariul ideal de testare înapoi

Testul de fundal ideal alege datele eșantion dintr-o perioadă de timp relevantă, care reflectă o varietate de condiții de piață. În acest fel, se poate judeca mai bine dacă rezultatele testului înapoi reprezintă o întâmplare sau o tranzacție solidă.

Setul de date istorice trebuie să includă un eșantion cu adevărat reprezentativ de stocuri, inclusiv cele ale companiilor care au dat faliment în cele din urmă sau au fost vândute sau lichidate. Alternativa, care include doar date din stocurile istorice care sunt încă în prezent, va produce randamente artificiale ridicate în testarea înapoi.

Un backtest ar trebui să ia în considerare toate costurile de tranzacționare, oricât de nesemnificative, deoarece acestea se pot adăuga pe parcursul perioadei de backtesting și pot afecta drastic aspectul profitabilității unei strategii. Comercianții ar trebui să se asigure că software-ul lor de backtesting reprezintă aceste costuri.

Testarea în afara eșantionului și testarea performanței directe oferă confirmări suplimentare cu privire la eficacitatea unui sistem și pot arăta culorile adevărate ale unui sistem înainte ca numerarul real să fie pe linie. O corelație puternică  între testarea înapoi, în afara eșantionului și rezultatele testelor de performanță în avans este vitală pentru a determina viabilitatea unui sistem de tranzacționare. 

Backtesting vs. Test de performanță înainte

Testarea înainte a performanței, cunoscută și sub denumirea de  tranzacționare pe hârtie, oferă comercianților un alt set de date din eșantion pe care să evalueze un sistem. Testarea performanței forward este o simulare a tranzacționării reale și implică urmărirea logicii sistemului pe o piață live. Se mai numește tranzacționare pe hârtie, deoarece toate tranzacțiile sunt executate numai pe hârtie; adică intrările și ieșirile comerciale sunt documentate împreună cu orice profit sau pierdere pentru sistem, dar nu sunt executate tranzacții reale.

Un aspect important al testării performanței directe este urmărirea exactă a logicii sistemului; în caz contrar, devine dificil, dacă nu imposibil, să evaluezi cu acuratețe acest pas al procesului. Comercianții ar trebui să fie sinceri cu privire la orice intrări și ieșiri comerciale și să evite comportamentul, cum ar fi   tranzacțiile de culegere de cireșe sau să nu includă o tranzacție pe hârtie, raționalizând că „nu aș fi luat niciodată această tranzacție”. Dacă tranzacția s-ar fi produs urmând logica sistemului, ar trebui să fie documentată și evaluată.

Backtesting vs. Analiza scenariului

În timp ce backtesting-ul folosește date istorice reale pentru a testa potrivirea sau succesul, analiza scenariului folosește date ipotetice care simulează diferite rezultate posibile. De exemplu, analiza scenariului va simula modificări specifice ale valorilor titlurilor de valoare ale portofoliului sau factori cheie care au loc, cum ar fi o modificare a ratei dobânzii.

Analiza scenariului este utilizată în mod obișnuit pentru a estima modificările valorii portofoliului ca răspuns la un eveniment nefavorabil și poate fi utilizată pentru a examina un scenariu teoretic în cel mai rău caz.

Unele capcane ale Backtesting-ului

Pentru ca testarea înapoi să ofere rezultate semnificative, comercianții trebuie să-și dezvolte strategiile și să le testeze cu bună-credință, evitând prejudecățile pe cât posibil. Aceasta înseamnă că strategia ar trebui dezvoltată fără a se baza pe datele utilizate în testarea înapoi.

E mai greu decât pare. În general, comercianții construiesc strategii bazate pe date istorice. Trebuie să fie stricți în ceea ce privește testarea cu seturi de date diferite de cele pe care își formează modelele. În caz contrar, testul din spate va produce rezultate strălucitoare care nu înseamnă nimic.

În mod similar, comercianții trebuie să evite dragarea datelor, în care testează o gamă largă de strategii ipotetice față de același set de date, care vor produce, de asemenea, succese care eșuează pe piețele în timp real, deoarece există multe strategii nevalide care ar bate piața peste o perioadă de timp specifică întâmplător.

O modalitate de a compensa tendința către dragarea datelor sau recoltarea de cireșe este de a utiliza o strategie care reușește în perioada relevantă sau din eșantion și să o testeze înapoi cu date dintr-o perioadă de timp diferită sau în afara eșantionului.. Dacă testele din spatele eșantionului și din eșantion dau rezultate similare, atunci este mai probabil să se dovedească valide.