Bazele tranzacționării algoritmice: concepte și exemple
1 mai 2021 9:13
Bazele tranzacționării algoritmice: concepte și exemple
Tranzacția algoritmică (numită și tranzacționare automată, tranzacționare în cutie neagră sau tranzacționare algo) utilizează un program de computer care urmează un set definit de instrucțiuni (un algoritm) pentru a plasa o tranzacție. Comerțul, în teorie, poate genera profituri la o viteză și o frecvență imposibile pentru un comerciant uman.
Seturile de instrucțiuni definite se bazează pe calendar, preț, cantitate sau orice model matematic. În afară de oportunitățile de profit pentru comerciant, comerțul ceva face ca piețele să fie mai lichide și tranzacționarea să fie mai sistematică, excludând impactul emoțiilor umane asupra activităților de tranzacționare.
Comerțul algoritmic în practică
Să presupunem că un comerciant respectă aceste criterii comerciale simple:
Cumpărați 50 de acțiuni ale unei acțiuni atunci când media sa mobilă de 50 de zile depășește media mobilă de 200 de zile. (O medie mobilă este o medie a punctelor de date din trecut care calmează fluctuațiile de preț de la o zi la alta și identifică astfel tendințele.)
Vindeți acțiuni ale acțiunii atunci când media sa mobilă de 50 de zile scade sub media mobilă de 200 de zile.
Folosind aceste două instrucțiuni simple, un program de computer va monitoriza automat prețul acțiunilor (și indicatorii medii mobile) și va plasa comenzile de cumpărare și vânzare atunci când sunt îndeplinite condițiile definite. Comerciantul nu mai trebuie să monitorizeze prețurile și graficele live sau să introducă comenzile manual. Sistemul algoritmic de tranzacționare face acest lucru automat identificând corect oportunitatea de tranzacționare.
2:01
Avantajele tranzacționării algoritmice
Algo-trading oferă următoarele avantaje:
Tranzacțiile sunt executate la cele mai bune prețuri posibile.
Plasarea comenzilor comerciale este instantanee și exacte (există șanse mari de execuție la nivelurile dorite).
Tranzacțiile sunt temporizate corect și instantaneu pentru a evita modificări semnificative de preț.
Costuri de tranzacție reduse.
Verificări automate simultane în condiții de piață multiple.
Riscul redus de erori manuale la plasarea tranzacțiilor.
Tranzacționarea în algo poate fi testată din nou folosind datele disponibile în timp real și istoric pentru a vedea dacă este o strategie de tranzacționare viabilă.
Reducerea posibilității de greșeli ale comercianților umani pe baza factorilor emoționali și psihologici.
Cea mai mare parte a tranzacționării cu ceva astăzi este tranzacționarea cu frecvență înaltă (HFT), care încearcă să valorifice plasarea unui număr mare de comenzi la viteze rapide pe mai multe piețe și parametri de decizie multipli pe baza instrucțiunilor preprogramate.
Algo-trading este utilizat în multe forme de tranzacționare și activități de investiții, inclusiv:
Mijlocul de a investitorilor pe termen lung sau pe partea de cumpărare a fondurilor de pensii, firmele de fonduri mutuale, de asigurare companii de utilizare algo-tranzacționare a stocurilor de cumpărare în cantități mari, atunci când nu doresc să influențeze prețurile de vînzare cu investiții discrete, cu volum mare.
Comercianții pe termen scurt și participanții la vânzare – factorii de decizie de piață (cum ar fi casele de brokeraj), speculatorii și arbitrajii – beneficiază de executarea automată a comerțului; în plus, algo-trading ajută la crearea unei lichidități suficiente pentru vânzătorii de pe piață.
Comercianți sistematici – adepți în tendințe, fonduri speculative sau comercianți în perechi (o strategie de tranzacționare neutră pe piață care se potrivește cu o poziție lungă cu o poziție scurtă într-o pereche de instrumente foarte corelate, cum ar fi două acțiuni, fonduri tranzacționate la bursă (ETF) sau valute) — Găsiți mult mai eficient să programați regulile lor de tranzacționare și să lăsați programul să tranzacționeze automat.
Tranzacția algoritmică oferă o abordare mai sistematică a tranzacționării active decât metodele bazate pe intuiția sau instinctul traderului.
Strategii algoritmice de tranzacționare
Orice strategie de tranzacționare algoritmică necesită o oportunitate identificată, care este profitabilă în ceea ce privește câștigurile îmbunătățite sau reducerea costurilor. Următoarele sunt strategii obișnuite de tranzacționare utilizate în tranzacționarea ceva:
Strategii de urmărire a tendințelor
Cele mai frecvente strategii de tranzacționare algoritmică urmăresc tendințele mediilor mobile, ale canalelor, ale mișcărilor la nivel de preț și ale indicatorilor tehnici aferenți. Acestea sunt cele mai simple și mai simple strategii de implementat prin tranzacționare algoritmică, deoarece aceste strategii nu implică efectuarea de predicții sau prognoze de preț. Tranzacțiile sunt inițiate pe baza apariției tendințelor de dorit, care sunt ușor și direct de implementat prin algoritmi fără a intra în complexitatea analizei predictive. Utilizarea mediilor mobile de 50 și 200 de zile este o strategie populară de urmărire a tendințelor.
Oportunități de arbitraj
Cumpărarea unei acțiuni cu listă dublă la un preț mai mic pe o piață și vânzarea simultană la un preț mai mare pe o altă piață oferă diferențialul de preț ca profit fără risc sau arbitraj. Aceeași operațiune poate fi reprodusă pentru acțiuni față de instrumentele futures, deoarece diferențialele de preț există din când în când. Implementarea unui algoritm pentru a identifica astfel de diferențiale de preț și plasarea comenzilor în mod eficient permite oportunități profitabile.
Reechilibrarea fondului index
Fondurile indexate au definit perioade de reechilibrare pentru a-și aduce deținerile la egalitate cu indicii lor de referință. Acest lucru creează oportunități profitabile pentru comercianții algoritmici, care valorifică tranzacțiile așteptate, care oferă profituri de 20 până la 80 de puncte de bază, în funcție de numărul de acțiuni din fondul index, chiar înainte de reechilibrarea fondului index. Astfel de tranzacții sunt inițiate prin intermediul sistemelor de tranzacționare algoritmice pentru executarea la timp și cele mai bune prețuri.
Strategii bazate pe model matematic
Modele matematice dovedite, cum ar fi strategia de tranzacționare neutră în deltă, permit tranzacționarea pe o combinație de opțiuni și securitatea de bază. (Delta neutral este o strategie de portofoliu constând din mai multe poziții cu compensarea deltelor pozitive și negative – un raport care compară modificarea prețului unui activ, de obicei un titlu comercializabil, cu modificarea corespunzătoare a prețului instrumentului derivat – astfel încât delta activelor în cauză totalizează zero.)
Interval de tranzacționare (inversare medie)
Strategia de reversiune medie se bazează pe conceptul că prețurile ridicate și scăzute ale unui activ sunt un fenomen temporar care revin la valoarea lor medie (valoarea medie) periodic. Identificarea și definirea unui interval de preț și implementarea unui algoritm bazat pe acesta permite plasarea automată a tranzacțiilor atunci când prețul unui activ intră și iese din intervalul său definit.
Preț mediu ponderat în volum (VWAP)
Strategia de preț medie ponderată în funcție de volum separă o comandă mare și lansează pe piață bucăți mai mici determinate din comandă pe piață utilizând profiluri de volum istorice specifice acțiunilor. Scopul este de a executa comanda aproape de prețul mediu ponderat în volum (VWAP).
Preț mediu ponderat în timp (TWAP)
Strategia de preț mediu ponderată în timp separă o comandă mare și lansează pe piață bucăți mai mici determinate din comandă pe piață, utilizând intervale de timp uniform împărțite între ora de început și sfârșit. Scopul este de a executa comanda aproape de prețul mediu între orele de început și sfârșit, minimizând astfel impactul pe piață.
Procentul de volum (POV)
Până când comanda comercială este complet completă, acest algoritm continuă să trimită comenzi parțiale în funcție de raportul de participare definit și în funcție de volumul tranzacționat pe piețe. „Strategia de pași” aferentă trimite comenzi la un procentaj definit de utilizator din volumele pieței și crește sau scade această rată de participare atunci când prețul acțiunilor atinge nivelurile definite de utilizator.
Implementarea deficienței
La punerea în aplicare deficit Obiectivele strategiei la minimizarea costului de executare a unui ordin de tranzacționare de pe piața în timp real, economisind astfel la costul comenzii și care beneficiază de costul de oportunitate al executării întîrziate. Strategia va crește rata de participare vizată atunci când prețul acțiunilor se mișcă favorabil și o va reduce atunci când prețul acțiunilor se mișcă negativ.
Dincolo de algoritmii obișnuiți de tranzacționare
Există câteva clase speciale de algoritmi care încearcă să identifice „întâmplările” de cealaltă parte. Acești „algoritmi de sniffing” – utilizați, de exemplu, de un producător de piață de vânzare – au informații integrate pentru a identifica existența oricăror algoritmi din partea de cumpărare a unei comenzi mari. O astfel de detectare prin intermediul algoritmilor va ajuta producătorul de piață să identifice oportunități mari de comenzi și le va permite să beneficieze prin completarea comenzilor la un preț mai mare. Acest lucru este uneori identificat ca funcționare frontală de înaltă tehnologie.
Cerințe tehnice pentru tranzacționarea algoritmică
Implementarea algoritmului utilizând un program de computer este componenta finală a tranzacționării algoritmice, însoțită de testare înapoi (încercarea algoritmului pe perioade istorice ale performanței bursiere anterioare pentru a vedea dacă utilizarea acestuia ar fi fost profitabilă). Provocarea constă în transformarea strategiei identificate într-un proces computerizat integrat care are acces la un cont de tranzacționare pentru plasarea comenzilor. Următoarele sunt cerințele pentru tranzacționarea algoritmică:
Cunoștințe de programare pe computer pentru a programa strategia de tranzacționare necesară, programatori angajați sau software de tranzacționare prefabricat.
Conectivitate la rețea și acces la platformele de tranzacționare pentru plasarea comenzilor.
Accesul la fluxurile de date de pe piață care vor fi monitorizate de algoritm pentru oportunități de a plasa comenzi.
Abilitatea și infrastructura de a testa înapoi sistemul odată ce este construit înainte de a intra pe piață reală.
Date istorice disponibile pentru backtesting în funcție de complexitatea regulilor implementate în algoritm.
Un exemplu de tranzacționare algoritmică
Royal Dutch Shell (RDS) este listat la Bursa de Valori din Amsterdam (AEX) și Bursa de Valori din Londra (LSE). Începem prin construirea unui algoritm pentru identificarea oportunităților de arbitraj. Iată câteva observații interesante:
AEX tranzacționează în euro, în timp ce LSE tranzacționează în lira sterlină britanică.
Datorită diferenței de timp de o oră, AEX se deschide cu o oră mai devreme decât LSE, urmată de ambele schimburi tranzacționate simultan pentru următoarele câteva ore și apoi tranzacționate numai în LSE în ultima oră, pe măsură ce AEX se închide.
Putem explora posibilitatea tranzacționării arbitrajului pe acțiunile Royal Dutch Shell listate pe aceste două piețe în două valute diferite?
Cerințe:
Un program de calculator care poate citi prețurile actuale de pe piață.
Prețurile se livrează atât din LSE, cât și din AEX.
Un flux valutar (valutar) pentru GBP-EUR.
Capacitate de plasare a comenzilor care poate direcționa comanda către schimbul corect.
Capacitate de backtesting pe fluxuri de preț istorice.
Programul de computer ar trebui să efectueze următoarele:
Citiți alimentarea cu prețuri primite a stocului RDS de la ambele burse.
Folosind cursurile valutare disponibile, convertiți prețul unei monede în cealaltă.
Dacă există o discrepanță de preț suficient de mare (reducerea costurilor de brokeraj) care duce la o oportunitate profitabilă, atunci programul ar trebui să plaseze comanda de cumpărare la bursa la prețuri mai mici și să vândă comanda la bursa la prețuri mai mari.
Dacă ordinele sunt executate după cum se dorește, va urma profitul arbitrajului.
Simplu și ușor! Cu toate acestea, practica tranzacționării algoritmice nu este atât de simplă de întreținut și executat. Amintiți-vă, dacă un investitor poate face o tranzacție generată de ceva, la fel pot face și alți participanți la piață. În consecință, prețurile fluctuează în mili- și chiar în microsecunde. În exemplul de mai sus, ce se întâmplă dacă se execută o tranzacție de cumpărare, dar tranzacția de vânzare nu, deoarece prețurile de vânzare se modifică în momentul în care comanda intră pe piață? Comerciantul va rămâne cu o poziție deschisă, ceea ce va face lipsită de valoare strategia de arbitraj.
Există riscuri și provocări suplimentare, cum ar fi riscurile de eșec al sistemului, erorile de conectivitate la rețea, decalajele între ordinele de tranzacționare și executare și, cel mai important, algoritmi imperfecți. Cu cât este mai complex un algoritm, cu atât este necesar un backtesting mai strict înainte de a fi pus în acțiune.