Az MQL4 programozási nyelv

Bevezetés

Bevezetés

Az egész világon már több százezer kereskedő ismerte el az elterjedt MetaTrader 4 Client Terminal érdemeit. A beágyazott programnyelvének, az MQL4-nek használata a kereskedőket a kereskedelem egy új szintjére emelte - az automatizált kereskedelembe. Most egy kereskedőprogram alkalmazásával meg tudja valósítani az ötleteit, elképzeléseit - ír egy egyéni indikátort, egy scriptet egyetlen művelet végrehajtására, vagy létrehoz egy Expert Advisort - egy automatizált kereskedő rendszert (kereskedő robotot). Egy Expert Advisor (EA) folyamatosan tud dolgozni bármilyen beavatkozás nélkül – biztonsággal követi az árakat, elektronikus üzeneteket küld, és sok más hasznos feladatot végrehajt. Az alkalmazások fő előnye az a lehetőség, hogy a kereskedelem a kereskedő által elképzelt algoritmus szerint alakuljon. Bármilyen ötlet leírható egy algoritmikus nyelven (két mozgó átlag kereszteződése vagy a jelek digitális feldolgozása, Elder vagy Peter' fraktálelemzés, egy neurális hálózat vagy mértani alakzatok) kódolhatók egy alkalmazásban, azután a gyakorlati kereskedelemben tudjuk azokat használni. A MetaTrader 4 Client Terminal alkalmazások fejlesztése az MQL4 nyelv ismeretét igényli.

Az MQL4 szerepe

Ebben a pontban szeretnénk meghatározni az MQL4 felhasználásának területét. Először is meg kell jegyezni, hogy azokat a programokat, amelyeket ezen a nyelven írunk csak a MetaTrader 4 Client Terminállal együtt használhatjuk. A MetaTrader 4 online egy rendkívül népszerű, devizakereskedelemre szakosodott szoftver. Ha valaki az MQL4 programozás iránt érdeklődik, meg kellett ismerkednie az ügyfélterminállal. Az ügyfélterminál az online kereskedőrendszer része. Ez a rendszer egy szervert is tartalmaz, ami a dealing centerhez kapcsolódik. A dealing center kapcsolatban áll a többi piaci szereplővel – bankokkal és pénzintézetekkel. Az ügyfélterminál egy információs környezettel rendelkezik - biztosít egy sor paramétert, hogy tájékoztatást adjon a piacról, a kereskedő és a dealing center közötti kapcsolatról. Ez az információ tartalmazza az aktuális árat, a legnagyobb és legkisebb kötésméretre vonatkozó korlátozásokat, a stop megbízások minimális távolságát, az automatizált kereskedelem engedélyezését/tilalmát és még sok más hasznos paramétert, amelyek az aktuális állapotot jellemzik. Az információs környezet frissül, amikor új ticket kap a terminál.

A piac elemezését és MetaTrader 4 Client Terminal kereskedelmi függvényeinek használatát a programozható eszközök segítségével valósíthatjuk meg. Az MQL4 nyelv lehetővé teszi, hogy ilyen programokat hozzunk létre.

Néhány alapfogalom

A tick fogalma
A tick egy olyan esemény, ami egy szimbólumot (instrumentum) jellemez az ú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.
A control (vezérlés)
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. 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. 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.