Radu MetaTrader a blogja | További ingyenes és hasznos eszközök MetaTraderhez | Kérdésed merült fel? Kérdezz!
MQL4 Könyv tartalomjegyzék | Stratégiák programozása MetaTrader platformra | Fogalomtár | Gyakran Ismételt Kérdések

MQL4 könyv   Az MQL4 alapjai  Néhány alapfogalom


Néhány alapfogalom


Az érdeklődésünk tárgya programok  írása  MQL4 nyelven. Mielőtt elkezdjük  a programírás szabályainak részletes bemutatását,  szükséges, hogy leírjuk azokat az alapvető fogalmakat és összefüggéseket, amik egy programot jellemeznek. Közismert, hogy a MetaTrader 4 ügyfél terminál  online üzemmódban dolgozik. A helyzet a  pénzügyi  piacokon folytonosan változik, ez a változás hatással van  chartokra az ügyfélterminálban. A tick-ek látják el  az ügyfélterminált a piaci  árváltozásokkal kapcsolatos információval.


A tick fogalma


A tick egy olyan esemény, ami egy szimbólumot (instrumentum)  jellemez a új ár megjelenésének a  pillanatában.

A tickeket  minden ügyfélterminálnak egy szerver kézbesít, ami a dealing centerrel áll kapcsolatban. Az aktuális piaci helyzetnek megfelelően többé vagy kevésbé gyakran kapjuk a tickeket, de minden esetben amikor az  adott  devizapár árfolyama megváltozik új tick keletkezik.

Egy alkalmazás az ügyfélterminálban hosszú  időszakon  keresztül működhet, akár több napon vagy héten  keresztül  is futhat. Mindegyik alkalmazás  azok szerint a szabályok szerint fut, amely szabályokat annak a  bizonyos típus programnak meghatároztak. Például, egy Expert Advisor (EA) nem működik folyamatosan. Egy Expert Advisort általában  csak abban a pillanatban  indít el az ügyfélterminál, amikor egy új tick jön.

Az Expert Advisor működésének  az  ideje attól függ, hogy milyen programkódot tartalmaz.  A normal  EA valamennyi információ feldolgozási ciklust tized vagy század másodpercek alatt elvégez. Ezen az időszakon  belül az EA végrehajthatott  néhány utasítást, egy kereskedelmi döntést hozhatott, elláthatja a kereskedőt egy hasznos információval, stb. Ha az EA befejezte a munkájának ezt a részét várakozik, amíg egy új tick jön. Ez az új tick megint elindítja az Expert Advisort, a program megint végrehajtja a megfelelő műveleteket  és visszatér a várakozó üzemódba. Annak a részletes leírását, hogy egy új tick megjelenése hogyan befolyásolja a program futását később tárgyaljuk.

A control (vezérlés) fogalma


Miközben a kód végrehajtás folyamatáról  beszélünk  programnak az ügyfélterminállal való együttműködése során, használni fogjuk a control (vezérlés) fogalmát.

A vezérlés folyamata a programba előre bekódolt  algoritmus végrehajtása és az ügyfélterminál szolgáltatásainak használata. A vezérlés  átvihető a programon belül egy kódrészből egy másikba, és a programból az ügyfélterminálra.

A vezérlés működése bizonyos szempontból hasonló ahhoz mikor valaki egy gyűlésen felszóllal. Mint szónok néha szót kap majd átadja a szót  másoknak, az ügyfélterminál és a program  kölcsönösen  adogatják  a vezérlést egymásnak. Az ügyfélterminál uralkodik. A státusza magasabb, mint a programnak, mint ahogy egy találkozó elnökének a jogköre nagyobb, mint az egyszerű beszélőé.

Mielőtt a programot elindítjuk, a control (vezérlés) az ügyfélterminál felügyelete alatt van. Amikor egy új tick  megjelenik, az ügyfélterminál átadja az irányítást a programnak. A programkód ebben a pillanatban  végrehajtódik.

Az ügyfélterminál, miután átadta az irányítást a programnak, nem állítja le a működését.  Továbbra is működik maximális teljesítménnyel  egész addig, míg a PC-n futtatják. A program csak pillanatnyilag működik, amikor az ügyfélterminál átadta neki  a vezérlést (mint amikor egy gyűlés elnöke egész idő alatt folyamatosan irányítja a találkozót,  míg az aktuális beszélő csak  korlátozott  időszakban kap szót).

Miután a program befejezte a műveletet, az irányítást visszaadja az ügyfélterminálnak és nem indítja el újra saját magát. Mindazonáltal, amikor az  irányítást már átvette a program, ez maga adja vissza az irányítést az ügyfélterminálnak. Más szóval az ügyfélterminál nem tudja  visszavenni az irányítást a programtól. A felhasználó beavatkozása (például, a program bezárása) ezalól kivételt képez.

Miközben programok belső szerkezetét és működését  tárgyaljuk, az érdeklődésünk elsősorban a vezérlés programon belüli működése felé irányul. Figyeljük meg a  2. ábrát, ez megmutatja a  vezérlés  átadását egy programon  belül. Az ábrán a  körök a program  kicsi, logikailag összefüggő  töredékeit jelentik, míg a körök között a nyilak azt mutatják, hogy a vezérlés hogyan  kerül át egy töredékről egy másikba.



2. ábra. A vezérlés átadása egy  programon belül


Egy olyan program, ami megkapta a vezérlést  az ügyféltermináltól, (a futó program) végrehajtja az algoritmusa szerinti műveleteket. A program programsorokból  áll, a programvégrehajtás folyamata a vezérlés sorról sorra felülről lefelé történő átadásából áll. Hogy milyen szabályok szerint írjuk ezeket a programsorokat azt a későbbiekben  részletesen fogjuk tárgyalni.

Itt fontos hangsúlyozni, hogy minden logikailag egybefüggő programrész végrehajtódik,  például egy matematikai számítás elvégzése, egy üzenet kiírása a képernyőre, egy kereskedelmi megbízás, stb.  Amíg a program aktuális része végrehajtódik, a program magánál tartja a vezérlést. Miután az aktuális rész végrehajtását teljesen befejezte, a vezérlést áthelyezi egy másik kódrészletre. Így a vezérlés egy programon belül átkerül  az egyik  logikailag összefüggő  kódrészletből egy másikba, hogy azt is végrehajtsa. Amint az utolsó kódrészt  is végrehajtotta a program a vezérlés vissza fog szállni (return) az ügyfélterminálra.

A comment (komment) fogalma


Egy program két fajta adatsorból áll: a programkódból és  a programot  magyarázó szövegekből.

Comment a programnak egy szabadon választható nem futtatható része.

Tehát a Comment egy programnak  szabadon választható része. Ez azt jelenti, hogy egy kész program a kódja szerint fog működni függetlenül attól, hogy megjegyzések vannak-e benne, vagy sem. Mindazonáltal a megjegyzések nagyon megkönnyítik a programkód  megértését. Egysoros és több sorból álló megjegyzések ismerünk. Egy egysoros megjegyzés dupla per jelet (//)  követően bármilyen karakter lehet. Egy egysoros megjegyzést befejez a soremelés. Egy több sorból álló  megjegyzés /* karakterekkel  kezdődik és a befejezése */ (lásd  a  3. ábrát).
A megjegyzéseket arra használjuk, hogy megmagyarázzuk a programkódot. Egy jó program mindig tartalmaz megjegyzéseket .


3. ábra. Példa a programban lévő megjegyzésekre.


A megjegyzéseket a  kódolásban  széles körben  használják. Általában a kódokban szürke színnel jelölik őket. Mi szintén fogunk használni megjegyzéseket, hogy megmagyarázzuk a kódjainkat és érthetőbbé tegyük őket.