Forex robot: Hogyan készíts, vásárolj forex robotot?

Kategória: 

Robotok? A forex elterjedésével több programozható felület is elterjedt, amivel kereskedni is lehet. Ilyen a metatrader, ahol viszonylag jól le lehet programozni a forex stratégiákat, és a program tud kötéseket kezdeni, és azokat menedzselni, illetve zárni. Ez meghozta azt a lehetőséget, hogy emberi beavatkozás nélkül kisbefektetők is tudjanak „robotokkal”, automata forex kereskedéssel foglalkozni. Az alábbi, egyébként 10 oldalas útmutatóban, áttekintjük a forex robot-programozás lehetőségeit, megnézzük, hogyan célszerű megtervezni a forex robotot. Kitérek arra is, hogy mire figyeljünk a visszatesztelés során, szó lesz az ingyenes forex robotokról, és a megvásárolható forex robotokal kapcsolatos fontos szempontokat is megbeszéljük. Témáink:

  • Nyereséges robotok ingyen?
  • Ha nem nyereségesek a robotok...
  • Írni vagy íratni?
  • Kész robotot, vagy menet közbeni tesztelést akarunk?
  • Mi kell egy robothoz? 
  • Mikor kössön a robot?
  • A robot belép, de milyen megbízással?
  • Van-e jobb indikátor a robothoz?
  • Mekkorával kössön a robot?
  • Hibakezelés a robotban
  • Stop, és célár hibakezelése a robotokban
  • Robotunk javítása

Nyereséges robotok ingyen?

A forex robotokról nagyon sok és szerintem felesleges vita alakult ki. Van, aki a meggazdagodás lehetőségét látja benne, van, aki hevesen támadja őket. Ami biztos: a legtöbb kezdő forex kereskedőnek lesz olyan időszaka, amikor ezekkel a robotokkal foglalkozik. Én régebben jó fél évet töltöttem el azzal, hogy olyan forex kereskedő robotot találjak, ami majd jó sok pénzt hoz számomra. Utólag ez hasznos időnek bizonyult, mert rá kellett jönni arra, hogy a netről ingyen vagy esetleg pénzért, nem, vagy csak nagyon kevés jól működő robotot lehet beszerezni.

 
 

Ha nem nyereségesek a robotok...

Ha nincs, vagy kevés a működő kereskedési robot, akkor minek erre szót pazarolni? Mert a forex robotoknak van egy másik felhasználási módja is. Ez a tesztekben való használat, amikor egy adott indikátort, vagy bármi egyéb eszközt, amit le tudnak programozni, kipróbálunk, és esetleg megkeressük az optimális bemenő értékeket. Azaz tesztelésre használjuk ki a lehetőséget, és nem kereskedésre. Egy adott robot 1000 bemenő adat variációt két éves időtávon, perces adatbázison 10 óra alatt tesztelt le. Ezt én kézzel soha nem fogom tudni megcsinálni :) Már most le kell szögeznem, hogy én a tesztelésre alkalmas robotokról fogok beszélni, és nem egy „No Lost”, Szent Grál robotot fogunk építeni. Végigmegyünk a tesztelésen, a forex robot íratáson, azon, hogy mire kellene majd figyelni, hogy a robot íratás ne kidobott pénz kegyen, és azon, hogy az eredményünk megközelítse a reálisan elvárható eredményeket. A robotozás első lépése, hogy relatív normális adatsort használjunk, amiről már volt itt szó, így nem ismétlem meg a leírtakat. Most is csak azt hangsúlyozom ki, hogy csak jó, és pontos adatsoron érdemes futtatni a forex robotot, a metatraderben alapból elérhető múltbéli adatokon teljesen felesleges az optimalizálás.

Írni vagy íratni?

A kérdést az dönti el, hogy ismerjük az MQL nyelvet haladó szinten, vagy nem. Aki ismeri, az valószínűleg nem ezt a cikket olvassa, mert neki újat nem fogok tudni mondani. Aki pedig nem programozói vénával született, annak szakemberhez kell fordulni. Ami nem egyszerű! Pár programozóval dolgoztam már együtt, így van tapasztalatom abban, hogy akár a minőségben, akár pedig az árban nagyon nagy eltérések vannak ezen a téren.  Ha kiválasztottuk a programozót, akkor az első pár levélváltásnál le kell tisztázni az anyagiakat, és azt, hogy mit is fog nekünk átadni, és mikor.

A későbbi vita, bosszankodás elkerülése érdekében azt is le kell tisztázni, hogy mit kapunk meg. Én azt tanácsolom, hogy a forráskódot is kérjük el. Ennek két oka is van. Ha később egy egyszerű változtatást akarunk, akkor azt ne kelljen a programozóval megcsináltatni, hanem magunk is meg tudjuk csinálni. Olyanra gondolok, hogy alapérték megváltoztatása, egy szín megváltoztatása, ami nem túl nagy feladat. A másik ok pedig az, hogy ha van forrás, akkor ugyanazt a forex robotot esetleg folytatni tudja egy másik programozó is. Itt is egyeztessünk a programozóval, hogy kinek a tulajdona lesz a forráskód, nehogy később jogi vita legyen. Beépíthet olyan saját szellemi tulajdont képező kódrészletet, ami csak az övé, és ha igen, akkor azt nem módosíthatja más. 

Kész robotot, vagy menet közbeni tesztelést akarunk?

Amit még meg kell beszélni, hogy egy készterméket ad majd át a programozó, azaz a forex robotot megírja, és átadja, vagy munkafázisonként kérjük tesztelésre a robotot. Én a másodikat tartom szerencsésnek, mert így lépésenként ellenőrizni tudjuk, hogy valóban azt csinálja, amit akartunk, vagy valamin kell változtatni.

Mi kell egy robothoz? 

Egy ötlet, illetve egy konkrét elgondolás. Mielőtt robotot íratnánk, írjuk le azt, hogy mit is akarunk. Vagyis konkrétan milyen indikátor, milyen jelére mit csináljon a robot. Itt követtem el az első hibát, mert azt gondoltam az első forex robot kezdeményemnél, hogy mindenki azt látja a charton, amit én. Egyrészt a programozónak lehet más elképzelése arról, mikor kell belépni az adott indikátorra, illetve csak azt lehet megírni robotnak, amit teljes mértékig matematikailag is le tudunk írni. Vagyis az nem túl sokatmondó kérés, hogy „akkor lépjen be, amikor az indikátor jelez” vagy „amikor az indikátor felfele kunkorodik”. A legegyszerűbb, és a legpontosabb, ha konkrétan meghatározzuk, hogy mikor, mit csináljon a robot. Példaként a későbbiekben az itt letölthető SuperTrend indikátort fogjuk robotizálni. Ez egy indikátor, töltsük le, majd telepítsük, mert szükség lesz rá. Nézzük meg, hogy hogyan rajzol. A paramétereinek az optimalizálása lesz a cél. Az alapbeállítás nagyon jó eredményt ad azzal a forex technikával, amivel használom, de lehet-e jobb eredményeket is elérni? Kézi teszteléssel lépésenként ezt nagyon sok idő lenne kideríteni, így úgy döntöttem, hogy megíratom robotnak. Röviden mit is várunk ettől a robottól? Az indikátor jelére lépjen be (majd ezt pontosítom!), és az indikátor jele szerint mozgassa a stopot. A bemenő adatokat (gyertyaszám, és az ATR eltolás) lehessen optimalizálni.

A cél nem az, hogy ezzel kereskedjünk a forex piacon, de a teljesség kedvéért az ide vonatkozó részekről is lesz szó. Kicsit leegyszerűsítve a technikát: a jelre belépésnél a stop az indikátor pöttyére kerül, és amikor újabb pötty jelenik meg, akkor oda mozgatja a stopot. Célár nincs, így a kilépési szignál lesz a stop. A kérdés, hogy lehet-e ezt az alapértéknél jobb eredménnyel használni. Bár pár sorban írtam arról, hogy össze kell szedni azt, amit elvárunk egy robottól, de ez  hosszabb idő. Inkább pár napig gondolkodjunk arról, hogy mit is kérünk, mint menet közben derüljenek ki a robot hiányosságai. Ez csak jó pár óra, és sok pontosítás után fog csak összeállni. Amikor kész a lista, akkor szedjük sorba, pontokba, hogy mit is akarunk, majd egy napot várjunk, hátha jut még eszünkbe valami más is.

Mit akarunk elsődlegesen a robottól? 

Esetünkben azt szeretnénk, hogy az indikátor jelzéseinél kössön, majd a stopot az indikátor jelzéseivel együtt mozgassa. Gyakorlatilag ennyi a kívánság. Első lépésben ez nagyon egyszerű, kézi teszteléshez egy perc alatt meg is lehet tanítani valakinek. A forex robot íratáskor ezt kicsit ki fogjuk bővíteni, hiszen sokkal nagyobb lehetőségünk van a tesztelésre. A robot gyorsan tud sok variációt végignézni, így már most szedjük össze, hogy mit is szeretnénk. Én egy vázat adok, természetesen más robotnál másra is figyelni kell. Nekem ez az elvem, hogy az egyszerűtől haladjunk a bonyolult felé, így minden lehetőségnél el kell dönteni, hogy mi, mikor kerüljön be a rendszerbe.

Hol kössön a robot? Forex robotok

A robot íratás előtt érdemes lesz egy dolgot átgondolni. Ha saját indikátor is van, ami szerint a robotnak működnie kell, akkor az bekerüljön a robot forrásába, vagy ne. Nagy különbség a kettő között nincs, de én szeretem, ha külön van az indikátor. Ha bizonytalanok vagyunk, akkor a programozót kérdezzük meg, és hallgassunk a tanácsára. Én azért szeretem a külső indikátor megoldást, mert ha azt cserélni kell vagy változtatni, akkor egyszerűbb nekem, ha külön van.

Mikor kössön a robot?

A példa indikátor direkt egy olyan, ami egy adott gyertyában menet közben is tudja változtatni a jelzését. Próbáljuk ki lassan futtatott teszterben órás vagy magasabb idősíkon, hogy hogyan „ugrál” a jelzés, ha éppen váltás előtt van. Ez nem igazán kívánatos számunkra, és ezt valahogy kezelni kell. Az indikátor akkor kap valós, használható értéket, amikor a gyertya lezárul. Vagy állítsuk be „open” értékre, ami stabilan egyforma a lezáródásig. Ezt – illetve, ha van rá mód az összes „Price” értéket – érdemes beépíteni a forex robotba, ha komolyabb robotot építünk. Így le tudjuk tesztelni, hogy a lehetséges Price értékre számoljon a robot.  Már a forex robot megrendelésnél pontosítsuk le azt, hogy mikor kössön. Én azt a megoldást választottam, hogy a második megjelent pontnál a nyitóban küldje el a vételi vagy eladási jelet. A fenti képen bejelöltem. Az ilyen kis figyelmességgel sok hibát meg lehet előzni. Érdemes átgondolni ezt a technikát akkor is, ha olyan instrumentumra tervezzük a robotot, ahol sok a nyitó gap (rés). Ha az utolsó napi gyertya adja a jelet, akkor hiába küldi el zárás után a vételi szándékot, nem tudja bekötni. Ez jellemzően  magasabb idősíkon jelent gondot. Már itt érdemes eldönteni, hogy mikortól meddig kössön a robot. Azaz ha a termékkel reggel nyolctól lehet kereskedni este tízig, akkor nem lenne ideális olyan órás forex technika, ami a tízkor záródó gyertya után akarna a nyitó értéken kötni, hiszen az a következő reggeli gyertya lesz. 

Kis kitérőt kell tenni, mert sokszor félrevezető lehet, hogy egy indikátor a mozgó gyertyában változtatja az értékét. Ez nem hiba, ha figyelembe vesszük azt, hogy sok indikátor a close értéket figyeli, ami a mozgó gyertyában az aktuális érték. Ez nem azonos azzal, hogy sok (főleg régebbi) indikátor a már lezárt gyertyákhoz tartozó értéket is megváltoztatta, azaz re-paintolt. Ez valóban nagyon kellemetlen dolog, és nem túl etikus az ilyen indikátor írása, és terjesztése. Jó pár ilyen volt, és van is a neten, melyeknél a vizuális tesztben, amikor a múltbéli adatainkra nézzük, nagyon jó eredményt láttunk, de élő  forex kereskedésben már nem.

A robot belép, de milyen megbízással?

Itt kell definiálni a robotnak, hogy hogyan. Két lehetőség van, az egyik a függő megbízás. Itt a belépési pontot kell megadni, hogy a jelet adó (nálunk a nyitó érték) ponttól mennyire legyen. A másik az azonnali megbízás. Ez így nem is jelent gondot, a legtöbb forex robotban ez egyszerűen van megírva. De ez nem elég, azaz nem csak el kell küldeni a megbízást a bróker felé, hanem azt is kezelni kell, ha valami gond van a megbízással. Pár olyan szituációt sorolok fel, amit érdemes figyelembe venni.

  • A függő megbízást közelebbre akarja tenni a robot, mint amit a bróker engedi.
  • Az azonnali megbízást valami miatt a bróker nem tudja azon az áron teljesíteni.
  • A bróker nem tudja teljesíteni a megbízást valami oknál fogva.
  • A piac éppen zárva van.
  • Az internet kapcsolat megszakadt.

Elég sok olyan eset lehetséges, ahol nem tud elsőre kötni a robot. Erre kell olyan megoldást találni, ami számunkra megfelelő. Én azt választottam, hogy három próbálkozás legyen 500ms időeltéréssel. Ha nem sikerül háromszor a pozíciót megnyitni, akkor már ne próbálkozzon, de itt az egyéni igényeket is számba lehet venni. Például, ha már X pipet, pontot elmozdult a piac, akkor ne kössön a forex robot. 
Ezeket főleg azoknak kell nagyon átgondolni, akik élő számlán is futtatni akarják a robotot. Akiknek csak tesztre kell, azoknak elég, hogy háromszor próbálkozzon, és ha nem sikerül, akkor ne kössön.

A robot első ellenőrzése

Ha már a „hol kössön” pont megvan, akkor már mehet is a programozóhoz a levél, hogy az első lépcsőt készítse el. Ez pedig az, hogy kis nyíllal jelezze, hogy hol kötne a robot. Ha ez kész, akkor teszterben futtassunk egy időszakot, hogy lássuk, valóban ott köt-e a robot, ahol kell. Mi ezt úgy oldottuk meg, hogy egy kis nyilat (kék nyíl az alábbi képen) rakjon a rendszer a kötéshez, így a legfontosabb rész egyikét, a nyitási pontot minden zavaró tényező nélkül tesztelni tudjuk.

Itt köt a robot, Forex robotok

Ne csak kérjük, hogy jelezze a robot, hogy hol kötne, de mindenképp legalább 10 jelet nézzünk meg, hogy korrekt-e a jelzése. Extrém helyzeteket is keressünk. Utólag bosszantó tud lenni, ha kiderül, hogy a robotunk időnként máshol köt, mint ahol kellene. A fenti robotot (itt letölthető) csak a chartra kell húzni, és máris látjuk, hogy hol kötne. Amikor felkerültek a nyílak, akkor az indikátort is tegyük fel, hogy lássuk, hogy valóban a második pontnál kötne.

Robot objektumai

Bár nem egy meghatározó dolog, de már az elején el kell dönteni, hogy a figyelt indikátorok, objektumok rákerüljenek-e a chartra, vagy nincs erre szükség, csak a robot tegye a dolgát. Szerintem egy forex robotnál mindenképp jó, ha a teszterben vagy élő számlán futva látjuk a kötések mellett azt, hogy miért is kötött a robot. Én sok hibát szűrtem ki egy-egy forex technikánál (amire az elején nem is gondoltam) azzal, hogy csak figyeltem a teszterben a kötéseket, és láttam az indikátorokat is. Rengeteg ötletet ad az ilyen vizuális megerősítés. Egy indikátornál ez kevésbé fontos, de több indikátort figyelő forex robotnál mindenképp ez az ideálisabb.

Van-e jobb indikátor a robotunkhoz?

Mielőtt elkezdünk íratni valamit, nézzünk körbe a neten, hogy az indikátornak vannak-e különféle variációi, verziói. Nagyon sokféle SuperTrend indikátort lehet találni (ez az, ami a forex robotunk alapja), én legalább tizet kipróbáltam, mert kicsit mindegyik más volt. Sok ötletet lehet összeszedni a különféle variációk kipróbálásakor. Ne az első megfelelőnek tűnő verziót fogadjuk el, hanem kis kutatómunkát is érdemes végezni. Ha pedig szerencsénk van, akkor már a kívánt robotot meg is írták. Még ha nem is felel meg teljesen nekünk, amit készen találunk, de ötletadónak mindenképp érdemes lesz végignézni ezeket. Ennyi kitérő után lépjünk tovább a robot fejlesztés irányába. Ha jónak találjuk a jeleket, akkor már egy működő, az indikátor tesztelésre, pontosításra alkalmas robotot kezdhetünk el tervezni.

Mekkorával kössön a robot?

Legyen a robotban méretezés is, vagy elég az nekünk, hogy egy adott fix mérettel kössön? A fix méret megfelelő egy olyan esetben, ha a forex robotot csak, és kizárólag optimalizálásra fogjuk használni. Én itt ezt választottam, de a végleges verzióba (hogy más tesztekkel összehasonlítható legyen) teljes kockázatkezelést kértem. Mi lehet az, amit itt érdemes átgondolni? A fix lot méretezésen kívül legyen a tőkére vetített százalékos, és egy fix összegre számolt méretezési lehetőség is, így mindenki megtalálja azt a kockázatkezelési módszert, ami neki kell. Ha van egy elvárt módszer (pld. a tőke 1%-át kockáztassa), akkor is érdemes a fix lot (pld. mindig 0,1 lottal kössön) verziót is kérni a robotba, mert ha olyan instrumentumon akarjuk kipróbálni, amelynél a lot számolási módszere más, vagy a Metatrader nem ad jó tick értéket a robotnak, akkor a százalékos módszer nem fog működni. Aki bármiféle kockázatkezelési anyagot olvasott, annak a fentiek nem okoznak gondot, már tudja, hogy neki mi kell, és azt rakatja bele. Az alábbi képen a pozícióméretezés paraméterei láthatók.

Forex robotok

Hibakezelés a robotban

Két olyan hibakezelést is el kell dönteni, ami elő szokott fordulni. Az első (szerintem) mindenképp fontos. Mi a helyzet, ha a robot nem tud méretezni (mert olyan instrumentumon fut, amin nem tud számolni) vagy éppen szépen kiszámolja a méretet, de az kisebb, mint a brókernél felvehető legkisebb méret? Két megoldás létezik erre. Az egyik azt hiszem egyértelmű: ne kössön, és adjon hibajelet. A másik pedig az, hogy megadjuk a forex robotnak, hogy mi az a legkisebb méret, amit köthet, és a brókerénél érvényes minimális kötésméretet állítjuk be. Ez tesztelésnél jó, de élő piacon már átgondolandó, és a saját igényünk szerint döntsünk.

„Ez tesztelésnél jó…” Igen, mert mindenképp lefut a kötés egy adott, minimális mérettel, így az összes potenciális kötés megtörténik. Én kínlódtam egypár órát olyan robottal, aminél ez nem volt lerendezve, mert a távoli stop olyan kicsi kötéseket adott, amit a bróker nem engedett meg, és lefutott a teszt és semmi kötés nem volt, csak hibaüzenet.

A másik véglet, amit le lehet szabályozni, hogy mennyi lehet a maximális kötés. Erre általában nincs szükség, de pont a fenti robotnál futottam bele, hogy a stop olyan közel került, hogy a szokott méretnél 30x-os méretet vett fel, és így nagy nyereséget mutatott ki, ami nagyon torzította az eredményt. Nem túl sok munka, így érdemes kérni ezt is, ha ilyen előfordulhat. Ha külön a sell, és a buy irányra is le szeretnénk tesztelni, és eltérő értékkel kereskedni a robottal, akkor már itt érdemes különválasztani a két irány méretezését. Ez a legtöbb forex kereskedési robotnál felesleges, de pár speciálisnál előfordulhat, hogy a két irányt külön mérettel szeretnénk kötni.

Stop, és célár hibakezelése a robotokban

Ha stopot vagy pedig a célárat is beteszi a kereskedési robot, akkor itt is át kell gondolni a hibakezelést is. Mit tegyen, ha nem tudja a stopot betenni függő kötésnél? Próbálkozzon újra, vagy éppen figyeljen, és ha megtörténik a kötés, akkor tegye be a stopot? Ha nem csak saját magunknak íratjuk a robotot, és nem csak tesztelésre szánjuk, akkor a stopnál vegyük figyelembe, hogy sok bróker azonnali piaci áras kötésnél nem engedi azonnal betenni a stopot csak akkor, ha már van élő kötés. Ezt mindenképp kezelni kell. A méretezés, és a SL/TP kérdését eldöntöttük, már csak a kezdeti stop helyét, és a mozgatását kell eldönteni. Esetünkben nem nagy művészet kitalálni, hogy a stop az indikátor jelére, a kis pontra kerül, és azt kell majd mozgatnia az expertnek.

Ha kész vagyunk, és a fentiek programozásra kerültek, akkor a teszterben ki kell próbálni, és jó pár kötésnél meg kell nézni, hogy jó helyen köt-e, jó-e a méretezés, ha többféle méretet kértünk, akkor mindegyiknél, jó helyre rakja a stopot, és azt jól mozgatja stb. stb.. Ezt a lépést nem lehet elkapkodni, mert nagyon fontos az, hogy pont ott, és akkor kössön, amikor kell, a stopot korrektül mozgassa, és a méretezés is pontos legyen. Tesztelés vagy optimalizálás közben már nem fogjuk azt nézegetni, hogy jól működik-e, hanem több száz vagy ezer beállítás, és beállításonként több száz kötést futtattunk ellenőrzés nélkül.

Robotok Forex robotok

A fenti képen látható, hogy a stop pontot adó sárga pontokon átlépett az árfolyam, majd folytatta a mozgását. Kiszedte a stopot, és ment tovább... Felmerül a kérdés, hogy egy kicsivel távolabbra tett stop jobb eredményt adna-e? Ha igen, akkor mennyivel tegyük odébb? Ezt szintén nehézkes lenne kézzel tesztelni, így mindenképp bele szeretném venni a kereskedési robotba, illetve mivel sokszor van az árfolyamban nagyobb egyirányú mozgás, amit az indikátor nem tud lekövetni, egy követőstopot is kértem a robotba. Így le tudjuk tesztelni, hogy az indikátor által adott stop, vagy a követőstop az ideálisabb.

Robotunk javítása

Mikor összegyűlik a hibajavítási lista (ami nem úgy működik, ahogy szeretnénk), és az új kívánságok, akkor küldhetjük is a programozónak. Majd várhatjuk a kész eredményt. Ha kész a kereskedési robot, akkor jöhet az újabb tesztelés, hogy minden jó-e számunkra. Ha igen, akkor én befejezettnek tekintem a robotot. Legalábbis a cikk céljának megfelelő készültségbe került, így a következő részben már a tesztelési, optimalizálási feladatokra térünk ki. A bejegyzés itt folytatódik:

  1. Hogyan teszteld a robotokat, hogyan értelmezd a teszt eredményeit..
  2. Hogyan javíts a robot eredményén: optimalizáció, automatizált kereskedés
  3. Miért fogsz veszíteni a robotokkal? Legjobb robotok, ingyenes vagy megbízható robotok buktatói

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

please do NOT follow this link