Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Twitter!
und werden Sie Mitglied unserer Fangruppe
Interessantes Skript?
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Hat Ihnen das Skript gefallen?
Bewerten Sie es im Terminal MetaTrader 5
Expert Advisors

MQL5 Wizard- Handelssignale basierend auf der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators - Experte für den MetaTrader 5

Ansichten:
2026
Rating:
(34)
Veröffentlicht:
2016.09.02 10:54
Aktualisiert:
2016.11.22 07:34
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Der Artikel Der MQL5-Assistent: Erstellen von Expert-Systemen ohne Programmierung beschreibt Schritte der automatischen Erstellung des Codes eines Expert Advisors mithilfe von MQL5 Wizard.

Hier erzählen wir über eine Trendstrategie, die auf den Linien des MACD Indikators beruht. Diese Strategie ist im Standardpaket des Terminals enthalten und heißt "Signals based on crossover of main and signal MACD lines".

Der MACD Indikator basiert auf dem schnellen EMA (FastEMA) und dem langsamen EMA (SlowEMA). Auf der Basis dieser Linien wird die Hauptlinie MACD als die Differenz zwischen dem schnellen EMA und dem langsamen EMA gezeichnet. Die Signallinie des MACD Indikators wird als die mit PeriodSignal geglättete MACD-Hauptlinie berechnet.

Handelssignale:

  • Kauf: wenn die Hauptlinie des MACD Indikators die Signallinie von MACD von unten nach oben kreuzt.
  • Verkauf: wenn die Hauptlinie des MACD Indikators die Signallinie von MACD von oben nach unten kreuzt.

Diese Handelsstrategie wird in der Klasse CSignalMACD der Standardbibliothek implementiert (MQL5\Include\Expert\Signal\SignalMACD.mqh)

Abbildung 1. Handelssignale der Strategie, die auf der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators beruht

Abbildung 1. Handelssignale der Strategie, die auf der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators beruht


Handelssignale

Das Modul der Handelssignale nach dieser Strategie wird in der Klasse CSignalMACD implementiert, die Klasse enthält mehrere geschützte Methoden (protected), die für den Zugang zu Linienwerten des MACD Indikators und zur Berechnung ihrer gegenseitigen Lage genutzt werden:

double  MainMACD(int ind)      // gibt den Wert der Hauptlinie von MACD auf dem Balken zurück
double  SignalMACD(int ind)    // gibt den Wert der Signallinie von MACD auf dem Balken zurück
double  StateMACD(int ind)     // gibt die Differenz zwischen der Hauptlinie und der Signallinie auf dem Balken zurück
int     ExtStateMACD(int ind); // gibt zurück, wie viele Male das Zeichen der Differenz zwischen der Haupt- und Signallinie von MACD geändert wurde


1. Eröffnen einer Long-Position

Bedingungen für das Eröffnen einer Long-Position:

  • ExtStateMACD(1)==1; die Hauptlinie durchkreuzt die Signallinie des MACD Indikators von unten nach oben.
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Eröffnen einer Long-Position   |
//+------------------------------------------------------------------+
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. Schließen einer Long-Position

Bedingungen für das Schließen einer Long-Position:

  • ExtStateMACD(1)==-1; die Hauptlinie durchkreuzt die Signallinie des MACD Indikators von oben nach unten.
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Schließen einer Long-Position  |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseLong(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==-1);
  }


3. Eröffnen einer Short-Position

Die Bedingungen für das Eröffnen einer Short-Position und das Schließen einer Long-Position sind gleich.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Eröffnen einer Short-Position  |
//+------------------------------------------------------------------+
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. Schließen einer Short-Position

Die Bedingungen für das Schließen einer Short-Position und Eröffnen einer Long-Position sind gleich.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Schließen einer Short-Position |
//+------------------------------------------------------------------+
bool CSignalMACD::CheckCloseShort(double& price)
  {
   price=0.0;
//---
   return(ExtStateMACD(1)==1);
  }


Erstellung eines Expert Advisors mithilfe von MQL5 Wizard

Um einen Handelsroboter nach dieser Strategie mithilfe von MQL5 Wizard zu erstelln, wählen Sie "Signals based on crossover of main and signal MACD lines" im zweiten Schritt aus:

Abbildung 2. Auswahl des Moduls von Handelssignalen auf der Basis der Kreuzung von Linien des MACD Indikators  MQL5

Abbildung 2. Auswahl des Moduls von Handelssignalen auf der Basis der Kreuzung von Linien des MACD Indikators in MQL5 Wizard

Geben Sie den gewünschten Typ von Trailing Stop und Kapitalmanagement in den nächsten Schritten an. Der Code des Expert Advisors wird automatisch generiert, er muss kompiliert werden und dann können Sie mit dem Testen anfangen.


Testergebnisse

Die Ergebnisse des EAs bei einem Test unter Verwendung von historischen Daten (EURUSD H1, Zeitraum: 1.1.2010-05.01.2011, PeriodFast=12, PeriodSlow=24, PeriodSignal=9, StopLoss=20, TakeProfit=80).

Dieser Expert Advisor benutzt das Modul für den Handel mit einer festgelegten Lotgröße von 0.1 Lot (Trading Fixed Lot), ein Trailing Stop wurde nicht verwendet (Trailing not used).

Abb. 3. Testergebnisse des EAs, der auf der Kreuzung von Linien des MACD Indikators beruht

Abbildung 3. Testergebnisse des EAs, der auf der Kreuzung von Linien des MACD Indikators
beruht

Die Datei SignalMACD.mqh, die die Klasse von Handelssignalen CSignalMACD enthält(gehört zur Standardbibliothek von MetaTrader 5) wird im Ordner MQL5\Include\Expert\Signal gespeichert.

Der mithilfe von MQL5 Wizard generierte Code für den Expert Advisor ist angefügt als Datei: testmacd.mq5.

Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/262

MQL5 Wizard - Handelssignale basierend auf der Kreuzung von zwei exponentiell geglätteten gleitenden Durchschnitten MQL5 Wizard - Handelssignale basierend auf der Kreuzung von zwei exponentiell geglätteten gleitenden Durchschnitten

Handelssignale basierend auf der Kreuzung von zwei exponentiellen gleitenden Durchschnitten "Signals based on crossover of two EMA".

MQL5 Wizard - Handelssignale basierend auf der Kreuzung des Preises und gleitenden Durchschnittes mit der Bestätigung durch den ADX-Indikator MQL5 Wizard - Handelssignale basierend auf der Kreuzung des Preises und gleitenden Durchschnittes mit der Bestätigung durch den ADX-Indikator

Handelssignale basierend auf der Kreuzung des Preises und des EMAs mit der Bestätigung durch den ADX Indikator "Signals based on price crossover with MA confirmed by ADX".

MQL5 Wizard- Handelssignale basierend auf der Kreuzung zweier EMA mit einem Zeitfilter MQL5 Wizard- Handelssignale basierend auf der Kreuzung zweier EMA mit einem Zeitfilter

Handelssignale auf der Basis der Kreuzung zweier EMA mit einem Filter nach zeitlichen Parametern "Signals based on crossover of two EMA with intraday time filter".

MQL5 Wizard - Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators MQL5 Wizard - Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators

Handelssignale basierend auf der Kreuzung der Linien des Alligator Indikators.