Algoritmikus kereskedés: Mit jelent? Milyen módszerei vannak? Problémák, buktatók

Kategória: 

Cikkünkben az algoritmikus kereskedés alapjaival, a módszerek sajátosságaival foglalkozunk. Megbeszéljük, milyen piacokon, milyen típusai vannak az algoritmikus kereskedésnek, és szó lesz kevésbé népszerűsített hátrányairól is az algoritmikus kereskedésnek. Témáink:

  • Mit jelent az algoritmikus kereskedés?
  • Milyen programnyelvek alatt lehet kereskedő robotot írni?
  • Milyen kereskedési platformok alatt érhető el az algoritmikus kereskedés?
  • Milyen típusai vannak az algoritmikus kereskedésnek?
  • Algoritmikus kereskedés stratégiák
  • Trendkövető algoritmikus kereskedés
  • Mean Reversion algoritmikus kereskedés
  • Arbitrázs alapú algoritmikus kereskedés
  • Statisztikai összefüggéseken alapuló algoritmikus kereskedés
  • Algoritmikus kereskedés buktatói
  • Írni vagy íratni fogod a programot?
  • Hogyan fogod tesztelni, optimalizálni a programot?
  • Vásárolni fogod a programot?

Mit jelent az algoritmikus kereskedés?

Az algoritmikus kereskedés (angol megfelelője: algorithmic trading) valójában egy számítógépes program, mely előre meghatározott szabályok szerint kereskedik a tőzsdén, devizapiacokon, határidős tőzsdéken. Nevezzük még automatizált kereskedésnek is, de a black-box trading is algoritmikus kereskedést jelöl, csak ez utóbbi esetében nem ismerjük a rendszer működését, az egy fekete doboz a kereskedő számára.

Milyen programnyelvek alatt lehet kereskedő robotot írni?

Érdemes már a cikkünk elején kitérni az algoritmikus kereskedés gyakorlati működésére is, mert azt tapasztalom a levélben beérkező kérdésekből, hogy a kezdő tőzsdei kereskedők alapvetően nem tudják ezeknek a programoknak a működését elképzelni. Arról lenne tehát szó, hogy van számos különböző programnyelv, melyben elkészíthető egy szabályrendszer, egy program, hiszen az algoritmikus kereskedés valójában egy szoftvert jelent. A programnyelvek tekintetében az általános célokra használt nyelvek, mint a Matlab, Python, C++, JAVA, Perl használhatók arra, hogy egy automata kereskedési szoftvert készítsünk, de vannak kifejezetten csak erre a célra használható szoftverek. Ilyen például a forex robotok írására használt MQL nyelv, mellyel készített programok kizárólag a metatrader platform alatt futtathatók.

 
 

Milyen kereskedési platformok alatt érhető el az algoritmikus kereskedés?

Az első lépésként tehát szükség van arra, hogy egy automatizált programot elkészítsünk, majd ha ez megvan, akkor keresnünk kell egy olyan platformot, amely képes fogadni egy automata kereskedési rendszer utasításait. Ilyen program a népszerű metatrader 4-5, melyben MQL nyelvben, és külső programnyelveken írt programok is futtathatók, de népszerű programok közé sorolható az Amibroker, a Ninjatarder, melyek szintén brókercég független megoldások, illetve számos brókercég kínál lehetőséget arra, hogy API-n keresztül kapcsolódjunk a rendszerhez, így az automatizált programok végrehajthatók.

A metatrader 4-5 az egyik legnépszerűbb program, azonban a hátránya közé sorolható, hogy nagyrészt forex és OTC brókercégek használják, azaz tőzsdék kívüli piacokat érhetünk el. Ilyen például a devizapiaci termékek, az index CFD, részvény CFD termékek. Emellett kétségtelen tény, hogy fontos szempont az is, hogy a metatrader ingyenes, viszont ennek az az ára, hogy csak olyan brókercégnél kereskedhetünk ezen platform alatt, mely bevezette a metatrader platformot. Ezzel szemben például az Amibroker vagy a Ninjatrader programok nem ingyenesek, viszont tetszőleges brókercéggel (API hozzáférés esetén) összekapcsolható a rendszer, így tőzsdei brókercégek széles körénél használható megoldások.

A technikai tényezők közé tartozik még a számítógép kérdése. Egyrészt azért, mert az algoritmikus kereskedés során a programnak állandóan futnia kell, azaz a számítógépet nem lehet kikapcsolni, és gondoskodni kell az olyan problémákról is, mint az áramszünet, internetkimaradás esetei. Emiatt sokan szervert bérelnek (VPS), mely a fenti problémákat megoldja. Másrészt pedig az algoritmikus kereskedés része az optimalizálás, visszatesztelés, így ehhez is szükség van egy nagy teljesítményű számítógépre. Felejtsük el azt, hogy a mobil telefonunk, tabletünk segítségével folytatjuk az algoritmikus kereskedést. Ehhez ugyanis egy közepes teljesítményű asztali számítógépre van szükségünk (kb. 250-500 ezer forint közötti beruházásra számíthatunk).

Milyen típusai vannak az algoritmikus kereskedésnek?

Az alapok, a technikai feltételek megtárgyalása után térjünk át a dolog nehezére, azaz milyen szabályokat fog követni a program. Olvasói levelek alapján azt látom, hogy teljesen irreális elvárásai vannak a kezdőknek, például: „részvény kereskedéshez igénybe vehető mesterséges intelligenciák alkalmazásai érdekelnek”.

Ne csodálkozzunk ezen, ugyanis a mesterséges intelligencia (AI) fejlesztéssel kapcsolatban óriási hype-ot tapasztalhatunk, és ma már minden megkapja az „okos” jelzőt, vagy azt olvashatjuk, hogy a „kifejlesztése mesterséges intelligencia, AI bevonásával készült”. Ezek a technológiák gyerekcipőben járnak, és az AI sokszor nem több, mint reklámfogás. A nagy AI forradalom közepette ott tartunk a valóságban, hogy például a világ legnagyobb vállalatának keresője nem képes kiszűrni a spam oldalakat a találati listájáról, ahogy például a levelező rendszere spamnek néz egy szabályosan kiküldött hírlevelet, vagy a hirdetések 19 százaléka mögött csalások, csalók állnak stb.. Az alábbi képen az algoritmikus kereskedés kulcsszóra indított keresés találati lapján láthatod a 7-8 találatot jelölve.

A fenti két linken egy szó sincs az algoritmikus kereskedésről, mindössze a Google algoritmusát tévesztették meg egy egyszerű módszerrel. Mindkét találat ugyanarra a kriptopénz-átverés oldalra vezet, amely hírportálnak látszik, de az oldalon minden hír linkje ugyanoda vezet (rendelő oldal), melyen hamisított, képként berakott facebook vélemények vannak.

A lényeg, hogy a mai értelemben vett algoritmikus kereskedésnek semmi köze a mesterséges intelligenciához, a mai algoritmikus kereskedést megvalósító szoftvereknek (átlagos befektető számára elérhetők) szabályalapú működésük van, azaz if és and (ha/és) kapcsolatokkal lehet a szabályrendszert kialakítani. Egy nagyon egyszerű példán szemléltetem, hogy ez mit jelent:

  • Ha az 50 napos mozgóátlag értéke nagyobb, mint a 200 napos mozgóátlag értéke, akkor vásárolj 100 részvényt.
  • Ha az 50 napos mozgóátlag értéke kisebb, mint a 200 napos mozgóátlag értéke, akkor add el a 100 részvényt.

A fenti egyszerű szabályrendszerben semmi mást nem teszünk, csak megnézzük az 50 és 200 napos mozgóátlag helyzetét, és ha az 50 napos magasabban van, mint a 200 napos, akkor a rendszer vásárol 100 részvényt. Ha pedig az 50 napos mozgóátlag visszaesik a 200 napos alá, akkor eladja a részvényeket. Természetesen a valóságban a fentieken túl számos más szabályra szükség lenne (többek között kockázatkezelésre).

Algoritmikus kereskedés stratégiák

Az algoritmikus kereskedés során számos különböző elvet, stratégiát lehet használni. Ebben a tekintetben óriási a választék, és ehhez arra is szüksége lesz a kereskedőnek, hogy a tőzsdével, stratégiákkal kapcsolatban ismereteket szerezzen. Az alábbiakban a legfontosabb elveket, stratégiákat tárgyaljuk, melyek az algoritmikus kereskedéssel kapcsolatosak.

Trendkövető algoritmikus kereskedés

A trendkövető algoritmusok jellemzően mozgóátlagokat, mozgóátlag-alapú indikátorokat (MACD) különböző árcsatornákat, csúcsok, völgyek elemzését követik, és általában véve a technikai elemzés indikátorait hasznosítják. A célja a módszereknek, hogy meghatározzuk az uralkodó trend irányát, és amíg a trend él, addig pozícióban legyünk. A trendkövető algoritmusok előnye, hogy egyszerű a programok fejlesztése, mivel a technikai elemzés indikátorainak nagyrészt két bemenő paramétere van: az ár és a forgalom. A legtöbb metatrader alá fejlesztett rendszer egyébként technikai jeleket használ, tekintettel arra, hogy szélesebb körű adatokhoz, adatbázisokhoz nem férhetünk hozzá a metatrader alatt.

Mean Reversion algoritmikus kereskedés

A mean reversion jelenségéről már beszéltünk itt az oldalon. Röviden a lényege, hogy a pénzügyi piacokon megfigyelhető az átlagtól való eltávolodás és az átlaghoz való visszatérés (ezt jelenti a mean reversion kifejezés). Például a részvény ára eltávolodik a 200 napos mozgóátlagtól, majd újra visszatér az átlaghoz, de nem csak az ár, hanem más pénzügyi mutatók esetében is megfigyelhető a mean reversion. Egyes algoritmikus programokkal tehát a mean reversion jelenséget kihasználva kereskednek, azaz arra számítunk, hogy a korábbi mozgás megfordul, a trend megtörik. Gyakran nevezzük ezeket a módszereket fordulós technikáknak is. A metatrader platform alatt a mean reversion nagyrészt a részvény árára vonatkozik, tekintettel arra, hogy más adatokkal nem rendelkezünk. Ugyanakkor összetettebb algoritmikus rendszerekben (kvantitatív kereskedés) például arra is van lehetőség, hogy egy társaság nyeresége (EPS), vagy egyéb mutatója (P/E, P/B stb.) alapján használjuk ki a mean reversion jelenségét. Az IBS-effektust például jól ki lehet használni algortimikus kereskedésben, itt beszéltünk róla: Mit jelent a mean-reversion a tőzsdén? IBS-effektus stratégiák..

Arbitrázs alapú algoritmikus kereskedés

Az arbitrázs egy időben és térben meglévő ár-, árfolyam- és kamatkülönbözeteket kihasználó piaci szereplők által végrehajtott ügylet. Több típusa is létezik, melyek kifejezetten az algoritmikus kereskedésben használhatók. Ezek közül az ún. pairs trading technika a legismertebb. Az ún. pairs trading arbitrázs módszereknek már több, mint negyven éves hagyománya van az amerikai tőzsdéken. Megtalálhattuk befektetési bankok, hedge fundok módszerei között a módszer különböző változatait is. Ennek ellenére a módszer meglehetősen egyszerű. Keresni kell két részvényt, melyek árfolyama a múltban, hosszú távon együtt mozgott, azaz a részvények ára jól korrelált. Ha pedig a két termék között árkülönbség alakul ki, akkor vegyük meg az alulteljesítőt, és shortoljuk a felülteljesítőt. Majd pedig ha megszűnik a különbség, zárjuk az ügyletet, és kinyertük a piacból az árkülönbséget. A módszerről bővebben: Pairs trading arbitrázs módszer négy évtizedes eredménye

Statisztikai összefüggéseken alapuló algoritmikus kereskedés

Múltbeli adatokon, statisztikailag szignifikánsan kimutatott összefüggések létezésének nagy a valószínűsége. Ezeket az összefüggéseket használják ki ezek az algoritmikus rendszerek. Jó példa erre a momentum, a short-term reversal hatás, long-term reversal, az 52 hetes csúcs, a max-effect és a sort hosszasan sorolhatnák. Ezeknek az algoritmikus rendszereknek az alapját egy múltbeli adatokon statisztikailag szignifikánsan kimutatott összefüggés adja. Például a short-term reversal stratégiának létezik egy egyszerűsített változata. Az egyszerűsítés része, hogy a sok száz, sok ezer részvény helyett csak a 100 legnagyobb kapitalizációjú részvényt figyeljük, és az előző hónap teljesítménye alapján rangsort alakítunk ki. A 10 legrosszabb teljesítményű részvény piacán long pozíciót nyitunk, és ugyanakkora értékben a 10 legjobb teljesítményű részvény piacán short pozíciókat nyitunk. Az alábbi képen már egy olyan visszatesztelés eredménye látható, ahol a költségekkel is kalkuláltak.

Forrás: Another Look at Trading Costs and Short-Term Reversal Profits

Itt a stratégia három különböző változata látható. Az „A” esetben az 1500 legnagyobb részvényből válasszuk ki a 10% legjobb és 10% legrosszabb hozamút. A „B” stratégia esetében az 500 legnagyobb részvényből válasszuk ki a felső és alsó 10%-ot, és végül a „C” stratégia esetén már csak a 100 legnagyobb társaságot vizsgáljuk. Itt látható, hogy az elérhető hozam a költségeket is figyelembe véve a long lábon 13,7 bázispont, a short lábon 15,3 bázispont. Az összes átlagos heti hozam így 29 bázispont, azaz 0,29%. Bővebben: Mit jelent a short-term reversal effect a részvénypiacon?

Algoritmikus kereskedés buktatói

A fenti leírásban elhelyezett hivatkozások sokasága utal arra, hogy az algoritmikus kereskedéshez széles körű részvénypiaci ismeretek szükségesek. Sokan azonban azt gondolják, hogy elegendő megíratni egy programot, elindítani, és szépen termeli majd a profitot. Sokan azt hiszik, hogy az interneten néhány száz dollárért megvásárolható, esetleg ingyenesen letölthető robotokkal eredményeket fognak elérni. Az igazság azonban az, hogy az algoritmikus kereskedéshez legalább akkora szaktudásra van szükség, mint a tőzsdei kereskedéshez, és évek alatt lehet felkészülni az algoritmikus kereskedésre.  Nézzük sorban a problémákat.

Írni vagy íratni fogod a programot?

Saját magad szeretnéd írni a programot, vagy íratni egy programozóval? Ha saját magad írod, akkor arra számítanod kell, hogy a programnyelvet meg kell tanulni, ami hosszú hónapokat vesz igénybe. Ha pedig íratni szeretnéd, akkor a programozó óradíját kell kifizetned. Ez a program összetettségének függvényében több százezer forintos kiadást jelent. Ugyanakkor egy kereskedő robot készítése nem ér véget a program lefejlesztésével. A rendszert vissza kell tesztelni, paramétereit optimalizálni kell, elképzelhető, hogy újabb kiegészítésekre lesz szükség, azaz a program karbantartása folyamatos költséget jelent (programozói díj). Ha tehát íratod a programot, akkor várhatóan több százezer forintot kell elköltened munkadíjra úgy, hogy semmi garancia nincs arra, az elképzelésed működik.

Hogyan fogod tesztelni, optimalizálni a programot?

A következő probléma, hogy a visszateszteléshez nagyon pontos múltbeli adatok szükségesek, melyeket meg kell vásárolni, bár léteznek ingyenes források is (itt és itt mutattam ezeket be), melyek sokszor hiányosak. Pontatlan, hiányos múltbeli adatokon az eredmények sem lesznek pontosak, sajnos gyakran jobbak lesznek az eredmények, mint a valóságban. Megbízható adatforrások:

  • Spikeet
  • Igoseek
  • Factset
  • S&P Capital IQ
  • CRSP
  • Portara CQG
  • Tickdata
  • IQFeed
  • Xignite
  • QuantoQuote

Az optimalizáció is szaktudást igénylő feladat, hiszen nem abból áll az algoritmikus kereskedés, hogy a legnagyobb hozammal futtatható változatot kiválasztjuk. Jelentősége van az időszak alatti kockázatnak, maximális visszaesésnek, az egységnyi kockázatra vetített hozamnak. Ezeket a mutatókat értelmezni, érteni kell. Részletek:

Vásárolni fogod a programot?

Az interneten kb. egy évtizede elérhetők különböző kereskedési robotok, melyeket néhány száz dollárért megvásárolhatsz. Ezek 99 százaléka tartósan, hosszú távon nem fog eredményt hozni, és csak egyetlen oka volt a lefejlesztésüknek: hogy értékesíthetők legyenek.  A múltbeli adatokon kimutatott, visszatesztelhető eredmények sajátos folyamat eredményei. Gondolok itt a szándékosan manipulált eredménykimutatásokra, a múltbeli adatokra paraméterezett rendszerre, a rövid távon működő martingale elv alkalmazására, a visszatesztelt adatok manipulációjára. Egy könyvet meg lehetne tölteni azokkal a módszerekkel, hibákkal, melyekkel félrevezethetnek minket, vagy félrevezethetjük magunkat a visszatesztelt adatok alapján. Ahhoz, hogy ezeket a hibákat kiszűrjük tapasztalat és hozzáértés szükséges, induláshoz:

Általánosságban tehát elmondható, tizedszázalékokban mérhető annak az esélye, hogy találsz egy interneten megvásárolható robotot, amely tartósan nyereséget termel neked. Továbbiak: Forex robotok: Miért fogsz veszíteni? A legjobb forex robotok, ingyenes, megbízható robotok buktatói

Összegezve tehát a fentieket az algoritmikus kereskedés fontosabb lépéseit, összetevőit az alábbiak jelentik:

  1. Ki kell választani egy programnyelvet.
  2. Keresni kell egy programot, platformot, ahol futtatható a program.
  3. Keresni kell egy brókercéget, amelyhez kapcsolódni tud a program.
  4. Ki kell találni a szabályrendszert, melyet le kell fejleszteni.
  5. Szükség van egy közepes teljesítményű számítógépre.
  6. Szükségünk lesz jó minőségű árfolyam adatokra.
  7. Ha nem csak az ár a bementő paraméter (például valamilyen makroadat, pénzügyi adat kvantitatív kereskedés esetén), akkor ehhez is kell hozzáférést vásárolnunk.
  8. Vissza kell tesztelni múltbeli adatokon a rendszert.
  9. Optimalizálni kell a paramétereket, megfelelő kockázati mutatók alapján értékelni a rendszert.
  10. Dönteni az optimális változatról, melyet már futtathatunk saját számítógépünkön, vagy egy bérelt szerveren.

Ha kérdésed van a fentiekkel kapcsolatban, hozzá szeretnél szólni a témához, csatlakozz facebook csoportunkhoz ide kattintva!

Tanfolyamaink:

Új tartalmak