Einführung in MQL- MetaQuotes Language
Lerne die Grundlagen der MQL-Programmiersprache für den MetaTrader kennen. Entdecke, wie du eigene Indikatoren und Handelssysteme erstellen kannst.
David Warney2 Min LesezeitMQL, oder MetaQuotes Language, ist eine Programmiersprache, die speziell für den Handel auf MetaTrader-Plattformen entwickelt wurde. In diesem ausführlichen Blogartikel erfährst du alles, was du über die MQL Programmiersprache wissen musst. Wir werden die Grundlagen der Sprache abdecken, wie du eigene Indikatoren und Handelssystem erstellen kannst, und wir werden dir einige nützliche Codebeispiele geben.
Was ist MQL?
MQL steht für MetaQuotes Language und ist eine Programmiersprache, die speziell für die Entwicklung von Handelsstrategien, Indikatoren und automatisierten Handelssystemen auf der MetaTrader-Plattform entwickelt wurde. MetaTrader ist eine der bekanntesten und am häufigsten verwendeten Handelsplattformen in der Welt des Tradings. Die MQL Programmiersprache ermöglicht es Tradern und Entwicklern, benutzerdefinierte Indikatoren, Skripte und Handelssystem (Handelssysteme) zu erstellen, die ihre Handelsstrategien automatisieren und optimieren können.
MQL-Versionen: MQL4 und MQL5
Es gibt zwei Versionen von MQL: MQL4 und MQL5.
MQL4 wurde für die MetaTrader 4-Plattform entwickelt, während MQL5 für den MT5 entwickelt wurde. Obwohl die beiden Sprachversionen ähnlich sind, gibt es einige Unterschiede in Bezug auf Syntax, Funktionen und Leistungsfähigkeit.
MQL5 bietet erweiterte Funktionen, eine verbesserte Leistung und eine bessere Integration mit anderen Programmiersprachen wie C++. Allerdings ist MQL4 immer noch weit verbreitet, da viele Händler und Entwickler ihre bestehenden Indikatoren und Handelssysteme in dieser Version der Sprache entwickelt haben. In diesem Blogartikel konzentrieren wir uns hauptsächlich auf MQL4, da die meisten Konzepte und Codebeispiele auch auf MQL5 anwendbar sind, mit nur geringfügigen Änderungen.
Die MQL-Entwicklungsumgebung
Um mit MQL zu programmieren, benötigst du eine Entwicklungsumgebung. Die MetaTrader-Plattform bietet eine integrierte Entwicklungsumgebung namens MetaEditor. Der MetaEditor ermöglicht es dir, MQL-Code zu schreiben, zu debuggen und zu kompilieren. Um den MetaEditor zu öffnen, starte MetaTrader und klicke auf das MetaEditor-Symbol in der Symbolleiste oder drücke die Tastenkombination Strg+E.
Im MetaEditor kannst du neue MQL-Projekte erstellen oder bestehende Projekte bearbeiten (wenn der Quellcode vorhanden ist). Du kannst auch auf eine umfangreiche Dokumentation und Codebeispiele zugreifen, um dir den Einstieg in die Programmierung etwas zu erleichtern.
MQL-Grundlagen
In diesem Abschnitt werden wir die grundlegenden Konzepte und die Syntax der MQL-Programmiersprache behandeln.
Syntax
Die Syntax von MQL ähnelt der von C++, was den Einstieg für Programmierer erleichtert, die bereits mit C++ oder ähnlichen Programmiersprachen vertraut sind. Kommentare in MQL können entweder einzeilig oder mehrzeilig sein und werden mit "//" oder "/ ... /" gekennzeichnet.
// Das ist ein einzeiliger Kommentar
/* Das ist ein
mehrzeiliger
Kommentar */
Variablen und Datentypen
MQL bietet eine Vielzahl von Datentypen, darunter Ganzzahlen, Gleitkommazahlen und Zeichenketten. Variablen müssen deklariert werden, bevor sie verwendet werden können, und ihre Datentypen müssen angegeben werden. Hier sind einige Beispiele für die Deklaration von Variablen:
int ganzzahl = 10; // Ganzzahl (integer)
double gleitkomma = 10.5; // Gleitkommazahl (double)
string text = "Hallo, Welt!"; // Zeichenkette (string)
Kontrollstrukturen
MQL unterstützt verschiedene Kontrollstrukturen, wie Bedingungen (if, else) und Schleifen (for, while). Hier sind einige Beispiele:
int x = 5;
int y = 10;
if (x 0) {
start = prev_calculated - 1;
} else {
start = period - 1;
}
for (int i = start; i currentSma && currentPrice 0) {
Print("Kaufauftrag erfolgreich geöffnet");
} else {
Print("Fehler beim Öffnen des Kaufauftrags: ", GetLastError());
}
} else if (currentPrice previousSma) {
// Verkaufsignal
if (OrderSend(Symbol(), OP_SELL, 0.01, Bid, 3, 0, 0) > 0) {
Print("Verkaufsauftrag erfolgreich geöffnet");
} else {
Print("Fehler beim Öffnen des Verkaufsauftrags: ", GetLastError());
}
}
}
// Funktion zum Berechnen des einfachen gleitenden Durchschnitts
void SimpleMovingAverage(string symbol, ENUM_TIMEFRAMES timeframe, int period, int price_type, double& result[]) {
int rates_total = Bars(symbol, timeframe);
double prices[];
ArrayResize(prices, rates_total);
CopyClose(symbol, timeframe, 0, rates_total, prices);
for (int i = 0; i < rates_total - period + 1; i++) {
double sum = 0;
for (int j = 0; j < period; j++) {
sum += prices[i + j];
}
result[i] = sum / period;
}
}
Alternative: Programmierer beauftragen
Wenn du keine Lust darauf hast, die MQL-Programmierung zu erlernen, dann kannst du natürlich auch die Aufgabe an einen Programmierer abgeben.
Hierbei übernimmt der Programmierer alle technischen Schritte für dich: Die eigentliche Programmierung, das Testen der technischen Funktionen, die Fehlersuche und natürlich auch das Beheben der Fehler.
Somit teilst du deine genauen Anforderungen dem Programmierer mit und bekommst dann das gewünschte Handelssystem bzw. den gewünschten Indikator.
Wenn du einen erfahrenen MetaTrader-Programmierer suchst, dann bist du bei uns genau an der richtigen Stelle. In unserem Team sind erfahrene Programmierer, die jeden Wunsch für den MetaTrader 4 oder MT5 programmieren können.
Kontaktiere dafür einfach unverbindlich unser Team, teil uns deinen Wunsch mit und du bekommst von uns ein kostenloses Angebot für die Programmierung.