Üdvözöljük a MetaTrader 4 (MT4) platform programozásának átfogó útmutatójában! Célunk, hogy Ön elsajátítsa az MQL4 nyelv rejtelmeit, és képes legyen saját kereskedési robotok (Expert Advisors – EA-k), egyedi technikai indikátorok és szkriptek fejlesztésére. Az algoritmikus kereskedés napjainkban a pénzügyi piacok egyik legdinamikusabban fejlődő területe, amely lehetőséget teremt a nap 24 órájában történő, érzelmektől mentes kereskedésre. Cikkünkben lépésről lépésre haladunk végig az MQL4 programozás alapjain, a haladó technikákon át egészen a gyakorlati alkalmazásokig. Tartson velünk, és váljon Ön is a sikeres algoritmikus kereskedés mesterévé!
Az MQL4 (MetaQuotes Language 4) egy C++ alapú programozási nyelv, amelyet kifejezetten a MetaTrader 4 kereskedési platformhoz fejlesztettek ki. Lehetővé teszi a kereskedők számára, hogy automatizálják kereskedési stratégiáikat, egyedi technikai elemzési eszközöket hozzanak létre, és szkriptek segítségével egyszerűsítsék a napi kereskedési feladatokat. Az MQL4 elsajátítása kulcsfontosságú a hatékony és eredményes algoritmikus kereskedéshez.
A programozás első lépése a megfelelő fejlesztői környezet megismerése. Az MT4 platformba integrált MetaEditor szolgál erre a célra. A MetaEditor egy komplex fejlesztői eszköz, amely tartalmaz egy kódszerkesztőt, egy fordítót (compiler), egy hibakeresőt (debugger) és egy beépített súgót. A MetaEditor elindításához nyissa meg az MT4 platformot, kattintson az “Eszközök” menüre, majd válassza a “MetaQuotes Language Editor” opciót, vagy egyszerűen nyomja meg az F4 billentyűt.
Ahhoz, hogy elkezdhessünk programozni, létre kell hoznunk egy új MQL4 fájlt. A MetaEditorban kattintson az “Új” ikonra az eszköztáron, vagy válassza a “Fájl” menü “Új” opcióját. Ekkor megjelenik egy varázsló, amely segít kiválasztani a létrehozni kívánt fájl típusát (Expert Advisor, Custom Indicator, Script). Válassza ki a kívánt típust, adja meg a fájl nevét, és kattintson a “Befejezés” gombra. Ekkor megnyílik a szerkesztő ablak az új, üres vagy alapértelmezett kódot tartalmazó fájllal.
Mint minden programozási nyelvnek, az MQL4-nek is megvannak a saját szabályai és szintaxisa. Az alábbiakban áttekintjük a legfontosabb elemeket.
Az MQL4-ben használt alapvető adattípusok a következők:
A változók tárolók, amelyekben adatokat tárolhatunk. Minden változót deklarálni kell, mielőtt használnánk. A deklaráció során meg kell adnunk a változó adattípusát és a nevét. Például:
int counter;double price;
string text = "Üdvözlet!";
bool isTrue = true;
Az operátorok segítségével műveleteket végezhetünk a változókon és értékeken. Néhány fontos operátor:
A vezérlési szerkezetek határozzák meg a programkód végrehajtásának sorrendjét.
if (price > 1.10) {// Ha az ár nagyobb, mint 1.10
Print("Az ár magasabb, mint 1.10");
} else if (price < 1.05) {
// Ha az ár kisebb, mint 1.05
Print("Az ár alacsonyabb, mint 1.05");
} else {
// Minden más esetben
Print("Az ár 1.05 és 1.10 között van");
}
// For ciklusfor (int i = 0; i < 10; i++) {
Print("A számláló értéke: ", i);
}
// While ciklus
int j = 0;
while (j < 5) {
Print("A while ciklus futása: ", j);

j++;
}
// Do-while ciklus
int k = 0;
do {
Print("A do-while ciklus futása: ", k);
k++;
} while (k < 3);
int day = 2;switch (day) {
case 1:
Print("Hétfő");
break;
case 2:
Print("Kedd");
break;
case 3:
Print("Szerda");
break;
default:

Print("Egyéb nap");
break;

}
A függvények kódblokkok, amelyek egy adott feladatot hajtanak végre. Lehetővé teszik a kód modulárisabbá és áttekinthetőbbé tételét. Egy függvény deklarációja tartalmazza a visszatérési típust, a függvény nevét és a paraméterlistát (ha van). Például:
// Egy egyszerű függvény, amely összead két számotint Add(int a, int b) {
int sum = a + b;
return sum;
}
// A függvény meghívása
int result = Add(5, 3);
Print("Az összeg: ", result); // Eredmény: Az összeg: 8
Az Expert Advisor (EA) egy automatizált kereskedési rendszer, amely közvetlenül az MT4 platformon fut, és képes kereskedési műveleteket végrehajtani emberi beavatkozás nélkül a beprogramozott stratégia alapján. Az EA-k fejlesztése az MQL4 programozás egyik legnépszerűbb alkalmazási területe.
Egy tipikus EA három fő függvénnyel rendelkezik:
Nézzünk egy nagyon egyszerű példát, amely egy adott árfolyam keresztezés esetén nyit egy vételi pozíciót.
#property copyright "Your Copyright"#property link "Your Website"
#property version "1.00"
#property strict
extern double TakeProfit = 50;
extern double StopLoss = 20;
extern double Lots = 0.01;
double High[];
int OnInit() {
ArraySetAsSeries(High, true);
CopyHigh(_Symbol, PERIOD_M1, 0, 2, High);
return(INIT_SUCCEEDED);
}
void OnTick() {
CopyHigh(_Symbol, PERIOD_M1, 0, 2, High);
double CurrentPrice = SymbolInfoDouble(_Symbol, SYMBOL_ASK);
static double PreviousHigh = High[1];
if (CurrentPrice > PreviousHigh) {
// Árfolyam áttörte az előző gyertya maximumát
int total_orders = OrdersTotal();
if (total_orders < 1) {
// Ha nincs nyitott pozíció, nyitunk egy vételi pozíciót
long ticket = OrderSend(_Symbol, OP_BUY, Lots, SymbolInfoDouble(_Symbol, SYMBOL_ASK), 3, SymbolInfoDouble(_Symbol, SYMBOL_ASK) - StopLoss * Point(), SymbolInfoDouble(_Symbol, SYMBOL_ASK) + TakeProfit * Point(), "My Simple EA", 12345, clrGreen);
if (ticket > 0) {
Print("Vételi pozíció nyitva: ", ticket);
} else {
Print("Hiba a vételi pozíció nyitásakor: ", GetLastError());
}
}
}
PreviousHigh = High[0];
}
void OnDeinit(const int reason) {
Print("EA eltávolítva. Ok: ", reason);
}
Fontos megjegyzés: Ez egy nagyon egyszerű példa, amely nem alkalmas éles kereskedésre. Valós kereskedési robotok sokkal komplexebb logikát tartalmaznak, figyelembe véve a kockázatkezelést, a piaci feltételeket és egyéb tényezőket.
Az MQL4 számos beépített függvényt kínál a kereskedési műveletek végrehajtásához:
Az egyedi technikai indikátorok lehetővé teszik a kereskedők számára, hogy saját elemzési eszközeiket hozzák létre az MT4 platformon. Az indikátorok vizuálisan jelenítik meg a piaci adatokból számított információkat, segítve a kereskedési döntéseket.
Egy egyedi indikátor főbb részei: