Az MQL4 programozási nyelv

Program szerkezet

Program szerkezet

A főprogram-kódot, amit a programozó írt, a felhasználói és a különleges függvényekbe helyezzük. A beépített és felhasználói függvények közötti különbség röviden: egy felhasználói függvénynek van leírása, a függvényhívást arra használjuk, hogy elindítsa a függvény végrehajtását a programban. Bármilyen beépített vagy felhasználói függvényt csak akkor hajthatunk végre, miután azt meghívtuk; ebben az esetben azt mondjuk, hogy a függvényt egy program végrehajtásáért hívta.

A különleges függvény egy olyan függvény, amit az ügyfélterminál hív, hogy azt végrehajtsa. A beépített függvényektől eltérően a különleges függvényeknek van függvényleírásuk és a különleges függvények nem hívhatók a programból. A különleges függvényeket végrehajtásra csak az ügyfélterminál hívhatja, (technikailag van arra lehetőség, hogy egy különleges függvényt a programból hívjunk, de ez a módszer helytelen és itt nem fogjuk azt megtárgyalni). Amikor egy programot elindítanak egy szimbólum ablakban, az ügyfélterminál a vezérlést átadja a különleges függvények közül az egyiknek. Végül ezt a függvényt végrehajtja.

Az MQL4 programozási szabályai szerint a programkódot függvényekbe kell írni. Azok az eszközök, programsorok (operátorok és függvényhívások) amelyek a függvényeken kívül vannak nem hajthatók végre. Ha egy ilyen programot akarunk lefordítani, a MetaEditor hibaüzenetet ad és a végrehajtható *.ex4 állományt nem fogja létrehozni.

Vizsgáljuk meg egy egyszerű program funkcionális felépítését - Expert Advisor:

Egy program szerkezet terve (Expert Advisor)

Egy MQL4 program legfontosabb blokkjai:

  • 1. A program fejrésze.
  • 2. Különleges függvény init().
  • 3. Különleges függvény start().
  • 4. Különleges függvény deinit().
  • 5. Felhasználói függvények.

  • A MetaTrader 4 információs környezete
    Az MT4ügyfélterminál információs környezete nem a program alkotórésze. Az információs környezet a rendelkezésre álló paraméterek készlete, amely paramétereket a program felhasználhat. Például egy olyan ár-adat, ami egy új tickkel jött, a kereskedelem volumene, információ az előzményekről, a legnagyobb és legkisebb árakról, azok a paraméterek, amik kereskedési feltételeket jellemezik. Az információs környezet adatait frissíti az ügyfélterminál, amikor kapcsolatban állt a szerverrel és egy új tick érkezik.
    Programszerkezet
  • Fejrész - A fejrész a program kezdetén lévő sorokból áll (az első sorral kezdődik) és néhány leírást tartalmaz. Ezek a sorok a programmal kapcsolatos általános információkat tartalmaznak. Például ez a rész tartalmazza a globális változók deklarációját és inicializációját. A fejrész a legelső függvényleírásig tart (felhasználói vagy különleges függvény).

  • Különleges függvények - Általában a program fejrésze után a különleges függvényeket írjuk le. A különleges függvényleírások hasonlítanak egy szokásos felhasználói függvény leíráshoz, de a különleges függvényeknek előre definiált neveik vannak: init(), start() és deinit(). A különleges függvényekben a számítások egyes blokkjai az ügyfélterminál nformációs környezetével valaminti a felhasználói függvényekkel is kapcsolatokban vannak.

  • Felhasználói függvények - A felhasználói függvények leírását általában a különleges függvények leírása után helyezük el. Egy programban levő felhasználói függvények száma nem korlátozott. Ez a séma csak két felhasználói függvényt tartalmaz, de egy program tartalmazhat 10-et vagy 500-at, vagy egyet sem. Ha felhasználói függvényeket nem használnak egy programban, a program szerkezete egyszerűbb lesz: fejrész és a különleges függvények leírás.

  • Standard (beépített) függvények - Ahogy korábban említettük, a beépített függvényeknek csak a függvényhívását tüntetjük föl. A beépített függvényeknek, különleges és a felhasználói függvényekkel ellentétben nem adunk függvényleírás. A standard (beépített) függvények leírása el van rejtve, nem látja a programozó és azért nem tud változtatni rajta. Ezeket csak a MetaEditor érheti el. A program fordítása alatt MetaEditor létre fog hozni egy végrehajtható állományt, amiben minden hívott beépített függvényt teljes terjedelmében be fog illeszteni.
  • A programrészek elrendezése
    A fejrésznek az első sorokban kell elhelyezkednie. A különleges és felhasználói függvényleírások elrendezése nem számít. Az alábbi képen különböző programszerkezeti változatokat láthatunk:

    A funkcionális blokkok lehetséges szervezése egy programban (véletlen sorrend).