MQL4 könyv   Egy szokásos program létrehozása

Egy szokásos program létrehozása

Miután egy programozó sok egyszerű MQL4 alkalmazási programot kódolt, általában egy összetettebb projektekbe kezd, hogy gyakorlati alkalmazás során kényelmesen használható programokat hozzon létre. Az egyszerűbb programok legalább két okból nem elégítik ki a kereskedő (programozó) szükségleteit:

1. Az egyszerű programok funkcionális korlátaik miatt nem látják el a kereskedőt minden szükséges információval és a kereskedést megvalósító eszközzel, ezért az ilyen programok használata nem elég hatékony.

2. Az egyszerű programok kódjának tökéletlensége nehezíti a továbbfejlesztésüket és a szolgáltatásaik kiterjesztését.

Ebben a részben bemutatjuk egy kereskedő Expert Advisor megvalósításának lehetséges alternatíváját, hogy azt felhasználhasd a saját projektjeid alapjaként.

  • Egy szokásos program szerkezete
    Egy programban a felhasználói függvények alkalmazása lehetővé teszi, hogy hatékony és rugalmas algoritmusokat hozz létre az információk feldolgozására. Az #include fordítási direktíva lehetővé teszi, hogy (az egyszer megírt és tesztelt) függvényeidet másik programokban is használd. Ezzel a módszerrel létre tudod hozni a saját könyvtáraidat vagy használni tudod más programozók nyílt forráskódú fejlesztéseit.
  • A megbízások nyilvántartása
    Ebben a részben egy példát találunk: a Terminal() felhasználói függvényt, melyet egy különálló .mqh kiterjesztésű fájlban valósítunk meg. Az ilyen fájlok tartalma a fordítás során az #include direktíva hatására illesztődik be a programkódba.
  • Adat függvény
    Ez a felhasználói függvény hozza létre az EA aktuális működésével kapcsolatos szöveges információ megjelenítését. Ez a függvény helyettesíti a Comment() függvény chart ablakbeli használatát. A függvény egy indikátorként létrehozott segédablakban jeleníti meg az információit.
  • Eseménykövető függvény
    A kereskedő a kereskedés  során nem mindig vesz észre minden eseményt. Ez az MQL4 program segít abban, hogy észlelj a kereskedési helyzetekben és feltételékben bekövetkező minden változást. Az Events() felhasználói függvény az #include  utasítás  hatására épül be az EA –ba, és működése során egy másik include fájlnak, az Inform() fájlnak szóló függvényhívásokat hajt végre.
  • A kereskedési ismertetőjeleket  meghatározó függvény
    A kereskedés legfontosabb mozzanata a piacra lépés és a pozíció zárás feltételeinek meghatározása. A kerekedési ismertetőjelek és szabályok feldolgozása minden Expert Advisor alapvető feladatát jelentik. A Criterion() felhasználói függvényt #include utasítás segítségével illesztjük be az EA kódjába. Bemutatjuk, hogy az EA az indikátorértékek alapján hogyan dönti el, hogy az aktuális helyzet megfelele-e valamely kereskedési ismertetőjelnek.
  • Kereskedelmi függvények
    Az aktuális helyzetet elemeztük a Criterion() függvénnyel, most végre kell hajtani a megfelelő  kereskedelmi műveletet: nyitni, bezárni, módosítani vagy törölni egy függőben levő megbízást. Minden kereskedelmi műveletet különálló felhasználói függvényben helyezünk el: Trade(), Close_All() és Open_Ord(). A csúszó stop megbízás kezelésére a  Tral_Stop() felhasználói függvény szolgál.
  • Hibafeldolgozó függvény
    A hibafeldolgozás egy Expert Advisor szerves része. El kell dönteni, hogy hogyan dolgozzuk föl a hibakódot. Néhány esetben elegendő a hibáról egy üzenetet bemutatni: a kért szimbólumnak nem ismert az ára, a kereskedelmi kontextus elfoglalt, stb.. Más esetekben célszerű bizonyos idő után megismételni a kereskedelmi kérést.  Az Errors() felhasználói függvényben a hibafeldolgozást a ’switch’ operátornak a hibakód alapján kiválasztott variációjában dolgozzuk föl.