MQL5 Wizard ermöglicht die automatische Erstellung von Trading-Expert Advisors (EAs), ohne dass Programmierkenntnisse erforderlich sind (siehe MQL5 Wizard: Expert Advisors ohne Programmierung erstellen).
In diesem Beitrag werfen wir einen Blick auf die Handelssignale, die auf der Kreuzung der MACD-Indikatorlinien basieren. Die Strategie heißt „Signale basierend auf der Kreuzung der Haupt- und Signallinien des MACD“, wenn der EA automatisch im MQL5 Wizard erstellt wird.
Die Hauptlinie des MACD-Indikators wird als Differenz zwischen der schnellen und der langsamen EMA berechnet. Die Signallinie des MACD wird als geglättete Hauptlinie mit der PeriodSignal-Periode berechnet.
Handelssignale:
- Buy: Aufwärtskreuzung der Haupt- und Signallinien des MACD-Indikators.
- Sell: Abwärtskreuzung der Haupt- und Signallinien des MACD-Indikators.
Diese Strategie ist in der CSignalMACD Klasse der Handelsstrategie-Klassen der MQL5 Standardbibliothek implementiert (zu finden in MQL5\Include\Expert\Signal\SignalMACD.mqh).

Abbildung 1. Handelssignale, basierend auf der Kreuzung der Haupt- und Signallinien des MACD
Handelssignale
Die Handelsstrategie ist in der CSignalMACD Klasse implementiert und bietet einige geschützte Methoden, um den Zugriff auf die Indikatorwerte zu vereinfachen:
double MainMACD(int ind) // gibt den Wert der Hauptlinie des MACD für die Kerze zurück double SignalMACD(int ind) // gibt den Wert der Signallinie des MACD für die Kerze zurück double StateMACD(int ind) // gibt die Differenz zwischen Haupt- und Signallinie des MACD zurück int ExtStateMACD(int ind); // gibt die Anzahl der Vorzeichenwechsel der Differenz zwischen Haupt- und Signallinie zurück
1. Long-Position eröffnen
Bedingungen für die Eröffnung einer Long-Position:
- ExtStateMACD(1)==1; das bedeutet, dass die Hauptlinie die Signallinie des MACD aufwärts gekreuzt hat.
//+------------------------------------------------------------------+ //| Überprüft die Bedingungen zum Eröffnen einer Long-Position (Kauf)| //+------------------------------------------------------------------+ bool CSignalMACD::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration) { price=0.0; sl =m_symbol.Ask()-m_stop_loss*m_adjusted_point; tp =m_symbol.Ask()+m_take_profit*m_adjusted_point; //--- return(ExtStateMACD(1)==1); }
2. Long-Position schließen
Bedingungen zum Schließen einer Long-Position:
- ExtStateMACD(1)==1; das bedeutet, dass die Hauptlinie die Signallinie des MACD abwärts gekreuzt hat.
//+------------------------------------------------------------------+ //| Überprüft die Bedingungen zum Schließen einer Long-Position | //+------------------------------------------------------------------+ bool CSignalMACD::CheckCloseLong(double& price) { price=0.0; //--- return(ExtStateMACD(1)==-1); }
3. Short-Position eröffnen
Die Bedingungen zum Eröffnen einer Short-Position sind dieselben wie die Bedingungen zum Schließen einer Long-Position.
//+------------------------------------------------------------------+ //| Überprüft die Bedingungen zum Eröffnen einer Short-Position (Verkauf)| //+------------------------------------------------------------------+ bool CSignalMACD::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration) { price=0.0; sl =m_symbol.Bid()+m_stop_loss*m_adjusted_point; tp =m_symbol.Bid()-m_take_profit*m_adjusted_point; //--- return(ExtStateMACD(1)==-1); }
4. Short-Position schließen
Die Bedingungen zum Schließen einer Short-Position sind dieselben wie die Bedingungen zum Eröffnen einer Long-Position.
//+------------------------------------------------------------------+ //| Überprüft die Bedingungen zum Schließen einer Short-Position | //+------------------------------------------------------------------+ bool CSignalMACD::CheckCloseShort(double& price) { price=0.0; //--- return(ExtStateMACD(1)==1); }
Expert Advisor mit MQL5 Wizard erstellen
Um einen Handelsroboter basierend auf der Strategie zu erstellen, wählen Sie die Signalparameter als „Signale basierend auf der Kreuzung der Haupt- und Signallinien des MACD“ in der Option „Bereitgestellte Expert Advisors erstellen“ im MQL5 Wizard aus:

Abbildung 2. Wählen Sie "Signale basierend auf der Kreuzung der Haupt- und Signallinien des MACD" im MQL5 Wizard
Im nächsten Schritt müssen Sie den benötigten Trailing Stop-Algorithmus und das Geld- und Risikomanagement-System angeben. Der Code des Expert Advisors wird automatisch erstellt, den Sie kompilieren und im Strategietester des MetaTrader 5 Client-Terminals testen können.
Testergebnisse
Betrachten wir das Backtesting des Expert Advisors auf historischen Daten (EURUSD H1, Testzeitraum: 01.01.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).
Bei der Erstellung des Expert Advisors verwendeten wir das feste Volumen (Trading Fixed Lot, 0.1), der Trailing Stop-Algorithmus wurde nicht verwendet (Trailing nicht verwendet).

Abbildung 3. Testergebnisse des Expert Advisors mit Handelssignalen, basierend auf der Kreuzung der MACD-Linien
Anlagen: Die SignalMACD.mqh mit CSignalMACD Klasse (in der MQL5 Standardbibliothek enthalten) befindet sich im MQL5\Include\Expert\Signal-Ordner. Die testmacd.mq5 enthält den Code des Expert Advisors, der mit dem MQL5 Wizard erstellt wurde.
Kommentar 0