Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Facebook!
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 von zwei exponentiell geglätteten gleitenden Durchschnitten - Experte für den MetaTrader 5

Ansichten:
1775
Rating:
(32)
Veröffentlicht:
2016.09.02 10:51
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 der Kreuzung zweier EMAs (schnellen und langsamen) beruht. Diese Strategie ist im Standardpaket des Terminals enthalten und heißt "Signals based on crossover of two EMA".

Handelssignale:

  • Kauf: wenn der schnelle EMA den langsamen von unten nach oben kreuzt
  • Verkauf: wenn der schnelle EMA den langsamen von oben nach unten kreuzt.

Die Handelsstrategie wird in der Klasse CSignalCrossEMA implementiert.

Abbildung 1. Handelssignale der Strategie basierend auf der Kreuzung zweier EMAs

Abbildung 1. Handelssignale der Strategie basierend auf der Kreuzung zweier EMAs


Handelssignale

Das Modul mit Handelssignalen dieser Strategie ist in der Klasse CSignalCrossEMA implementiert, sie enthält mehrere geschützte (protected) Methoden, die für den Zugang zu Werten von Kursen und Indikatoren verwendet werden:

double   FastEMA(int ind)      // gibt den Wert des schnellen gleitenden Durchschnitts auf dem Balken zurück
double   SlowEMA(int ind)      // gibt den Wert des langsamen gleitenden Durchschnitts auf dem Balken zurück
double   StateEMA(int ind)     // gibt die Differenz zwischen den Werten des langsamen und des schnellen gleitenden Durchschnitts auf dem Balken zurück


1. Eröffnen einer Long-Position

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

  • StateEMA(1)>0 und StateEMA(2)<0: der schnelle gleitende Durchschnitt kreuzt den langsamen von unten nach oben auf dem letzten vollständigen Balken.
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Eröffnen einer Long-Position   |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }


2. Schließen einer Long-Position

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

  • StateEMA(1)<0 und StateEMA(2)>0: der schnelle gleitende Durchschnitt kreuzt den langsamen von oben nach unten auf dem letzten vollständigen Balken.
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für das Schließen einer Long-Position  |
//+------------------------------------------------------------------+
bool CSignalCrossEMA::CheckCloseLong(double& price)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }


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 CSignalCrossEMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   if(!(StateEMA(2)>0 && StateEMA(1)<0)) return(false);
//---
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//---
   return(true);
  }


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 CSignalCrossEMA::CheckCloseShort(double& price)
  {
   if(!(StateEMA(2)<0 && StateEMA(1)>0)) return(false);
//---
   price=0.0;
//---
   return(true);
  }

Erstellung eines Expert Advisors mithilfe von MQL5 Wizard

Um einen Handelsroboter nach dieser Strategie mithilfe von MQL5 Wizard zu erstellen, wählen Sie "Signals based on crossover of two EMA" im zweiten Schritt aus:

Abbildung 2. Auswahl des Moduls der Handelssignale basierend auf der Kreuzung zweier EMAs in MQL5 Wizard

Abbildung 2. Auswahl des Moduls der Handelssignale basierend auf der Kreuzung zweier EMAs mithilfe von 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.

Neben diesem Modul enthält die Standardbibliothek das Modul der Handelssignale, die auf der Kreuzung zweier gleitenden Durchschnitte beruhen "Signals based on crossover of two MA". Das Modul wird in der Klasse CSignalCrossMA implementiert. Es bietet viele zusätzliche Funktionen, welche das System noch flexibler machen (neben Perioden gleitender Durchschnitte können Typen und Methoden der Mittelung, Verschiebung der MAs sowie Stop Loss und Take Profit Levels verwendet werden).

Abbildung 3. Das Modul der Handelssignale basierend auf der Kreuzung zweier MAs in MQL5 Wizard

Abbildung 3. Das Modul der Handelssignale basierend auf der Kreuzung zweier MAs in MQL5 Wizard


Testergebnisse

Die Ergebnisse des Expert Advisors bei einem Test unter Verwendung von historischen Daten (EURUSD H1, Testperiode: 1.1.2010-05.01.2011, FastPeriod=12, SlowPeriod=24).

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. 4. Ergebnisse des Testens für den EA, der auf der Kreuzung zweier EMA beruht

Abb. 4. Ergebnisse des Testens für den EA, der auf der Kreuzung zweier EMA beruht

Die Datei SignalCrossEMA.mqh, die die Klasse von Handelssignalen CSignalCrossEMA enthält, muss nach client_terminal_data\folder\MQL5\Include\Expert\Signal kopiert werden.

Der im MQL5 Wizard generierte Code für den Expert Advisor ist angefügt als Datei: crossover_2ema.mq5.

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

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 MQL5 Wizard - Handelssignale

Handelssignale auf der Basis der gegenseitigen Lage drei exponentiell geglätteter gleitender Durchschnitte "Signals based on three EMA".

MQL5 Wizard- Handelssignale basierend auf der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators MQL5 Wizard- Handelssignale basierend auf der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators

Handelsignale auf der Basis der Kreuzung der Hauptlinie und der Signallinie des MACD Indikators "Signals based on crossover of main and signal MACD lines" (die Klasse CSignalMACD ist in der Standardbibliothek enthalten).

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".