Startseite Systemhandel Beitrag

MQL5 Wizard: Handelssignale mit 3 schwarzen Krähen/3 weißen Soldaten und Stochastik erstellen

Anhang
283.zip (6.6 KB, Herunterladen 2 mal)

Der MQL5 Wizard ermöglicht es dir, sofort einsatzbereite Expert Advisors (EAs) basierend auf den Standardbibliotheksklassen zu erstellen, die zusammen mit dem Client-Terminal geliefert werden (siehe Bereitstellung von Expert Advisors im MQL5 Wizard für weitere Details). Du kannst deine Handelsideen schnell überprüfen, indem du einfach deine eigene Klasse für Handelssignale erstellst. Die Struktur dieser Klasse und ein Beispiel findest du im Artikel MQL5 Wizard: Erstellung eines Moduls für Handelssignale.

Die grundlegende Idee ist wie folgt: Die Klasse der Handelssignale wird von CExpertSignal abgeleitet. Anschließend musst du die virtuellen Methoden LongCondition() und ShortCondition() mit deinen eigenen Methoden überschreiben.

Es gibt ein Buch mit dem Titel "Strategien der besten Trader" (auf Russisch), in dem viele Handelsstrategien behandelt werden. Wir konzentrieren uns hier auf Umkehrkerzenmuster, die durch Stochastik, CCI, MFI und RSI Oszillatoren bestätigt werden.

Die beste Vorgehensweise ist, eine separate Klasse abzuleiten, die von CExpertSignal abgeleitet ist, um die Ausbildung von Kerzenmustern zu überprüfen. Zum Bestätigen der Handelssignale, die durch Kerzenmuster generiert werden, reicht es aus, eine Klasse abzuleiten, die von CCandlePattern stammt, und die erforderlichen Funktionen (z.B. Bestätigung durch Oszillatoren) dort hinzuzufügen.

Hier betrachten wir die Signale, die auf dem Umkehrkerzenmuster "3 schwarze Krähen/3 weiße Soldaten" basieren, das durch den Stochastik-Indikator bestätigt wird. Das Handelsmodul basiert auf der Klasse CCandlePattern, ein einfaches Beispiel für die Erstellung von Handelssignalen mit Kerzenmustern.


1. Umkehrkerzenmuster "3 schwarze Krähen" und "3 weiße Soldaten"

1.1. 3 schwarze Krähen

Ein bärisches Kerzenmuster, das verwendet wird, um die Umkehr des aktuellen Aufwärtstrends vorherzusagen. Dieses Muster besteht aus drei aufeinanderfolgenden langen Kerzen, die unter dem Schlusskurs des vorherigen Tages geschlossen haben, wobei sich die Eröffnung jeder Sitzung im Körper der vorherigen Kerze befindet.

Abbildung 1. Kerzenmuster 3 schwarze Krähen

Abbildung 1. Kerzenmuster 3 schwarze Krähen

Die Erkennung des "3 schwarze Krähen"-Musters wird in der Methode CheckPatternThreeBlackCrows der Klasse CCandlePattern implementiert:

//+------------------------------------------------------------------+
//| Überprüft die Bildung des "3 schwarze Krähen"-Kerzenmusters      |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeBlackCrows()
  {
//--- 3 schwarze Krähen 
   if((Open(3)-Close(3)>>AvgBody(1)) && // (lange schwarze)

      (Open(2)-Close(2)>>AvgBody(1)) &&
      (Open(1)-Close(1)>>AvgBody(1)) &&
      (MidPoint(2)<MidPoint(3))     && // (niedrigere Mittelpunkte)
      (MidPoint(1)<MidPoint(2)))       
      return(true);
//---
   return(false);
  }

Die Methode CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) der Klasse CCandlePattern wird verwendet, um die Bildung des "3 schwarze Krähen"-Kerzenmusters zu überprüfen.


1.2. Kerzenmuster 3 weiße Soldaten

Ein bullisches Kerzenmuster, das verwendet wird, um die Umkehr des aktuellen Abwärtstrends vorherzusagen. Dieses Muster besteht aus drei aufeinanderfolgenden langen Kerzen, die höher als der Schlusskurs des vorherigen Tages geschlossen haben, wobei sich die Eröffnung jeder Sitzung im Körper der vorherigen Kerze befindet.

Das Muster ist gültig, solange die Kerze des zweiten Tages in der oberen Hälfte des Bereichs des ersten Tages eröffnet. Am Ende des zweiten Tages sollte sie nahe ihrem Hoch schließen und einen sehr kleinen oder nicht vorhandenen oberen Schatten hinterlassen. Das gleiche Muster wird am dritten Tag wiederholt.

Abbildung 2. Kerzenmuster 3 weiße Soldaten

Abbildung 2. Kerzenmuster 3 weiße Soldaten

Hier ist die Methode zur Erkennung des "3 weiße Soldaten"-Musters:

//+------------------------------------------------------------------+
//| Überprüft die Bildung des "3 weiße Soldaten"-Kerzenmusters       |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternThreeWhiteSoldiers()
  {
   //--- 3 weiße Soldaten
   if((Close(3)-Open(3)>>AvgBody(1)) && // lange weiße
      (Close(2)-Open(2)>>AvgBody(1)) &&
      (Close(1)-Open(1)>>AvgBody(1)) &&
      (MidPoint(2)>MidPoint(3))     && // höhere Mittelpunkte
      (MidPoint(1)>MidPoint(2)))
      return(true);
//---
   return(false);
  }

Die Methode CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) der Klasse CCandlePattern wird verwendet, um die Bildung des "3 weiße Soldaten"-Kerzenmusters zu überprüfen.


2. Handelssignale, bestätigt durch den Stochastik-Indikator

Die Handelssignale zum Öffnen einer Long- oder Short-Position müssen durch den Stochastik-Oszillator bestätigt werden. Die %D-Linie muss über bzw. unter dem entsprechenden kritischen Niveau (30 oder 70) liegen.

Das Schließen der geöffneten Position hängt von den Werten des %D-Indikators ab. Dies kann in zwei Fällen erfolgen:

  1. Wenn die %D-Linie das gegenüberliegende kritische Niveau erreicht (80 für eine Long-Position und 20 für eine Short-Position)
  2. Wenn das Umkehrsignal nicht bestätigt wird (wenn die %D-Linie die folgenden Niveaus erreicht: 20 für eine Long-Position und 80 für eine Short-Position)

Abbildung 3. 3 weiße Soldaten-Muster, bestätigt durch den Stochastik-Indikator

Abbildung 3. 3 weiße Soldaten-Muster, bestätigt durch den Stochastik-Indikator


Die Überprüfung der Handelsbedingungen für den Einstieg und Ausstieg erfolgt in zwei Methoden:

  • int CBC_WS_Stoch::LongCondition() - überprüft die Bedingungen zum Öffnen einer Long-Position (gibt 80 zurück) und schließt die Short-Position (gibt 40 zurück);
  • int CBC_WS_Stoch::ShortCondition() - überprüft die Bedingungen zum Öffnen einer Short-Position (gibt 80 zurück) und schließt die Long-Position (gibt 40 zurück).

2.1. Long-Position eröffnen/Short-Position schließen

  1. Die Bildung des "3 weiße Soldaten"-Musters muss durch den Stochastik-Indikator bestätigt werden: StochSignal(1)<30 (der Wert der Signallinie des Stochastik-Indikators der letzten abgeschlossenen Kerze muss weniger als 30 sein).

  2. Die Short-Position muss geschlossen werden, wenn die Signallinie des Stochastik-Indikators die 20 oder 80 Niveaus nach oben überschreitet.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für den Markteintritt und -ausstieg     |
//| 1) Markteintritt (Long-Position eröffnen, Ergebnis=80)           |
//| 2) Marktausgang (Short-Position schließen, Ergebnis=40)         |
//+------------------------------------------------------------------+
int CBC_WS_Stoch::LongCondition()
  {
   int result=0;
//--- idx kann verwendet werden, um den Arbeitsmodus des Expert Advisors zu bestimmen
//--- idx=0 - in diesem Fall überprüft EA die Handelsbedingungen bei jedem Tick
//--- idx=1 - in diesem Fall überprüft EA die Handelsbedingungen nur bei Nachrichtenbalken
  int idx   =StartIndex();
//--- Überprüfung der Bedingungen zum Öffnen einer Long-Position
//--- Bildung des 3 weiße Soldaten-Musters und Signallinie<30
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_WHITE_SOLDIERS) && (StochSignal(1)<30))
     result=80;
//--- Überprüfung der Bedingungen zum Schließen der Short-Position
//--- Signallinie kreuzt überkaufte/verkaufte Niveaus (abwärts 20, aufwärts 80)
  if((((StochSignal(1)>20) && (StochSignal(2)<20)) ||
       ((StochSignal(1)>80) && (StochSignal(2)<80))))
     result=40;
//--- Rückgabe des Ergebnisses
   return(result);
  }

2.2. Short-Position eröffnen/Long-Position schließen

  1. Die Bildung des "3 schwarze Krähen"-Musters muss durch den Stochastik-Indikator bestätigt werden: StochSignal(1)>70 (der Wert der Signallinie des Stochastik-Indikators der letzten abgeschlossenen Kerze muss größer als 70 sein).

  2. Die Long-Position muss geschlossen werden, wenn die Signallinie des Stochastik-Indikators die 80 oder 20 Niveaus nach unten überschreitet.

//+------------------------------------------------------------------+
//| Überprüft die Bedingungen für den Markteintritt und -ausstieg     |
//| 1) Markteintritt (Short-Position eröffnen, Ergebnis=80)         |
//| 2) Marktausgang (Long-Position schließen, Ergebnis=40)          |
//+------------------------------------------------------------------+
int CBC_WS_Stoch::ShortCondition()
  {
   int result=0;
//--- idx kann verwendet werden, um den Arbeitsmodus des Expert Advisors zu bestimmen
//--- idx=0 - in diesem Fall überprüft EA die Handelsbedingungen bei jedem Tick
//--- idx=1 - in diesem Fall überprüft EA die Handelsbedingungen nur bei Nachrichtenbalken
  int idx   =StartIndex();
//--- Überprüfung der Bedingungen zum Öffnen einer Short-Position
//--- Bildung des 3 schwarze Krähen-Musters und Signallinie>70
  if (CheckCandlestickPattern(CANDLE_PATTERN_THREE_BLACK_CROWS) && (StochSignal(1)>70))
     result=80;
//--- Überprüfung der Bedingungen zum Schließen der Long-Position
//--- Signallinie kreuzt überkaufte/verkaufte Niveaus (abwärts 80, aufwärts 20)
   if((((StochSignal(1)<80) && (StochSignal(2)>80)) ||
       ((StochSignal(1)<20) && (StochSignal(2)>20))))
     result=40;
//--- Rückgabe des Ergebnisses
   return(result);
  }


2.3. Erstellung eines Expert Advisors mit MQL5 Wizard

Die Klasse CBC_WS_Stoch ist nicht in den Standardbibliotheksklassen enthalten. Um sie zu verwenden, musst du die Datei acbc_ws_stoch.mqh herunterladen (siehe Anhänge) und sie im Verzeichnis client_terminal_data\MQL5\Include\Expert\Signal\MySignals speichern. Dasselbe sollte mit der Datei candlepatterns.mqh gemacht werden. Du kannst sie im MQL5 Wizard nach einem Neustart des MetaEditors verwenden.

Um einen Expert Advisor zu erstellen, starte den MQL5 Wizard:

Abbildung 4. Erstellung eines Expert Advisors mit MQL5 Wizard

Abbildung 4. Erstellung eines Expert Advisors mit MQL5 Wizard

Lass uns den Namen des Expert Advisors angeben:

Abbildung 5. Allgemeine Eigenschaften des Expert Advisors

Abbildung 5. Allgemeine Eigenschaften des Expert Advisors

Danach müssen wir die Module der verwendeten Handelssignale auswählen.

Abbildung 6. Signal Eigenschaften des Expert Advisors

Abbildung 6. Signal Eigenschaften des Expert Advisors

In unserem Fall verwenden wir nur ein Modul für Handelssignale.

Hinzufügen des Moduls "Signale basierend auf 3 schwarzen Krähen/3 weißen Soldaten, bestätigt durch Stochastik":

Abbildung 7. Signal Eigenschaften des Expert Advisors

Abbildung 7. Signal Eigenschaften des Expert Advisors

Modul für Handelssignale hinzugefügt:

Abbildung 8. Signal Eigenschaften des Expert Advisors

Abbildung 8. Signal Eigenschaften des Expert Advisors

Du kannst beliebige Trailing-Eigenschaften auswählen, aber wir verwenden "Trailing Stop nicht verwendet":

Abbildung 9. Trailing Eigenschaften des Expert Advisors

Abbildung 9. Trailing Eigenschaften des Expert Advisors

Bezüglich der Geldmanagement-Eigenschaften verwenden wir "Handel mit festem Handelsvolumen":

Abbildung 10. Geldmanagement Eigenschaften des Expert Advisors

Abbildung 10. Geldmanagement Eigenschaften des Expert Advisors

Durch Drücken der "Fertig"-Taste erhalten wir den Code des generierten Expert Advisors, der in Expert_ABC_WS_Stoch.mq5 gespeichert wird, und der sich im Verzeichnis terminal_data_folder\MQL5\Experts\ befindet.

Die Standard-Eingabeparameter des generierten Expert Advisors:

//--- Eingaben für Hauptsignal
input int            Signal_ThresholdOpen   =10;     // Signal-Schwellenwert zum Öffnen [0...100]
input int            Signal_ThresholdClose  =10;     // Signal-Schwellenwert zum Schließen [0...100]
input double         Signal_PriceLevel      =0.0;    // Preisniveau zur Ausführung eines Handels
input double         Signal_StopLevel       =50.0;   // Stop-Loss-Niveau (in Punkten)
input double         Signal_TakeLevel       =50.0// Take-Profit-Niveau (in Punkten)

muss ersetzt werden durch:

//--- Eingaben für Hauptsignal
input int            Signal_ThresholdOpen   =40;     // Signal-Schwellenwert zum Öffnen [0...100]
input int            Signal_ThresholdClose  =20     // Signal-Schwellenwert zum Schließen [0...100]
input double         Signal_PriceLevel      =0.0;    // Preisniveau zur Ausführung eines Handels
input double         Signal_StopLevel       =0.0    // Stop-Loss-Niveau (in Punkten)
input double         Signal_TakeLevel       =0.0    // Take-Profit-Niveau (in Punkten)

Die Parameter Signal_ThresholdOpen/Signal_ThresholdClose erlauben es, Schwellenwerte für das Öffnen und Schließen von Positionen festzulegen.

Im Code der Methoden LongCondition() und ShortCondition() der Handelssignalklasse haben wir die festen Werte der Schwellenwerte festgelegt:

  • Position öffnen: 80;
  • Position schließen: 40.

Der durch den MQL5 Wizard generierte Expert Advisor öffnet und schließt Positionen mithilfe der "Stimmen" aus den Handelssignalen. Die Stimme des Hauptmoduls (als Container, das alle hinzugefügten Module enthält) wird ebenfalls verwendet, aber seine Methoden LongCondition() und ShortCondition() geben immer 0 zurück.

Die Ergebnisse der Stimmen des Hauptmoduls werden auch im "Stimmen"-Durchschnitt verwendet. In unserem Fall haben wir: Hauptmodul + 1 Modul für Handelssignale, sodass wir diesen Fakt bei der Festlegung der Schwellenwerte berücksichtigen müssen. Aufgrund dieser Tatsache müssen die ThresholdOpen und ThresholdClose als 40=(0+80)/2 und 20=(0+40)/2 festgelegt werden.

Die Werte der Parameter Signal_StopLevel und Signal_TakeLevel sind auf 0 gesetzt, was bedeutet, dass das Schließen der Positionen nur erfolgt, wenn die Schließbedingungen erfüllt sind.


2.4. Ergebnisse der historischen Rücktests

Betrachten wir den Rücktest des Expert Advisors auf historischen Daten (EURUSD H1, Testzeitraum: 2010.01.01-2011.02.02, PeriodK=47, PeriodD=9, PeriodSlow=13, MA_period=5).

Bei der Erstellung des Expert Advisors haben wir das feste Volumen verwendet (Handel mit festem Lot, 0.1), der Trailing-Stop-Algorithmus wird nicht verwendet (Trailing nicht verwendet).


Abbildung 11. Testergebnisse des Expert Advisors, basierend auf 3 schwarzen Krähen/3 weißen Soldaten + Stochastik

Abbildung 11. Testergebnisse des Expert Advisors, basierend auf 3 schwarzen Krähen/3 weißen Soldaten + Stochastik


Die besten Eingabeparameter können mit dem Strategietester des MetaTrader 5 Client-Terminals gefunden werden.

Der Code des Expert Advisors, der vom MQL5 Wizard erstellt wurde, ist im expert_abc_ws_stoch.mq5 angehängt.


Verwandte Beiträge

Kommentar (0)