Wie funktioniert die MQL5-Sprache?
MQL5 (MetaQuotes Language 5) ist eine Hochsprache, die speziell für die Entwicklung von Handelsrobotern (Expert Advisors), technischen Indikatoren und Skripten für die MetaTrader 5-Plattform entwickelt wurde. MQL5 ist objektorientiert und bietet eine umfangreiche Bibliothek von Funktionen und Klassen, die den Handel und die Analyse von Finanzmärkten erleichtern.
Eigenschaften von MQL5
- Objektorientierung:
- MQL5 unterstützt Klassen, Vererbung und Polymorphismus, was die Entwicklung modularer und wiederverwendbarer Code ermöglicht.
- Integrierte Funktionen:
- MQL5 bietet vordefinierte Funktionen für den Zugriff auf Marktdaten, die Ausführung von Trades und die Verwaltung von Positionen.
- Technische Indikatoren:
- Die Sprache enthält eine Vielzahl von technischen Indikatoren, die direkt in den Code integriert werden können.
- Ereignisgesteuerte Programmierung:
- MQL5 verwendet Ereignishandler wie
OnTick()
,OnInit()
undOnDeinit()
, um auf Marktveränderungen zu reagieren.
- Backtesting und Optimierung:
- MQL5 ermöglicht das Testen und Optimieren von Expert Advisors an historischen Daten.
Wie erstelle ich einen Expert Advisor für MetaTrader 5?
Ein Expert Advisor (EA) ist ein automatisiertes Handelsprogramm, das in MQL5 geschrieben wird. Hier ist eine Schritt-für-Schritt-Anleitung zur Erstellung eines einfachen EAs:
1. MetaEditor öffnen
- Starten Sie MetaTrader 5 und öffnen Sie den MetaEditor über das Menü:
Tools > MetaQuotes Language Editor
oder drücken Sie F4.
2. Neuen Expert Advisor erstellen
- Gehen Sie im MetaEditor zu:
File > New > Expert Advisor (template)
und klicken Sie auf Weiter. - Geben Sie dem EA einen Namen (z. B.
MyFirstEA
) und klicken Sie auf Fertig stellen.
3. Grundgerüst des EAs verstehen
Das Grundgerüst eines EAs besteht aus mehreren Funktionen:
OnInit()
: Wird beim Start des EAs ausgeführt (z. B. zur Initialisierung von Variablen).OnDeinit()
: Wird beim Beenden des EAs ausgeführt (z. B. zur Freigabe von Ressourcen).OnTick()
: Wird bei jedem neuen Tick (Preisänderung) ausgeführt.
Hier ist ein einfaches Beispiel:
int OnInit()
{
// Initialisierungscode
Print("Expert Advisor gestartet");
return(INIT_SUCCEEDED);
}
void OnDeinit(const int reason)
{
// Aufräumcode
Print("Expert Advisor beendet");
}
void OnTick()
{
// Hauptlogik des EAs
double bid = SymbolInfoDouble(_Symbol, SYMBOL_BID); // Aktueller Bid-Preis
double ask = SymbolInfoDouble(_Symbol, SYMBOL_ASK); // Aktueller Ask-Preis
// Beispiel: Kaufe, wenn der Preis unter einem bestimmten Wert liegt
if(bid < 1.2000)
{
int ticket = OrderSend(_Symbol, OP_BUY, 0.1, ask, 3, 0, 0, "MyFirstEA", 12345, 0, clrGreen);
if(ticket < 0)
{
Print("Fehler beim Öffnen der Order: ", GetLastError());
}
}
}
4. EA kompilieren
- Speichern Sie den Code und klicken Sie auf Compile (F7), um den EA zu kompilieren.
- Wenn keine Fehler vorhanden sind, wird der EA in der Datei
Experts
Ihres MetaTrader 5-Installationsverzeichnisses gespeichert.
5. EA in MetaTrader 5 laden
- Öffnen Sie MetaTrader 5 und gehen Sie zu:
View > Navigator
(Strg+N). - Suchen Sie Ihren EA unter
Expert Advisors
, ziehen Sie ihn auf ein Chart und aktivieren Sie ihn.
6. EA testen und optimieren
Backtesting:
- Gehen Sie zu
View > Strategy Tester
(Strg+R). - Wählen Sie Ihren EA, das Symbol und den Zeitraum aus.
- Klicken Sie auf Start, um den EA an historischen Daten zu testen.
Optimierung:
- Verwenden Sie die Optimierung, um die besten Parameter für Ihren EA zu finden.
Wichtige MQL5-Funktionen für EAs
- Marktdaten abrufen:
SymbolInfoDouble(_Symbol, SYMBOL_BID)
– Aktueller Bid-Preis.SymbolInfoDouble(_Symbol, SYMBOL_ASK)
– Aktueller Ask-Preis.
- Orders platzieren:
OrderSend()
– Sendet eine Handelsorder.
- Positionsverwaltung:
PositionSelect()
– Überprüft, ob eine Position geöffnet ist.PositionClose()
– Schließt eine Position.
- Technische Indikatoren:
iMA()
– Gleitender Durchschnitt.iRSI()
– Relative Strength Index.
Tipps für die Entwicklung von EAs
- Testen Sie gründlich:
- Verwenden Sie den Strategy Tester, um Ihren EA an historischen Daten zu testen.
- Risikomanagement implementieren:
- Verwenden Sie Stop-Loss und Take-Profit, um Risiken zu begrenzen.
- Logging und Fehlerbehandlung:
- Verwenden Sie
Print()
undGetLastError()
, um Fehler zu protokollieren und zu beheben.
- Code modularisieren:
- Teilen Sie Ihren Code in Funktionen und Klassen auf, um ihn wiederverwendbar und wartbar zu machen.
Fazit
Die Entwicklung eines Expert Advisors in MQL5 erfordert ein grundlegendes Verständnis der Programmierung und der Finanzmärkte. Mit den integrierten Funktionen und Tools von MetaTrader 5 können Sie jedoch schnell leistungsstarke Handelsroboter erstellen. Beginnen Sie mit einfachen Strategien und erweitern Sie Ihren EA schrittweise, während Sie mehr Erfahrung sammeln.
Hinweis: Bevor Sie einen EA im Live-Handel einsetzen, testen Sie ihn gründlich im Demo-Modus, um sicherzustellen, dass er wie erwartet funktioniert.