În acest articol am să vă prezint câteva dintre conceptele de bază care însoțesc un sistem de tranzacționare cantitativă end-to-end. Această postare va servi, sperăm, două categorii de public. Primul va fi cel al persoanelor care încearcă să obțină un loc de muncă la un fond ca trader cantitativ. Al doilea va fi reprezentat de persoanele care doresc să încerce să își înființeze propria afacere de tranzacționare algoritmică „cu amănuntul”.
Tranzacționarea cantitativă este un domeniu extrem de sofisticat al finanțelor cuantice. Poate dura o perioadă semnificativă de timp pentru a dobândi cunoștințele necesare pentru a trece un interviu sau pentru a vă construi propriile strategii de tranzacționare. Nu numai atât, dar necesită o expertiză vastă în programare, cel puțin într-un limbaj precum MATLAB, R sau Python. Cu toate acestea, pe măsură ce frecvența de tranzacționare a strategiei crește, aspectele tehnologice devin mult mai relevante. Astfel, familiarizarea cu C/C++ va fi de o importanță capitală.
Un sistem de tranzacționare cantitativă este format din patru componente majore:
- Identificarea strategiei – Găsirea unei strategii, exploatarea unui avantaj și decizia privind frecvența de tranzacționare
- Backtesting-ul strategiei – Obținerea de date, analizarea performanței strategiei și eliminarea prejudecăților
- Sistemul de execuție – Conectarea la o agenție de brokeraj, automatizarea tranzacționării și minimizarea costurilor de tranzacționare
- Managementul riscului – Alocarea optimă a capitalului, „mărimea pariului”/criteriul Kelly și psihologia tranzacționării
Vom începe prin a arunca o privire asupra modului de identificare a unei strategii de tranzacționare.
Identificarea strategiei
Toate procesele de tranzacționare cantitativă încep cu o perioadă inițială de cercetare. Acest proces de cercetare cuprinde găsirea unei strategii, văzând dacă strategia se potrivește într-un portofoliu de alte strategii pe care este posibil să le executați, obținând toate datele necesare pentru a testa strategia și încercând să optimizați strategia pentru randamente mai mari și/sau un risc mai mic. Va trebui să țineți cont de propriile cerințe de capital în cazul în care executați strategia ca trader „cu amănuntul” și de modul în care orice costuri de tranzacționare vor afecta strategia.
Contrazicând credința populară, este de fapt destul de simplu să găsiți strategii profitabile prin diverse surse publice. Academicienii publică în mod regulat rezultate teoretice de tranzacționare (deși în cea mai mare parte brute de costuri de tranzacție). Blogurile de finanțe cantitative vor discuta strategiile în detaliu. Revistele de specialitate vor prezenta unele dintre strategiile utilizate de fonduri.
Ați putea să vă întrebați de ce persoanele și firmele sunt dornice să discute despre strategiile lor profitabile, mai ales atunci când știu că alte persoane care „aglomerează tranzacțiile” pot împiedica strategia să funcționeze pe termen lung. Motivul constă în faptul că aceștia nu vor discuta adesea despre parametrii exacți și metodele de reglare pe care le-au efectuat. Aceste optimizări reprezintă cheia pentru a transforma o strategie relativ mediocră într-una foarte profitabilă. De fapt, una dintre cele mai bune modalități de a vă crea propriile strategii unice este să găsiți metode similare și apoi să efectuați propria procedură de optimizare.
Iată o mică listă de locuri unde puteți începe să căutați idei de strategii:
- Social Science Research Network – www.ssrn.com
- arXiv Quantitative Finance – arxiv.org/archive/q-fin
- Seeking Alpha – www.seekingalpha.com
- Elite Trader – www.elitetrader.com
- Nuclear Phynance – www.nuclearphynance.com
- Quantivity – quantivity.wordpress.com
Multe dintre strategiile pe care le veți analiza se vor încadra în categoriile mean-reversion și trend-following/momentum. O strategie de inversare a mediei este o strategie care încearcă să exploateze faptul că există o medie pe termen lung pe o „serie de prețuri” (cum ar fi spread-ul dintre două active corelate) și că abaterile pe termen scurt de la această medie se vor inversa în cele din urmă. O strategie de momentum încearcă să exploateze atât psihologia investitorilor, cât și structura fondurilor mari, „agățându-se” de o tendință a pieței, care poate lua avânt într-o direcție, și urmând tendința până când aceasta se inversează.
Un alt aspect extrem de important al tranzacționării cantitative este frecvența strategiei de tranzacționare. Tranzacționarea cu frecvență redusă (LFT) se referă, în general, la orice strategie care deține active mai mult de o zi de tranzacționare. În mod corespunzător, tranzacționarea de înaltă frecvență (HFT) se referă în general la o strategie care deține active pe parcursul unei zile. Ultra-high frequency trading (UHFT) se referă la strategiile care dețin active de ordinul secundelor și milisecundelor. În calitate de practician cu amănuntul, HFT și UHFT sunt cu siguranță posibile, dar numai cu o cunoaștere detaliată a „stivei tehnologice” de tranzacționare și a dinamicii registrului de ordine. Nu vom discuta aceste aspecte în mare măsură în acest articol introductiv.
După ce a fost identificată o strategie, sau un set de strategii, aceasta trebuie acum să fie testată pentru profitabilitate pe date istorice. Acesta este domeniul backtesting-ului.
Strategy Backtesting
Obiectivul backtesting-ului este de a furniza dovezi că strategia identificată prin procesul de mai sus este profitabilă atunci când este aplicată atât pe date istorice, cât și pe date din afara eșantionului. Acest lucru stabilește așteptările cu privire la modul în care strategia va funcționa în „lumea reală”. Cu toate acestea, backtesting-ul NU este o garanție de succes, din diverse motive. Este poate cel mai subtil domeniu al tranzacționării cantitative, deoarece implică numeroase prejudecăți, care trebuie analizate cu atenție și eliminate pe cât posibil. Vom discuta tipurile comune de prejudecăți, inclusiv prejudecata de anticipare, prejudecata de supraviețuire și prejudecata de optimizare (cunoscută și sub numele de prejudecata de „data-snooping”). Alte domenii de importanță în cadrul testelor retrospective includ disponibilitatea și curățenia datelor istorice, luarea în considerare a unor costuri de tranzacționare realiste și alegerea unei platforme robuste de testare retrospectivă. Vom discuta în continuare despre costurile de tranzacționare în secțiunea Sisteme de execuție de mai jos.
După ce a fost identificată o strategie, este necesar să se obțină datele istorice prin care să se efectueze testarea și, poate, rafinarea. Există un număr semnificativ de furnizori de date pentru toate clasele de active. Costurile acestora cresc, în general, odată cu calitatea, profunzimea și actualitatea datelor. Punctul de plecare tradițional pentru comercianții cuantic începători (cel puțin la nivel de retail) este de a utiliza setul de date gratuite de la Yahoo Finance. Nu voi insista prea mult asupra furnizorilor aici, ci mai degrabă aș dori să mă concentrez asupra problemelor generale atunci când am de-a face cu seturi de date istorice.
Principalele preocupări cu privire la datele istorice includ acuratețea/curățenia, prejudecata de supraviețuire și ajustarea pentru acțiuni corporative, cum ar fi dividendele și divizările de acțiuni:
- Acuratețea se referă la calitatea generală a datelor – dacă acestea conțin sau nu erori. Erorile pot fi uneori ușor de identificat, cum ar fi cu un filtru de vârfuri, care va selecta „vârfurile” incorecte în datele din seriile temporale și le va corecta. Alteori, acestea pot fi foarte greu de identificat. Este adesea necesar să aveți doi sau mai mulți furnizori și apoi să verificați toate datele lor unul față de celălalt.
- Tendința de supraviețuire este adesea o „caracteristică” a seturilor de date gratuite sau ieftine. Un set de date cu prejudecată de supraviețuire înseamnă că nu conține active care nu mai sunt tranzacționate. În cazul acțiunilor, acest lucru înseamnă acțiuni scoase de pe bursă/falimente. Această prejudecată înseamnă că orice strategie de tranzacționare a acțiunilor testată pe un astfel de set de date va avea probabil performanțe mai bune decât în „lumea reală”, deoarece „câștigătorii” istorici au fost deja preselectați.
- Acțiunile corporative includ activități „logistice” desfășurate de companie care, de obicei, provoacă o schimbare în trepte a prețului brut, care nu ar trebui să fie incluse în calculul randamentelor prețului. Ajustările pentru dividende și divizarea acțiunilor sunt vinovații obișnuiți. La fiecare dintre aceste acțiuni este necesar să se efectueze un proces cunoscut sub numele de ajustare retroactivă. Trebuie să fim foarte atenți să nu confundăm o divizare a acțiunilor cu o adevărată ajustare a randamentelor. Mulți traderi au fost surprinși de o acțiune corporatistă!
Pentru a realiza o procedură de backtest este necesară utilizarea unei platforme software. Aveți posibilitatea de a alege între un software de backtest dedicat, cum ar fi Tradestation, o platformă numerică, cum ar fi Excel sau MATLAB sau o implementare complet personalizată într-un limbaj de programare, cum ar fi Python sau C++. Nu voi insista prea mult asupra Tradestation (sau similar), Excel sau MATLAB, deoarece cred în crearea unei stive tehnologice interne complete (din motivele prezentate mai jos). Unul dintre beneficiile acestui procedeu este că software-ul de backtest și sistemul de execuție pot fi strâns integrate, chiar și cu strategii statistice extrem de avansate. Pentru strategiile HFT, în special, este esențial să se utilizeze o implementare personalizată.
Când se face backtesting-ul unui sistem, trebuie să se poată cuantifica cât de bine funcționează acesta. Parametrii „standard din industrie” pentru strategiile cantitative sunt drawdown-ul maxim și raportul Sharpe. Tragerea maximă caracterizează cea mai mare scădere de la vârf la bază a curbei de capitaluri proprii a contului pe o anumită perioadă de timp (de obicei anuală). Acesta este cel mai adesea exprimat în procente. Strategiile LFT vor avea tendința de a avea drawdown-uri mai mari decât strategiile HFT, din cauza unui număr de factori statistici. Un backtest istoric va arăta drawdown-ul maxim din trecut, ceea ce reprezintă un bun ghid pentru performanța viitoare a drawdown-ului strategiei. A doua măsurătoare este raportul Sharpe, care este definit euristic ca fiind media randamentelor în exces împărțită la deviația standard a acestor randamente în exces. Aici, rentabilitatea excesivă se referă la rentabilitatea strategiei peste un indice de referință prestabilit, cum ar fi S&P500 sau un bon de trezorerie pe 3 luni. Rețineți că randamentul anualizat nu este o măsură utilizată de obicei, deoarece nu ia în considerare volatilitatea strategiei (spre deosebire de raportul Sharpe).
După ce o strategie a fost testată retroactiv și se consideră că nu are distorsiuni (în măsura în care acest lucru este posibil!), cu un Sharpe bun și cu drawdown-uri minimizate, este momentul să construim un sistem de execuție.
Sisteme de execuție
Un sistem de execuție este mijlocul prin care lista de tranzacții generate de strategie este trimisă și executată de broker. În ciuda faptului că generarea tranzacțiilor poate fi semiautomatizată sau chiar complet automatizată, mecanismul de execuție poate fi manual, semimanual (de exemplu, „cu un singur clic”) sau complet automatizat. Pentru strategiile LFT, tehnicile manuale și semi-manuale sunt comune. Pentru strategiile HFT este necesar să se creeze un mecanism de execuție complet automatizat, care va fi adesea strâns cuplat cu generatorul de tranzacții (datorită interdependenței dintre strategie și tehnologie).
Cele mai importante considerente atunci când se creează un sistem de execuție sunt interfața cu agenția de brokeraj, minimizarea costurilor de tranzacționare (inclusiv comisioanele, alunecarea și spread-ul) și divergența performanțelor sistemului live față de performanțele testate anterior.
Există mai multe modalități de interfațare cu o agenție de brokeraj. Acestea variază de la apelarea brokerului la telefon până la o interfață de programare a aplicațiilor (API) complet automatizată și de înaltă performanță. În mod ideal, doriți să automatizați executarea tranzacțiilor dvs. cât mai mult posibil. Acest lucru vă eliberează pentru a vă concentra pe cercetări suplimentare, precum și pentru a vă permite să executați mai multe strategii sau chiar strategii de frecvență mai mare (de fapt, HFT este practic imposibil fără execuție automată). Softurile obișnuite de backtesting prezentate mai sus, cum ar fi MATLAB, Excel și Tradestation, sunt bune pentru strategii mai simple și cu frecvență mai mică. Cu toate acestea, va fi necesar să se construiască un sistem de execuție intern scris într-un limbaj de înaltă performanță, cum ar fi C++, pentru a face HFT real. Ca o anecdotă, în fondul la care am fost angajat, aveam o „buclă de tranzacționare” de 10 minute în care descărcam noi date de piață la fiecare 10 minute și apoi executam tranzacții pe baza acestor informații în același interval de timp. Pentru aceasta se folosea un script Python optimizat. Pentru orice lucru care se apropie de date cu frecvență de un minut sau de o secundă, cred că C/C++ ar fi mai ideal.
Într-un fond mai mare, deseori nu este domeniul traderului cuantic să optimizeze execuția. Cu toate acestea, în magazinele mai mici sau în firmele HFT, comercianții SUNT executanții și, prin urmare, un set de competențe mult mai larg este adesea de dorit. Țineți cont de acest lucru dacă doriți să fiți angajat de un fond. Abilitățile dvs. de programare vor fi la fel de importante, dacă nu chiar mai importante, decât talentele dvs. în statistică și econometrie!
O altă problemă majoră care intră sub incidența execuției este cea a minimizării costurilor de tranzacționare. Există, în general, trei componente ale costurilor de tranzacție: Comisioanele (sau taxele), care sunt taxele percepute de către agenția de brokeraj, bursă și SEC (sau un organism guvernamental de reglementare similar); slippage, care reprezintă diferența dintre prețul la care intenționați ca ordinul dvs. să fie executat și cel la care a fost executat în realitate; spread-ul, care reprezintă diferența dintre prețul de cumpărare/cumpărare al titlului tranzacționat. Rețineți că spread-ul NU este constant și depinde de lichiditatea curentă (adică de disponibilitatea ordinelor de cumpărare/vânzare) de pe piață.
Costurile de tranzacționare pot face diferența între o strategie extrem de profitabilă cu un raport Sharpe bun și o strategie extrem de neprofitabilă cu un raport Sharpe teribil. Poate fi o provocare să prezici corect costurile de tranzacționare dintr-un backtest. În funcție de frecvența strategiei, veți avea nevoie de acces la datele bursiere istorice, care vor include date tick pentru prețurile de cumpărare/vânzare. Echipe întregi de chitanți sunt dedicate optimizării execuției în fondurile mari, din aceste motive. Luați în considerare scenariul în care un fond trebuie să se debaraseze de o cantitate substanțială de tranzacții (motivele pentru a face acest lucru sunt multe și variate!). Prin „aruncarea” unui număr atât de mare de acțiuni pe piață, prețul va scădea rapid și este posibil să nu se obțină o execuție optimă. Prin urmare, există algoritmi care „alimentează” ordinele pe piață, deși în acest caz fondul se expune riscului de derapaj. În plus, alte strategii se „hrănesc” cu aceste necesități și pot exploata ineficiențele. Acesta este domeniul arbitrajului structurii fondurilor.
Ultima problemă majoră pentru sistemele de execuție se referă la divergența performanțelor strategiilor față de performanțele testate anterior. Acest lucru se poate întâmpla din mai multe motive. Am discutat deja în profunzime prejudecata de anticipare și prejudecata de optimizare, atunci când luăm în considerare testele retrospective. Cu toate acestea, unele strategii nu facilitează testarea acestor prejudecăți înainte de implementare. Acest lucru se întâmplă cu precădere în HFT. Pot exista erori în sistemul de execuție, precum și în strategia de tranzacționare în sine, care nu apar pe un backtest, dar care apar în tranzacționarea live. Este posibil ca piața să fi fost supusă unei schimbări de regim ulterior implementării strategiei dumneavoastră. Noile medii de reglementare, schimbarea sentimentului investitorilor și fenomenele macroeconomice pot duce la divergențe în modul în care se comportă piața și, prin urmare, la profitabilitatea strategiei dumneavoastră.
Managementul riscului
Piesa finală a puzzle-ului de tranzacționare cantitativă este procesul de management al riscului. „Riscul” include toate prejudecățile anterioare pe care le-am discutat. Acesta include riscul tehnologic, cum ar fi faptul că serverele colocalizate la bursă dezvoltă brusc o defecțiune a hard disk-ului. Acesta include riscul de brokeraj, cum ar fi falimentul brokerului (nu este atât de nebunesc pe cât pare, având în vedere spaima recentă cu MF Global!). Pe scurt, acoperă aproape tot ceea ce ar putea interfera cu punerea în aplicare a tranzacționării, din care există multe surse. Cărți întregi sunt dedicate managementului riscului pentru strategiile cantitative, așa că nu voi încerca să elucid toate sursele posibile de risc aici.
Managementul riscului cuprinde, de asemenea, ceea ce se numește alocarea optimă a capitalului, care este o ramură a teoriei portofoliilor. Acesta este mijlocul prin care capitalul este alocat unui set de strategii diferite și tranzacțiilor din cadrul acestor strategii. Este un domeniu complex și se bazează pe unele calcule matematice netriviale. Standardul industrial prin care sunt legate alocarea optimă a capitalului și efectul de levier al strategiilor se numește criteriul Kelly. Întrucât acesta este un articol introductiv, nu voi insista asupra calculării acestuia. Criteriul Kelly face unele presupuneri cu privire la natura statistică a randamentelor, care nu se adeveresc de multe ori pe piețele financiare, astfel încât traderii sunt adesea conservatori atunci când vine vorba de implementare.
O altă componentă cheie a gestionării riscului constă în abordarea propriului profil psihologic. Există multe prejudecăți cognitive care se pot strecura în tranzacționare. Deși este adevărat că acest lucru este mai puțin problematic în cazul tranzacționării algoritmice, dacă strategia este lăsată în pace! O prejudecată comună este cea a aversiunii față de pierderi, în care o poziție pierzătoare nu va fi închisă din cauza durerii de a trebui să realizeze o pierdere. În mod similar, profiturile pot fi luate prea devreme, deoarece teama de a pierde un profit deja obținut poate fi prea mare. O altă prejudecată comună este cunoscută sub numele de prejudecată de recurență. Aceasta se manifestă atunci când traderii pun prea mult accent pe evenimentele recente și nu pe termen mai lung. Apoi, bineînțeles, există perechea clasică de prejudecăți emoționale – frica și lăcomia. Acestea pot duce deseori la o sub sau supra-îndatorare, ceea ce poate cauza explozia (adică capitalurile proprii ale contului care se îndreaptă spre zero sau mai rău!) sau profituri reduse.
Rezumat
După cum se poate observa, tranzacționarea cantitativă este un domeniu extrem de complex, deși foarte interesant, al finanțelor cantitative. Am zgâriat literalmente suprafața subiectului în acest articol și deja devine destul de lung! Cărți și articole întregi au fost scrise despre aspecte la care eu nu am dat decât o frază sau două. Din acest motiv, înainte de a aplica pentru locuri de muncă în domeniul tranzacționării de fonduri cantitative, este necesar să efectuați o cantitate semnificativă de studiu de bază. Cel puțin veți avea nevoie de o vastă experiență în statistică și econometrie, cu multă experiență în implementare, prin intermediul unui limbaj de programare, cum ar fi MATLAB, Python sau R. Pentru strategii mai sofisticate la capătul de frecvență mai mare, setul dvs. de competențe va include probabil modificarea kernelului Linux, C/C++, programarea în asamblare și optimizarea latenței rețelei.
Dacă sunteți interesat să încercați să vă creați propriile strategii de tranzacționare algoritmică, prima mea sugestie ar fi să deveniți bun la programare. Preferința mea este să construiți singur cât mai mult posibil din sistemul de preluare a datelor, backtesterul strategiei și sistemul de execuție. Dacă propriul dvs. capital este în joc, nu ați dormi mai bine noaptea știind că v-ați testat pe deplin sistemul și că sunteți conștient de capcanele sale și de problemele particulare? Externalizarea acestui lucru către un furnizor, deși ar putea economisi timp pe termen scurt, ar putea fi extrem de costisitoare pe termen lung.
.