Mire figyelj az MQL4, illetve MQL5 programozás során?

Korábbi bejegyzésemben azt taglaltam, hogy milyen szempontok szerint válassz MetaTrader programozót. Ebben a posztban a saját kezű MetaTrader 4 / MetaTrader 5 expert advisor programozásról fogok beszélni.

Radulovic Attila vagyok, MetaTrader programozó.

Radulovic Attila, MetaTrader programozó

2010 óta vállalkozásom fő profilja a MetaTrader programozás. Azóta több száz kereskedővel konzultáltam, dolgoztam együtt, és legalább ugyanennyi egyedi robotot készítettem.

Közel áll hozzám az MQL4 és MQL5 fejlesztés is, és lelkesedéssel tölt el, ha robottá formálhatok egy kereskedési stratégiát.

Szeretek kommunikálni, és a kapcsolatfelvételtől az átadásig csak arra összpontosítok, hogy a lehető legjobb expert advisort készíthessem el számodra.

Radulovic Attila vagyok, MetaTrader programozó.

Radulovic Attila, MetaTrader programozó

2010 óta vállalkozásom fő profilja a MetaTrader programozás. Azóta több száz kereskedővel konzultáltam, dolgoztam együtt, és legalább ugyanennyi egyedi robotot készítettem.

Közel áll hozzám az MQL4 és MQL5 fejlesztés is, és lelkesedéssel tölt el, ha robottá formálhatok egy kereskedési stratégiát.

Szeretek kommunikálni, és a kapcsolatfelvételtől az átadásig csak arra összpontosítok, hogy a lehető legjobb expert advisort készíthessem el számodra.

Programozás ma

A 21. században sokan képesek számítógépes szoftvert készíteni, vagyis programozni. Millió programnyelv és fejlesztőkörnyezet áll rendelkezésre, rengeteg ingyenesen és térítés ellenében elérhető programozási oktatóanyag lelhető fel az Interneten. Te magad is képes lehetsz elsajátítani a szükséges programozási tudást, még akkor is, ha nincs korábbról programozási tapasztalatod. Ez persze akkor reális eshetőség, ha nem idegenkedsz a mélyebb számítógépes témáktól és van elegendő rendelkezésre álló szabadidőd. Ha már képben vagy a programozás általános alapjaival, akkor a folyamat valamelyest gyorsabb lehet.

Azonban, véleményem szerint önmagában az, hogy valaki rendelkezik (valamekkora) programozási tudással, nem elegendő. Ennek oka, hogy nem csupán az adott fejlesztési környezet, hanem a szorosan hozzá kapcsolódó terület ismerete is elengedhetetlen. Egy MetaTrader kereskedő robot, vagy indikátor létrehozásához elvárt a devizapiaci kereskedés és a MetaTrader ismerete. E szoftver, és annak végfelhasználói infrastruktúrájának beható ismerete nélkül hiába képes valaki programozni, könnyen elakadhat a platform, illetve a piac által támasztott problémák miatt.

Dolgoztam már együtt olyan szoftverfejlesztővel, aki programozóként a saját területén magasan kvalifikált volt, mégis úgy döntött, hogy inkább rám bízza az MQL4 programozás, vagy MQL5 fejlesztés feladatait.

Te, mint kereskedő jellemzően stratégiák sorát próbálod ki, mielőtt érzelmi, vagy műszaki szempontok miatt megszületik benned az elhatározás, hogy automatizálni szeretnéd valamelyiket. A kérdés az, hogy a stratégiák, elméletek, indikátorok keresése és a velük való kísérletezés során, jut-e elegendő időd a kisebb-nagyobb programozási döccenők kisimítására.

Akadályok, problémák az expert advisor fejlesztése közben

Lássunk egy gyakran előforduló példát a fejlesztés közben felmerülő tipikus akadályra.

  • Jelenség: létrehozol egy expertet, amely úgy tűnik, sikeresen végrehajtja azt a stratégiát, amelyet elképzeltél. Napokon keresztül jól működik, aztán egyszer csak jónéhány ügylet kimarad (természetesen pont a nyerők), és hirtelen azt sem tudod, hol keresd a problémát. A kód látszólag megfelelőnek tűnik, az eddig megfelelően viselkedő program azonban hol rendben végzi a kereskedési tranzakciót, hol nem.

  • Ok: elképzelhető, hogy az első pár napban nem volt olyan piaci mozgás, amelynek kezelése kihívást okozott volna a kódodnak, a kedvező (egyszerűbb) időszaknak azonban mindig vége szakad.

  • Megoldás: hibakeresés, amely során a stratégiád és a programkód ellenőrzése után, alapos tesztelés kell, hogy történjen. A kódod egyszerűbb hibákat (elütések, elírások), és szervezésbeli (strukturális, felépítésbeli) problémákat is tartalmazhat. Előfordulhat, hogy több órán keresztül keresed a hibát a rossz helyen, és a kitartásodtól függ, hogy mennyi időt szánsz erre. Sokan az ilyen élmények után döbbennek rá, hogy ugyan a programozási folyamatok egy részét kifejezetten izgalmasnak tartják, azonban a kudarc, illetve a nehezebben előidézhető (reprodukálható) hibák már rövid távon is frusztrációt okoznak számukra, amelyeket nem minden esetben tudnak feloldani.

Milyen feladatok várnak rád, ha az expert advisor saját kezű kivitelezése mellett döntesz?

MQL4 programozás, MQL5 programozás

Érdemes végig gondolnod, hogy mélységeiben érdekelnek-e téged alábbi témakörök:

  • a MetaTrader 4/MetaTrader 5 programozási nyelvei (MQL4/MQL5) dokumentációjának olvasása,

  • hibák keresése a forráskódban,

  • elütések keresése a forráskódban,

  • a kereskedési végrehajtás tipikus és atipikus problémáinak megoldása,

  • a MetaTrader 4 esetében az idősíkok frissítési káoszának áthidalása,

  • a különböző instrumentumok méretezési furcsaságainak kinyomozása és felülbírálása,

  • kódstruktúra felépítésének rendszeres át- és újragondolása,

  • elméleti gondolkodás és tervezés.

Minden tapasztalat időbe kerül

Szeretném leszögezni, hogy amikor saját magad valósítasz meg egy programot, akkor az sem lesz ingyen. A legdrágább dologgal fizetsz érte: a saját időddel. Minden időbe kerül!

Időbe telik, míg megszerzed a programozási alapokat, vagyis képbe kerülsz a programozás általános alapfogalmaival. Hogyan kell ciklust szervezni, feltételeket alkotni, változók típusait kezelni, adatokat összerendelni, ellenőrizni és megjeleníteni. Nem létezik optimális, hibamentes programkód; sokszor előfordul, hogy egy bezáratlan kapcsos zárójel megkeresése órákat vesz el az életedből (akár még egyszerűbb kódok esetén is).

Ugyancsak idő, míg megismerkedsz a MetaTrader programozói oldalával, a MetaEditor szerkesztővel, és képbe kerülsz mind az MQL4, mind az MQL5 fejlesztés világával. A két programozási eléggé hasonló, de nincs köztük teljes átjárás. Ez azt jelenti, hogy ha például a MetaTrader 4 platform MQL4 nyelvében írsz egy kódot, az nem fog automatikusan működni a MetaTrader 5 MQL5 nyelvében, és vica versa. Az átjárhatóság megoldható, de egy alapos és megbízhatóan működő keretrendszer nélkül ez esélytelen (én magam éppen egy ilyen keretrendszeren dolgozom hónapok óta).

Minden programozási tapasztalat megszerzése időbe kerül

Időbe telik a létrejött eszközöd műszaki tesztelése. Figyelem! A műszaki tesztelésnek van köze a stratégia pénzügyi eredményeihez, önmagában azonban egy hibátlan program még nem feltétlenül nyereséges. Te már rég a stratégiára szeretnél fókuszálni, megfelelő instrumentumokat, idősíkokat és beállításokat keresnél, amikor váratlanul felbukkan egy műszaki hiba, amely miatt az addigi működést is felül kell vizsgálnod – újra és újra. Sőt, kiderülhet az is, hogy az eddig jónak gondolt stratégiád egy véletlenül felcserélt paraméter miatt hozott jó eredményeket.

Ha csupán egyszerűbb stratégiákat szeretnél kipróbálni, szóba jöhetnek azok a megoldások, amelyek csupán némi strukturált gondolkodást igényelnek, de programozói gyakorlatot nem. Ezek az eszközök olyan szoftverek, amelyek “összekattintható” módon képesek programkódot generálni. Előnyük, hogy könnyen és gyorsan tudsz velük kódot létrehozni, hátrányuk, hogy általában nem magyar nyelvűek, illetve kötött stratégiai elemeket tartalmaznak, így az egyedi ötletek megvalósítása nehézségekbe ütközik.

Ha van elegendő időd és türelmed

Amennyiben a fenti témakörök ténylegesen érdekesek számodra és elég idő (hónapok, vagy akár évek) áll a rendelkezésedre a tanuláshoz, akkor bátran mozdulj el a saját kezűleg programozott kereskedési expert irányába. Figyelmedbe ajánlom az alábbi forrásokat:

  • MQL4 könyv magyar nyelven: nem a legfrissebb, mivel nem tartalmazza az objektum-orientált programnyelv szabályokat és az évekkel ezelőtti MQL4 frissítés óta létrejött függvényeket, de még mindig sokat tudsz belőle tanulni. Egy részét én fordítottam / pontosítottam.

  • MQL4 dokumentáció angol nyelven: a MetaTrader 4 MQL4 programnyelvének hivatalos dokumentációja. Itt megtalálod a nyelv alapjait, az összes függvény leírását, plusz példakódokat is.

  • MQL5 dokumentáció angol nyelven: a MetaTrader 5 MQL5 programnyelvének hivatalos dokumentációja. Ez lényegesen nagyobb anyag, mint az MQL4-es. Sok az átfedés, de sokkal több a tanulnivaló is.

  • Néhány korábbi, programozás témájú bejegyzésem: ezeken keresztül betekintést adok, hogy miért nem érdemes például elbagatellizálni egy-egy kérdést, például a pozíciózárást.

Van elég időd az MQL4 programozásra?

Ha elakadsz, nyugodtan keress meg! Fogalmazd meg és küldd át előzetesen a benned felmerült kérdések listáját, 1 óra alatt sok mindent hatékonyan végig tudunk nézni. E rövid idő alatt lehet, hogy heteket spórolok neked.

Amennyiben az MQL4/MQL5 fejlesztés közben arra a döntésre jutsz, hogy mégis inkább másra bízod az expert advisor létrehozásának feladatát, kattints az alábbi gombra, és foglalj egy konzultációs időpontot, hogy átbeszélhessük, pontosan milyen kereskedőrobotot szeretnél magadnak!