Automatizált tőzsdei kereskedés: Mire figyelj? Melyek a buktatók?
Az automatizált kereskedés hallatán sokan még ma is egy olyan kereskedési robotra gondolnak, amelyet telepítünk a számítógépünkre, majd a program önállóan adja-veszi a devizákat, részvényeket vagy kriptodevizákat. A valóság ennél jóval összetettebb. Az automatizált kereskedés mögött általában egy előre meghatározott szabályrendszer áll, amely meghatározza, milyen feltételek mellett nyitunk vagy zárunk pozíciót, mekkora pozíciót vállalunk, és hogyan kezeljük a kockázatot.
Az elmúlt években ráadásul jelentősen kibővültek az automatizált kereskedés lehetőségei. A klasszikus MetaTrader robotok mellett ma már Pythonban vagy R-ben készített modellekkel, kereskedési platformokon, felhőalapú rendszerekkel és közvetlen bróker API-k segítségével is létrehozhatunk automatizált stratégiákat. Ezzel együtt az adatok feldolgozása, a statisztikai vizsgálatok és a visszatesztelés is sokkal nagyobb szerepet kapott.
Megfigyelhető azonban, hogy a technológiai fejlődés nem oldotta meg az automatizált kereskedés legfontosabb problémáját. Továbbra is olyan kereskedési szabályt kell találnunk, amely múltbeli adatokon kimutatható, gazdaságilag vagy piaci szempontból értelmezhető, a költségek figyelembevétele után is működőképes, és lehetőleg a mintán kívüli időszakban is fennmarad.
Ebben a bejegyzésben az automatizált kereskedés legfontosabb kérdéseit tekintjük át. Megnézzük, hogyan épül fel egy automatizált rendszer, milyen eszközökkel készíthetünk ilyet, milyen adatokra van szükségünk, hogyan végezhetünk visszatesztelést, és milyen hibák vezethetnek félre bennünket. Témáink:
- Mit jelent az automatizált kereskedés?
- Mi a különbség az automatizált, algoritmikus és kvantitatív kereskedés között?
- Hogyan épül fel egy automatizált kereskedési rendszer?
- Milyen programozási nyelveket és platformokat használhatunk?
- Mire használható a MetaTrader?
- Hogyan kapcsolódhat egy algoritmus a brókerhez?
- Milyen adatokra van szükségünk?
- Milyen stratégiák automatizálhatók?
- Hogyan teszteljünk egy kereskedési stratégiát?
- Melyek a backtest legfontosabb buktatói?
- Miért fontosak a költségek és a slippage?
- Mire jó a paper trading?
- Mire figyeljünk kész kereskedési robot vásárlásakor?
Mit jelent az automatizált kereskedés?
Kezdjük a definícióval, mert ezzel több félreértést is elkerülhetünk. Az automatizált kereskedés során egy program előre meghatározott szabályok alapján hoz kereskedési döntéseket vagy hajtja végre azokat. A szabályok meghatározhatják a belépés és kilépés feltételeit, a pozíció méretét, a kockázatkezelést és számos további paramétert.
Egy egyszerű rendszer például megvásárolhat egy részvényt akkor, amikor az árfolyam a 200 napos mozgóátlag fölé kerül, majd eladhatja, amikor ismét a mozgóátlag alá esik. Ennél lényegesen összetettebb algoritmusok is létrehozhatók. Figyelembe vehetjük a vállalat fundamentális adatait, az árfolyam momentumát, a volatilitást, makrogazdasági változókat vagy akár szöveges információkból képzett mutatókat.
Fontos tehát látni, hogy az automatizálás önmagában nem jelent intelligens vagy nyereséges kereskedést. A program azt hajtja végre, amit előzetesen meghatároztunk számára. Ha a szabályrendszer rossz, annak automatizálása csak azt eredményezi, hogy gyorsabban és következetesebben hajtjuk végre a rossz döntéseket.
Automatizált, algoritmikus és kvantitatív kereskedés
A három fogalmat gyakran egymás szinonimájaként használják, pedig érdemes különbséget tenni közöttük. Az automatizált kereskedés elsősorban a végrehajtás automatizálására utal. A rendszer előre meghatározott feltételek teljesülése esetén automatikusan küldhet megbízást a piacra. Egy egyszerű technikai indikátoron alapuló MetaTrader robot is ebbe a kategóriába tartozhat.
Az algoritmikus kereskedés ennél tágabb fogalom. Itt valamilyen algoritmus határozza meg a kereskedési döntést vagy annak végrehajtását. Az algoritmus lehet nagyon egyszerű, de rendkívül összetett is. A kvantitatív kereskedésben az adatok, a statisztikai vizsgálatok és a modellek kapnak nagyobb szerepet. Egy kvantitatív stratégia például több ezer részvény múltbeli adatait vizsgálhatja, rangsorolhatja a részvényeket momentum, értékeltség vagy más változók alapján, majd ezekből alakíthat ki portfóliót.
Az utóbbi években ehhez kapcsolódtak a gépi tanulási és mesterséges intelligencián alapuló módszerek is. Ezek használhatók például nagyszámú változó közötti kapcsolatok feltárására, szöveges adatok elemzésére vagy különböző piaci állapotok azonosítására. Ettől azonban ugyanúgy fennáll a túlillesztés és a hibás visszatesztelés veszélye. Egy összetettebb modell még könnyebben találhat véletlenszerű kapcsolatokat a múltbeli adatokban.
Hogyan épül fel egy automatizált kereskedési rendszer?
Az automatizált kereskedésre érdemes folyamatként tekinteni. Maga a kereskedési robot ennek csak az egyik része. Egy tipikus rendszer a következő lépésekből épül fel:
- kereskedési ötlet kialakítása,
- megfelelő adatok beszerzése,
- a kereskedési szabály pontos meghatározása,
- visszatesztelés,
- mintán kívüli ellenőrzés,
- költségek és végrehajtási problémák figyelembevétele,
- paper trading,
- éles kereskedés,
- a rendszer folyamatos ellenőrzése.
Ahogy fentebb beszéltünk róla, már az első lépés is komoly munkát igényel. Attól, hogy találunk egy múltban jól működő szabályt, még egyáltalán nem biztos, hogy valódi piaci összefüggést fedeztünk fel. Minél több indikátort, paramétert és stratégiát próbálunk ki, annál nagyobb az esélye annak, hogy pusztán véletlenül találunk látványos eredményt.
Milyen programozási nyelvek alkalmasak automatizált kereskedésre?
A kereskedési robot egy előre meghatározott szabályokat követő szoftver, így valamilyen programozási környezetre szükségünk lesz. A megfelelő eszköz nagyrészt attól függ, milyen stratégiát szeretnénk kialakítani. A MetaTrader környezetében az MQL nyelv használható. Ez kézenfekvő választás lehet annak, aki forex vagy CFD piacon szeretne technikai indikátorokra épülő automatizált rendszert készíteni.
Összetettebb adatfeldolgozási és kvantitatív feladatokhoz a Python vált az egyik legelterjedtebb eszközzé. Számos statisztikai, adatkezelési és gépi tanulási könyvtár érhető el hozzá, és sok bróker, illetve adatszolgáltató API-ja is használható Pythonból. Az R szintén alkalmas pénzügyi adatok feldolgozására, statisztikai elemzésre és visszatesztelésre. Kutatási környezetben komoly előnye a statisztikai és ökonometriai eszközök széles választéka.
Emellett C++, Java és más programozási nyelvek is használhatók. Nagy sebességet igénylő kereskedési rendszereknél például a végrehajtási sebesség és a rendszer teljesítménye sokkal fontosabb lehet, mint egy napi vagy havi gyakorisággal kereskedő stratégiánál.
Mire használható a MetaTrader?
A hazai kereskedők körében az automatizált kereskedés hosszú ideig szorosan összekapcsolódott a MetaTrader 4 és MetaTrader 5 platformokon futó Expert Advisor programokkal. Ennek érthető oka van. A MetaTrader széles körben elérhető, a kereskedési robotok viszonylag egyszerűen telepíthetők, és a rendszer saját visszatesztelési lehetőséget is biztosít.
A MetaTrader elsősorban olyan stratégiákhoz kényelmes, amelyek árfolyamadatokra és technikai indikátorokra épülnek. Mozgóátlagok, RSI, MACD, kitörések vagy más technikai szabályok viszonylag egyszerűen automatizálhatók.
Megfigyelhető azonban, hogy a kvantitatív kereskedés ennél jóval szélesebb adatkört használhat. Egy részvénystratégia figyelembe veheti például a vállalat nyereségét, értékeltségét, mérlegadatait, momentumát, volatilitását vagy számos más vállalati és piaci jellemzőt. Ilyen esetben egy általános programozási környezet és egy megfelelő adatbázis sokkal nagyobb szabadságot biztosíthat.
A MetaTrader esetében arra is figyeljünk, hogy a forex piacon megjelenő volume adat jellemzően tick volume. Ez az adott időszakban bekövetkező árfrissítések számát méri, és nem azonos a szabályozott tőzsdéken megfigyelhető tényleges kereskedési volumennel.
Milyen platformokon lehet automatizált kereskedési rendszert készíteni?
Ahelyett, hogy hosszú platformlistákat próbálnánk összeállítani, célszerű azt megvizsgálni, milyen feladatra keresünk megoldást. A szolgáltatások gyorsan változnak, miközben az alapvető lehetőségek lényegében ugyanazok maradnak.
Az egyik lehetőség a kereskedési platformon belüli fejlesztés. Ide tartozik például a MetaTrader és az MQL, illetve más platformok saját programozási környezete. Ezek előnye, hogy a stratégia fejlesztése és a végrehajtás ugyanazon rendszerben történhet.
A második lehetőség egy olyan kvantitatív vagy backtesting platform használata, amely adatokat, fejlesztési környezetet és sok esetben brókerkapcsolatot is biztosít. Ilyen rendszer például a QuantConnect. Ezeknél jelentős előny lehet, hogy a múltbeli adatok beszerzésének és kezelésének egy részét a szolgáltató végzi.
A harmadik lehetőség egy saját kutatási környezet kialakítása. Python vagy R segítségével saját adatbázist építhetünk, elkészíthetjük a visszatesztelést, majd API segítségével kapcsolódhatunk a brókerhez. Ez nagyobb szabadságot biztosít, ugyanakkor az adatkezelés, a hibák ellenőrzése és a rendszer üzemeltetése is a saját feladatunk lesz.
Hogyan kapcsolódik az algoritmus a brókerhez?
Az automatizált rendszernek valamilyen módon el kell juttatnia a megbízást a brókerhez. Platformon belüli automatizálás esetén ezt maga a kereskedési platform kezeli. A MetaTrader Expert Advisor például közvetlenül a MetaTrader környezetében képes megbízásokat küldeni.
Más rendszereknél gyakori megoldás az API használata. Az API lehetővé teszi, hogy a saját programunk kommunikáljon a bróker rendszerével, lekérje a szükséges információkat, és megbízásokat küldjön. A bróker kiválasztásakor ezért több szempontot is érdemes megvizsgálni:
- van-e elérhető API,
- milyen piacokat és termékeket érünk el,
- milyen megbízástípusok használhatók,
- milyen gyakorisággal küldhetünk lekérdezéseket és megbízásokat,
- van-e paper trading lehetőség,
- milyen piaci adatokat kapunk,
- mekkorák a kereskedési költségek,
- hogyan történik a megbízások végrehajtása.
Tegyük a fentiekhez hozzá, hogy egy jól működő backtest és egy jól működő végrehajtási rendszer két külön probléma. Elképzelhető, hogy a stratégia történelmi adatokon jól teljesít, miközben a gyakorlatban a spread, a slippage vagy a piaci likviditás miatt az eredmény jelentősen romlik.
Múltbeli adatok szerepe az automatizált kereskedésben
Ha elkészítünk egy kereskedési rendszert, akkor célszerű múltbeli adatokon megvizsgálni a működését. Ehhez azonban megfelelő minőségű adatokra van szükségünk. Ha az adatok hibásak vagy hiányosak, a visszatesztelés eredménye is félrevezető lehet.
Részvénypiaci vizsgálatoknál például komoly problémát okozhat, ha a múltbeli adatbázis csak a ma is létező vállalatokat tartalmazza. Ezzel automatikusan kihagyhatjuk azokat a társaságokat, amelyek csődbe mentek, felvásárolták őket vagy más okból kivezették részvényeiket a tőzsdéről. Ez az úgynevezett survivorship bias egyik tipikus esete.
Arra is figyelni kell, hogy az árfolyamadatokat megfelelően korrigálták-e részvényfelosztásokkal, osztalékokkal és más vállalati eseményekkel. Egy részvényfelosztás például megfelelő korrekció nélkül hatalmas árfolyamesésnek tűnhet.
Fundamentális stratégiáknál még összetettebb a probléma. Nem elegendő tudnunk, hogy egy vállalat egy adott évben mekkora nyereséget ért el. Azt is tudnunk kell, hogy az információ pontosan mikor vált elérhetővé a befektetők számára. Ha a modell olyan információt használ egy múltbeli döntéshez, amely akkor még nem volt nyilvános, look-ahead bias kerül a visszatesztelésbe. Egy jó adatbázis kiválasztásakor ezért több kérdést is érdemes megvizsgálni:
- tartalmazza-e a megszűnt részvényeket,
- hogyan kezeli a vállalati eseményeket,
- korrigált vagy korrigálatlan árfolyamokat használunk-e,
- pontosan mikor váltak elérhetővé a fundamentális adatok,
- hogyan kezeli az utólag módosított adatokat,
- milyen gyakoriságú adatok érhetők el,
- vannak-e hiányzó vagy hibás megfigyelések.
Ingyenes adatforrásokkal is lehet kutatásokat és egyszerűbb visszateszteléseket készíteni. Hosszabb időszakot, sok részvényt vagy fundamentális adatokat használó komolyabb vizsgálatoknál azonban az adatminőség egyre fontosabb kérdéssé válik.
Automatizált kereskedésben alkalmazott stratégiák
Az automatizált kereskedés során számos különböző stratégia használható. Az automatizálhatóság szempontjából azok a módszerek kedvezőek, amelyek szabályai egyértelműen meghatározhatók. Ha pontosan le tudjuk írni, milyen feltételek mellett történik a vétel és az eladás, akkor a szabály általában programozható is.
1) Trendkövető és momentum stratégiák
A trendkövető algoritmusok jellemzően mozgóátlagokat, MACD indikátort, különböző árcsatornákat és kitöréseket használhatnak. A cél annak felismerése, hogy kialakult-e egy tartós árfolyammozgás, amelyet követni lehet.
A trendkövető rendszerek egyik előnye, hogy a szabályaik gyakran egyszerűen programozhatók. Egy mozgóátlag-kereszteződés vagy egy meghatározott időszak maximumának áttörése pontosan definiálható.
A momentum ennél tágabb jelenség. A momentum stratégiák arra építenek, hogy a közelmúltban jobban teljesítő eszközök teljesítménye bizonyos időtávokon továbbra is eltérhet a gyengébben teljesítő eszközökétől. Ez idősoros és keresztmetszeti formában is vizsgálható.
2) Mean reversion stratégiák
A mean reversion mögötti elképzelés szerint egy változó az átlagtól történő jelentős eltávolodás után visszatérhet egy korábbi vagy hosszabb távú egyensúlyi szint közelébe.
Egyszerű példa lehet, amikor egy részvény árfolyama jelentősen eltávolodik a mozgóátlagától, és a stratégia az eltérés csökkenésére számít. Ugyanez az elv más pénzügyi változók esetében is vizsgálható. Ide kapcsolódik például a short-term reversal hatás, amelynek különböző változatait részvénypiaci adatokon is vizsgálták.
3) Statistical arbitrage és pairs trading
A klasszikus arbitrázs során olyan árkülönbséget próbálunk kihasználni, amely ugyanazon vagy szorosan összekapcsolódó eszközök között jelenik meg. Az automatizált kereskedésben azonban gyakran statistical arbitrage néven találkozunk olyan stratégiákkal is, amelyek statisztikai kapcsolatok fennmaradására építenek.
Ennek ismert példája a pairs trading. A módszer során két olyan eszközt keresünk, amelyek között korábban stabil kapcsolat volt megfigyelhető. Ha az árfolyamuk közötti eltérés jelentősen megnő, a stratégia arra számít, hogy később ismét közelednek egymáshoz.
Fontos azonban, hogy ezt ne keverjük össze a kockázatmentes arbitrázzsal. Attól, hogy két részvény árfolyama hosszú időn keresztül együtt mozgott, a kapcsolat a jövőben megszűnhet. A pairs trading ezért piaci és modellkockázattal is jár. A témáról részletesebben itt beszéltünk: Pairs trading arbitrázs módszer négy évtizedes eredménye.
4) Statisztikai összefüggéseken alapuló stratégiák
A pénzügyi piacokon számos olyan összefüggést dokumentáltak, amely múltbeli adatokon statisztikailag kimutatható volt. Ide sorolható többek között a momentum, a short-term reversal, a long-term reversal, az 52 hetes csúcs és a MAX effect.
Ezekből szabályalapú stratégiák készíthetők. Például egy keresztmetszeti stratégia minden hónapban rangsorolhatja a részvényeket az előző 12 hónap teljesítménye alapján, majd a rangsor alapján alakíthat ki portfóliót.
Sajnos azonban itt könnyen beleütközünk az adatbányászat problémájába. Ha több száz változót, különböző időtávokat és számos belépési szabályt vizsgálunk, szinte biztosan találunk olyan kombinációkat, amelyek a múltban jól működtek. Ez még nem bizonyítja, hogy valódi, jövőben is kihasználható összefüggést találtunk.
5) Event-driven stratégiák
Automatizálhatók olyan stratégiák is, amelyek valamilyen vállalati vagy piaci eseményre reagálnak. Ilyen lehet egy gyorsjelentés, osztalékbejelentés, részvény-visszavásárlás, indexbe kerülés vagy más előre meghatározható esemény.
Ezeknél a stratégiáknál az esemény pontos időpontjának meghatározása kiemelt jelentőségű. Ha például egy vállalati bejelentést a kereskedési idő után tettek közzé, akkor a stratégia nem használhatja fel ezt az információt az aznapi záróáron történő vásárláshoz.
Hogyan teszteljünk egy automatizált kereskedési stratégiát?
A visszatesztelés célja annak vizsgálata, hogyan viselkedett volna a stratégia korábbi piaci környezetben. Ez fontos lépés, de önmagában egy jó backtest még nem bizonyítja, hogy működőképes stratégiát találtunk.
Az egyik legegyszerűbb hiba, amikor addig módosítjuk a paramétereket, amíg a múltbeli eredmény a lehető legjobb nem lesz. Tegyük fel, hogy egy mozgóátlagos rendszernél több száz különböző periódust kipróbálunk, majd kiválasztjuk azt, amelyik a legmagasabb hozamot produkálta. Könnyen lehet, hogy éppen egy múltbeli véletlenhez igazítottuk a stratégiát.
Ezért célszerű különválasztani a modell kialakítására használt adatokat és azokat az adatokat, amelyeken a kész szabályt ellenőrizzük. Az előbbit gyakran in-sample, az utóbbit out-of-sample mintának nevezzük.
Az out-of-sample vizsgálat során olyan időszakon teszteljük a stratégiát, amelyet a paraméterek kialakításakor nem használtunk. Ha a teljesítmény itt teljesen eltűnik, az figyelmeztető jel lehet arra, hogy a múltbeli eredmény jelentős része túlillesztésből származott.
A backtest legfontosabb buktatói
Egy visszatesztelés során számos olyan hiba fordulhat elő, amely látványosan javítja a kimutatott teljesítményt. Ezek egy része programozási hiba, más része az adatokból vagy a kutatás felépítéséből ered.
A fontosabb problémák:
- survivorship bias,
- look-ahead bias,
- data snooping,
- túlillesztés,
- hibás vagy hiányos adatok,
- túl sok paraméter,
- tranzakciós költségek kihagyása,
- slippage figyelmen kívül hagyása,
- likviditási korlátok kihagyása.
A data snooping problémája azért veszélyes, mert a kutató saját maga hozhat létre olyan helyzetet, amelyben véletlenszerű összefüggéseket talál. Ha ugyanazon az adatbázison több ezer stratégiát próbálunk ki, a legjobb eredmények között nagy valószínűséggel lesznek olyanok, amelyek pusztán a véletlen miatt kerültek oda.
A paraméterek stabilitását is érdemes megvizsgálni. Ha például egy stratégia kizárólag 197 napos mozgóátlag mellett működik jól, miközben 190 vagy 205 napnál már eltűnik az eredmény, az gyanús lehet. Egy robusztus összefüggésnél általában azt szeretnénk látni, hogy a közeli paraméterértékek mellett sem omlik össze teljesen a teljesítmény.
Walk-forward vizsgálat és robusztusság
Egyetlen in-sample és out-of-sample felosztás mellett további ellenőrzések is használhatók. A walk-forward teszt során például mindig csak a múltban rendelkezésre álló adatokból alakítjuk ki vagy frissítjük a modellt, majd egy következő időszakon vizsgáljuk annak teljesítményét.
Ez közelebb áll ahhoz a helyzethez, amellyel a valós kereskedésben találkozunk. Ott ugyanis mindig csak a múlt adatait ismerjük. A következő hónap vagy év adatai még nem állnak rendelkezésünkre.
Érdemes azt is megvizsgálni, hogy az eredmény fennmarad-e más időszakokon, más piacokon, eltérő részvényuniverzumban vagy kissé módosított paraméterek mellett. Minél több egymástól független ellenőrzésen megy át egy stratégia, annál több információnk lesz arról, mennyire stabil a múltban megfigyelt összefüggés.
Tranzakciós költségek és slippage
Egy stratégia papíron elért hozama és a ténylegesen realizálható hozam között jelentős különbség lehet. Ennek egyik oka a kereskedési költség. Ide tartozhat a bróker jutaléka, a bid-ask spread, különböző tőzsdei díjak és a slippage. Utóbbi azt jelenti, hogy a megbízás nem feltétlenül azon az áron teljesül, amelyet a modell a jelzés pillanatában látott.
Ez a probléma nagy forgalmú részvényeknél és ritkán kereskedő stratégiáknál kisebb lehet. Gyakori kereskedésnél, illikvid részvényeknél vagy rövid távú stratégiáknál viszont akár a teljes kimutatott többlethozamot felemésztheti.
Tegyük a fentiekhez hozzá, hogy a költségek jelentősége a stratégia időtávjától is függ. Egy évente néhány alkalommal kereskedő trendkövető rendszer teljesen más költségterheléssel működik, mint egy naponta több száz tranzakciót végrehajtó algoritmus.
A hozam mellett a kockázatot is vizsgálni kell
Az optimalizáció során könnyű abba a hibába esni, hogy egyszerűen a legnagyobb múltbeli hozamot elérő paraméterkombinációt választjuk. Egy kereskedési rendszer értékelése azonban ennél jóval összetettebb.
Érdemes megvizsgálni többek között a volatilitást, a maximális visszaesést, a veszteséges időszakok hosszát, az egységnyi kockázatra jutó hozamot és a stratégia különböző piaci környezetekben mutatott teljesítményét.
Az sem mindegy, hogyan keletkezett a hozam. Két stratégia elérhet ugyanakkora éves átlagos teljesítményt úgy, hogy az egyik viszonylag egyenletes eredményt mutat, a másik pedig több év veszteség után néhány kiugró ügyletből termeli meg a teljes nyereséget.
Mire jó a paper trading?
A múltbeli tesztelés után érdemes lehet a stratégiát valós idejű adatokon, de tényleges pénzügyi kockázat nélkül is megfigyelni. Ezt nevezzük paper tradingnek.
A paper trading egyik előnye, hogy olyan problémák is felszínre kerülhetnek, amelyek a visszatesztelés során nem jelentkeztek. Hibás adat érkezhet, megszakadhat az API-kapcsolat, rosszul működhet egy megbízástípus, vagy eltérés jelenhet meg a modell által feltételezett és a tényleges végrehajtási ár között.
Ugyanakkor a paper trading sem tökéletes másolata az éles kereskedésnek. A szimulált teljesülések kedvezőbbek lehetnek a valós végrehajtásnál, és a tényleges piaci hatást sem minden rendszer képes megfelelően modellezni.
Mi történik az éles kereskedés elindítása után?
Egy automatizált rendszer munkája nem ér véget azzal, hogy bekapcsoljuk az algoritmust. A rendszer működését folyamatosan ellenőrizni kell. Figyelni kell arra, hogy megfelelően érkeznek-e az adatok, helyesen keletkeznek-e a jelzések, teljesülnek-e a megbízások, és a tényleges eredmények mennyire térnek el a modell által várttól.
A teljesítmény romlása önmagában még nem bizonyítja, hogy a stratégia megszűnt működni. Minden kereskedési rendszernek lehetnek gyengébb időszakai. Ugyanakkor azt is el kell fogadnunk, hogy a pénzügyi piacok változnak. Egy korábban létező összefüggés gyengülhet vagy teljesen eltűnhet.
Éppen ezért már a rendszer elindítása előtt érdemes meghatározni, milyen feltételek mellett vizsgáljuk felül vagy állítjuk le a stratégiát. Ha ezt csak egy nagy veszteség után döntjük el, könnyen az aktuális eredményekhez igazíthatjuk a szabályainkat.
Megvásárolható forex, tőzsde és kripto robotok
Az automatizált kereskedési rendszer kialakítása sok munkát és megfelelő szaktudást igényel. Emiatt kézenfekvőnek tűnhet, hogy saját fejlesztés helyett vásároljunk egy kész kereskedési robotot.
Az interneten számos olyan forex, tőzsdei és kriptokereskedési robotot találunk, amelyhez látványos visszateszteléseket vagy magas múltbeli hozamokat mutatnak be. Ezek értékelésekor azonban ugyanazokat a kérdéseket kell feltennünk, amelyeket egy saját stratégia esetében is feltennénk.
Nem tudjuk automatikusan egy szép hozamgörbéből megállapítani, hány különböző változatot próbált ki a fejlesztő, hogyan választotta ki a paramétereket, milyen adatokon készült a teszt, figyelembe vették-e a költségeket, illetve hogyan teljesített a rendszer valódi, korábban nem látott adatokon.
A martingale típusú rendszerek további problémát jelenthetnek. Ezek hosszú ideig látványosan magas találati arányt és egyenletes eredményt mutathatnak, miközben ritkán bekövetkező nagy veszteség kockázatát hordozzák.
Ezért egy kereskedési robot megvásárlásakor önmagában a múltbeli hozam kevés információt ad. Sokkal fontosabb megérteni a stratégia működését, kockázatait, tesztelési módszerét és azt, hogy milyen feltételek mellett romolhat el.
A kész robotokkal és a megtévesztő visszatesztelésekkel részletesen az alábbi cikkben foglalkozunk: Tőzsde, forex, kripto robotok: Valószínű veszíteni fogsz.
Összegzés
Az automatizált kereskedés jóval többet jelent annál, hogy telepítünk egy robotot, majd rábízzuk a kereskedést. Egy működő rendszer mögött kereskedési ötlet, megfelelő adatbázis, pontosan meghatározott szabályok, visszatesztelés, robusztussági vizsgálatok és megfelelő végrehajtás áll.
Megfigyelhető azonban, hogy a legtöbb probléma nem magánál az automatizálásnál jelentkezik. Sokkal nehezebb eldönteni, hogy a múltbeli adatokon talált összefüggés valódi piaci jelenséget mutat-e, vagy egyszerűen a véletlen eredménye. A túlillesztés, a data snooping, a survivorship bias és a look-ahead bias egyaránt olyan hibák, amelyek látványosan javíthatják a múltbeli eredményeket.
A technológia ma már viszonylag könnyen elérhető. MetaTraderrel, Pythonnal, R-rel, különböző kereskedési platformokkal és bróker API-kkal egyéni befektetők is képesek összetett rendszereket létrehozni. A nehezebb feladat annak eldöntése, hogy van-e olyan tartós összefüggés a rendszer mögött, amely a költségek figyelembevétele után és korábban nem látott adatokon is fennmarad.
Ahogy fentebb beszéltünk róla, ezért az automatizált kereskedés során érdemes egy teljes folyamatban gondolkodni. Az ötletet adatgyűjtés követi, majd jön a visszatesztelés, a validáció, a költségek vizsgálata, a paper trading és végül az éles végrehajtás. Az automatizálás ennek a folyamatnak fontos része, de önmagában nem helyettesíti a megfelelő kutatást és a kockázatok kezelését.