Automatisierter Handel mit dem MQL5 Wizard: Handelssignale durch den gleitenden Durchschnitt

Mike 2011.01.08 00:03 15 0 0
Anhang

MQL5 Wizard ermöglicht es dir, den Code für Expert Advisors automatisch zu erstellen. Weitere Details findest du hier: Fertige Expert Advisors im MQL5 Wizard erstellen.

In diesem Beitrag betrachten wir eine Strategie, die auf dem Preis-Crossover mit dem gleitenden Durchschnitt basiert. Diese Strategie nennt sich „Signale basierend auf Preis-Crossover mit MA“ (bei der automatischen Erstellung von EAs im MQL5 Wizard).

Die Handelssignale:

  • Buy: Aufwärtscrossover des Preises mit dem gleitenden Durchschnitt.
  • Sell: Abwärtscrossover des Preises mit dem gleitenden Durchschnitt.
  • Die Überprüfung des Anstiegs/Abfalls des gleitenden Durchschnitts dient zur Filterung falscher Signale.

Diese Strategie ist in der CSignalMA-Klasse der Handelsstrategie-Klassen der MQL5 Standardbibliothek implementiert (zu finden unter MQL5\Include\Expert\Signal\SignalMA.mqh).

Abbildung 1. Handelssignale basierend auf Preis-Crossover mit gleitendem Durchschnitt

Abbildung 1. Handelssignale basierend auf Preis-Crossover mit gleitendem Durchschnitt

Handelssignale

Die Handelsstrategie ist in der CSignalMA-Klasse implementiert und verfügt über einige geschützte Methoden, um den Zugriff auf Indikatoren und Preiswerte zu vereinfachen:

double  MA(int ind)          // Gibt den Wert des gleitenden Durchschnitts der Kerze zurück
double  Open(int ind)        // Gibt den Eröffnungspreis der Kerze zurück
double  Close(int ind)        // Gibt den Schlusskurs der Kerze zurück
double  StateMA(int ind)     // Gibt positiven Wert zurück, wenn der Durchschnitt steigt, und negativ, wenn er fällt
double  StateOpen(int ind)   // Gibt die Differenz zwischen Eröffnungspreis und gleitendem Durchschnitt zurück
double  StateClose(int ind)   // Gibt die Differenz zwischen Schlusskurs und gleitendem Durchschnitt zurück
Die Preis- und Indikatorwerte der 0. (unvollendeten) Kerze können sich ändern, daher ist es notwendig, die Handelsbedingungen anhand der Daten abgeschlossener (formierter) Kerzen zu überprüfen.

1. Long-Position eröffnen

Die Bedingungen zum Öffnen einer Long-Position (Preis-Crossover mit MA und Überprüfung des Anstiegs des gleitenden Durchschnitts):

  • Open(1) < MA(1): Eröffnungspreis ist niedriger als der gleitende Durchschnitt;
  • Close(1) > MA(1): Schlusskurs ist höher als der gleitende Durchschnitt;
  • MA(1) > MA(2): Überprüfung des Anstiegs des gleitenden Durchschnitts (um falsche Signale zu filtern).
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen zum Öffnen einer Long-Position (Kauf) |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenLong(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- Preis hat den gleitenden Durchschnitt nach oben überschritten und der MA steigt
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }

2. Long-Position schließen

Die Bedingungen zum Schließen einer Long-Position (Preis-Crossover mit MA und Überprüfung des Abfalls des gleitenden Durchschnitts):

  • Open(1) > MA(1): Eröffnungspreis ist höher als der gleitende Durchschnitt;
  • Close(1) < MA(1): Schlusskurs ist niedriger als der gleitende Durchschnitt;
  • MA(1) < MA(2): Überprüfung des Abfalls des gleitenden Durchschnitts (um falsche Signale zu filtern).
//+------------------------------------------------------------------+
//| Überprüft die Bedingungen zum Schließen einer Long-Position       |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseLong(double& price)
  {
   price=0.0;
//--- Preis hat den gleitenden Durchschnitt nach unten überschritten und der MA fällt
  return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


3. Short-Position öffnen

Die Bedingungen für das Öffnen einer Short-Position sind die gleichen wie die Bedingungen für das Schließen einer Long-Position.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen zum Öffnen einer Short-Position (Verkauf) |
//+------------------------------------------------------------------+
bool CSignalMA::CheckOpenShort(double& price,double& sl,double& tp,datetime& expiration)
  {
   price=0.0;
   sl   =0.0;
   tp   =0.0;
//--- Preis hat den gleitenden Durchschnitt nach oben überschritten und der MA fällt 
   return(StateOpen(1)>0 && StateClose(1)<0 && StateMA(1)<0);
  }


4. Short-Position schließen

Die Bedingungen zum Schließen einer Short-Position sind die gleichen wie die Bedingungen für das Öffnen einer Long-Position.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen zum Schließen einer Short-Position       |
//+------------------------------------------------------------------+
bool CSignalMA::CheckCloseShort(double& price)
  {
   price=0.0;
//--- Preis hat den gleitenden Durchschnitt nach unten überschritten und der MA steigt
   return(StateOpen(1)<0 && StateClose(1)>0 && StateMA(1)>0);
  }
//+------------------------------------------------------------------+

Erstellung eines Expert Advisors mit dem MQL5 Wizard

Um einen Handelsroboter basierend auf der Strategie zu erstellen, musst du die Signal-Eigenschaften als „Signale basierend auf Preis-Crossover mit MA“ in der Option „Fertige Expert Advisors erstellen“ im MQL5 Wizard auswählen:

Abbildung 2. Wähle

Abbildung 2. Wähle „Signale basierend auf Preis-Crossover mit MA“ im MQL5 Wizard

Anschließend musst du den benötigten Trailing-Stop-Algorithmus und das Geld- und Risikomanagement-System angeben. Der Code des Expert Advisors wird automatisch erstellt, du kannst ihn dann kompilieren und im Strategietester des MetaTrader 5-Client-Terminals testen.


Testergebnisse

Schauen wir uns das Backtesting des Expert Advisors an historischen Daten an (EURUSD H1, benutzerdefinierter Zeitraum: 1.1.2010-05.01.2011, MA_Period=12, MA_Shift=0).

Trading Fixed Lot, 0.1), der Trailing-Stop-Algorithmus wird nicht verwendet (Trailing nicht verwendet).

Crossover mit gleitendem Durchschnitt

Abbildung 3. Historische Backtesting-Ergebnisse des Expert Advisors, basierend auf Preis-Crossover mit MA

Anlagen: Die SignalMA.mqh mit der CSignalMA-Klasse (enthalten in der MQL5 Standardbibliothek) befindet sich im MQL5\Include\Expert\Signal-Ordner. Die Datei crossoverma.mq5 enthält den Code des Expert Advisors, der mit dem MQL5 Wizard erstellt wurde.

Liste
Kommentar 0