Niciodată n-am putut spune că mă dă hărnicia afară din casă și în niciun caz nu se întâmplă asta în anotimpul călduros. Dacă îi compar pe nemți și nordici cu grecii sau spaniolii sunt convins că e o corelare între temperaturi și cheful de muncă. Dar nu vreau ca asta să sune ca o scuză pentru că eu chiar prefer stilul de viață de la Mediterană.
Pe la începutul verii am început cu elan un serial numit Arsenal de lucrări de cercetare pentru cucerirea bursei și am făcut o pauză cam mare de la ultimul episod, de aceea am explicat puțin despre treaba cu lenea.
Dar acum, dacă tot ne apropiem de sfârșitul verii… „I’m back baby” și am ceva nou.
Înapoi la cucerirea bursei
Cum abordăm cucerirea asta, pentru că nu e o sarcină ușoră?
Imediat îți spun abordarea la care mă gândesc, dar mai întâi ar mai fi o întrebare.
Merită să riști să investești la bursă?
Pentru majoritatea oamenilor răspunsul e nu.
E clar că e posibil să pierzi bani și e normal să te întrebi dacă merită să-ți asumi acest risc. Care e recompensa? Cât poți câștiga?
Ca să ai câteva referinte, fondul Medallion, unul dintre cele mai de succes fonduri de investiții din istorie a obținut un randament mediu de 39% pe an timp de 30 de ani.
Berkshire Heathaway, compania lui Warren Buffett a obtinut o medie de aproximativ 20% pe an timp de 56 de ani, în timp ce S&P500 a crescut în medie cu aproximativ 10% pe an timp de peste 100 de ani.
În afară de exemplele de mai sus, au existat mii de fonduri care au dat faliment, unele dintre ele pierzând toți banii investitorilor.
Chiar dacă în cele 3 exemple randamentele medii sunt pozitive, toate au avut și ani mai slabi. S&P500 și Berkshire Heathaway au avut ani cu pierderi de pâna la -47%.
Singurul fond de care am auzit că nu a avut niciun an în pierdere e Medallion.
Hai să vedem ce câștiguri ar putea aduce asemenea randamente pe o perioadă de 10 ani dacă pornești cu o investiție de $10.000.
- Randamente Medallion (39% pe an) -> $269.245 – $10.000 = $259.245
- Randamente Berkshire Heathaway (20% pe an) -> $61.917 – $10.000 = $51.917
- Randamente S&P500 (10% pe an) -> $25.937 – $10.000 = $15.937
Așadar, dacă pierderea unor sume de bani nu-ți afectează stilul de viață și vrei să riști o anumită sumă pentru a avea șansa să realizezi asemenea profituri poți lua în considerare investițiile la piețele financiare.
Și acum, înapoi la prima întrebare…
Cum abordăm investitiile?
Dacă Medallion e cel mai de succes fond al tuturor timpurilor, aducând profituri mult peste media bursei, fără să aibă nicun an cu pierderi, de ce să nu încercăm să abordăm investițiile așa cum o fac ei?
Performanțele lor sunt probabil imposibil de obținut din cauză că ei au în echipă o grămadă de super matematicieni, fizicieni și oameni de știință, plus zeci de ani de experiență, dar tot e o idee bună să învățăm tot ce se poate de la acest fond.
Medallion a folosit dintotdeauna algoritmi și aproape toate tranzacțiile fondului au fost realizate de computere. Asemenea programe se numesc „trading bots” (roboti de tranzactionare).
Cele mai importante motive pentru care robotii de tranzactionare pot avea rezultate mai bune decât traderii care executa tranzactii manuale sunt:
- capacitatea de procesare a informatiilor e mult mai mare decât a unui om
- mulți traderi iau decizii greșite din cauza emoțiilor, lucru care evident nu se întâmplă în cazul roboților
Acesti roboti analizeaza tot felul de date cu scopul de a face predictii legate de evoluția preturilor anumitor active tranzacționate.
De obicei e vorba despre baze de date cu prețurile istorice dar există mulți alți indicatori și alte informații care pot fi luate în considerare pentru a face predicții și a iniția tranzcții.
Exemple pot fi: date legate de inflație, de șomaj, ratele dobânzilor, dar și trend-uri de căutări pe internet sau apariția unor cuvinte și fraze în comunicate de presă sau în mediul online.
Din toate aceste cantități uriașe de date se pot construi nenumarate modele și strategii de tranzactionare care se pot implementa sub forma de roboti de tranzactionare.
Până când am suficientă experiență și cunoștințe încât să dezvolt propriile strategii, voi începe să studiez lucrări de cercetare despre bursă și să dezvolt roboți de tranzacționare pe baza celor mai promițătoare strategii descoperite în aceste lucrări.
De exemplu, chiar strategia din episodul 1 al serialului Arsenal de lucrări de cercetare pentru cucerirea bursei se poate transforma într-un roboțel.
În concluzie, voi urma 3 pași principali:
- Studiul cât mai multor lucrări de cercetare despre bursă pe care le găsesc aici: https://www.ssrn.com/index.cfm/en/rps/
- Dezvoltare roboti de tranzactionare in Python pe baza strategiilor profitabile descoperite in lucrari
- Punerea in functiune a robotilor cu alocarea unui buget în funcție de performanțele strategiei și de componența totală a strategiilor din portofoliu
Cum funcționează și cum se dezvoltă în Python un robot de tranzacționare
În viitor o să public mai multe detalii despre dezvoltarea roboților, sau chiar codul unora dintre ei, dar astăzi o să explic doar câteva chestii de bază ca să înțelegi cu ce se mănâncă treaba asta.
În primul rand, pentru a putea face tranzactii folosind roboti ai nevoie de un cont la un broker care ofera acces via API (application programming interface). Poti vedea aici o lista: https://www.wikijob.co.uk/trading/forex/brokers-with-api-access.
Eu folosesc si recomand Interactive Brokers si voi dezvolta roboti care vor functiona cu acest broker.
Roboțelul e un program care rulează în permanență pe computerul tău sau pe un VPS (server privat virtual) dacă vrei să ai mai multa incredere in conexiunea la internet.
Pe acelasi computer se instaleaza si un program de tipul platforma de tranzactionare, in cazul Interactive Brokers (IB) platforma se numeste Trader Workstation.
O platforma de tranzactionare se foloseste pentru a vizualiza grafice de pret pentru diferite active (actiuni, ETF-uri, crypto, obligatiuni, etc), știri, pentru a analiza graficele folosind diferiti indicatori și pentru a seta ordine de tranzactionare.
Daca brokerul ofera un API, tranzactiile se pot realiza prin niste apeluri de functii care trimit mesaje de la robot la platforma.
Practic ce actiuni poti face manual pe platforma le poti face si prin cod.
Înainte să scrii cod e nevoie sa faci câteva setări la platforma de tranzacționare.
În Global Configuration / API – Settings asigură-te că e bifată prima opțiune, Enable ActiveX and Socket Clients și e debifată a doua: Read-Only API.
Codul pentru un robot de tranzacționare e format din 3 componente principale.
- Conectarea la API, care in cazul Interactive Brokers se numește IBApi
- Logica robotului. Aceasta e partea cea mai complexa in care se analizeaza date si se iau decizii de tranzactionare
- Crearea si plasarea ordinelor de tranzacționare
În articolele următoare vom discuta mai mult legat de partea de logica, scopul acestui articol fiind să facă o introducere și sa ofere o privire de ansamblu despre cum se dezvolta si cum functioneaza roboti de tranzactionare.
Iată și codul pentru un robot de tranzactionare cu o logica extrem de simpla: te intreaba ce simbol vrei sa tranzactionezi, ce cantitate și cu ce preț, apoi plasează un ordin de timp bracket care conține un ordin de cumpărare la pretul specificat de tine, un ordin de vânzare de tip Stop Loss la un pret cu 1% sub pretul pietei și un ordin de vânzare de tip Limit la un preț cu 2% mai mare decât prețul pieței.
#Trading bot that sets and places a bracket order for Interactive Brokers
Acest progrămel e aproape inutil în ceea ce privește tranzacționarea deoarece nu are de fapt nicio logică. L-am inclus totuși pentru că e folositor ca punct de plecare pentru a dezvolta roboți adevărați.
Dacă dorești să te joci cu el să vezi cum plasează ordinele, ai nevoie de un cont activ la Interactive Brokers și apoi trebuie să urmezi pașii de mai jos.
- Pornește Trader Workstation si fă setările specificate mai sus în articol.
- Salvează codul de mai sus intr-un fisier cu extensia .py (ex firstbot.py)
- Ruleaza programelul dintr-un terminal folosind comanda: python firstbot.py (include si calea catre fisierul tau)
Daca totul a mers bine vei vedea ordinele tale in platforma. Eu am introdus datele symbol – SPY, number of shares – 4 și limit price – 380. Rezultatul poate fi văzut în imaginea de mai jos.
Bogdan Popescu – Clubul Investitorilor
Buna ziua
multumesc pentru materiale. Intotdeauna gasesc ceva interesant
Multumesc Elemer. Ma bucur ca iti folosesc.
Bună dimineața Bogdan
și mulțumesc mult pentru materialele ce mi le trimiți.
Se salvează și recitesc până la însușire.
Păstrez ca valoros și materialul tău de welness pe care mi-am permis a-l orândui grafic un pic și ți-am trimis elaboratul. Parcă acum doi ani sau anul trecut.
Buna dimineata dl Sorin.
Multumesc si eu pentru mesaj.
Toate cele bune va doresc.