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 der Kerzenformationen Bullish Harami/Bearish Harami + RSI - Experte für den MetaTrader 5

Ansichten:
1094
Rating:
(19)
Veröffentlicht:
2016.07.14 13:58
Aktualisiert:
2016.11.22 07:34
\MQL5\Include\Expert\Signal\MySignals\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance

Mit dem MQL5 Wizard können Trader nun Expert Advisor Codes automatisch generieren, die auf den Klassen von Handelssignalen, Positions Tracking und Money Management basieren. Neben den Klassen von Handelssignalen aus der Standardbibliothek können Sie Ihre eigenen Handelssysteme erstellen und testen, dafür brauchen Sie lediglich ein Modul für Handelssignale zu schreiben.

Das Buch "The Strategies of the Best Traders in the World" (in Russisch) beschreibt Indikatoren und Handelsstrategien für die technische Analyse unter Verwendung des MetaStock Softwarepaketes. Neben den konventionellen Handelssignalen befasst sich dieses Buch auch mit denen, die auf einer kombinierten Anwendung von Umkehrkerzenformationen mit der Bestätigung durch Stochastic, CCI, MFI und RSI basieren.

Die Verwendung von Umkehrkerzenformationen, zusammen mit Signalen von Oszillatoren, reduziert die Anzahl der falschen Signale und erhöht die Effizienz des Handelssystems.

Hier betrachten wir die Ergebnisse einer kombinierten Anwendung der Kerzenformationen Bullish Harami und Bearish Harami zusammen mit den Signalen des RSI Indikators.


1. Die Kerzenformationen "Bullish Harami" und "Bearish Harami" und deren Erkennung

Als "Harami" wird eine Kombination aus zwei Kerzen bezeichnet. Das Muster besteht aus einem langen Körper und einem darauffolgenden kleinen Körper, der komplett innerhalb des ersten Körpers liegt. Harami ist das Gegenteil des Musters Engulfing. Im Muster "Engulfing" umschlingt eine lange Kerze den Körper der Vortagskerze, und in der Kerzenformation "Harami" folgt auf einen langen Körper ein ganz kleiner Körper.

1.1. Kerzenformation "Bullish Harami"

Die Umkehrkerzenformation "Bullish Harami" tritt auf, wenn in einem Abwärtstrend nach einer langen bärischen Kerze eine bullische Kerze erscheint, deren Körper komplett innerhalb des Körpers der bärischen Kerze liegt.

Die zweite Kerze eröffnet sich mit einer Lücke gegenüber dem Schlusskurs der ersten Kerze.

Die Kerzenformation Bullish Harami weist auf die Umkehr eines Abwärtstrends hin. Je kleiner der Körper der bullischen Kerze ist, desto wahrscheinlicher ist die Umkehr.

Abbildung 1. Kerzenformation "Bullish Harami"

Abbildung 1. Kerzenformation "Bullish Harami"

Die Erkennung der Kerzenformation "Bullish Harami" wird in der Methode CheckPatternBullishHarami der Klasse CCandlePattern umgesetzt:

//+------------------------------------------------------------------+
//| Methode zur Überprüfung der Formation "Bullish Harami"           |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBullishHarami()
  {
//--- Bullish Harami- Erkennung des Musters Bullish Harami
   if((Close(1)>Open(1))              && // die letzte vollständige Kerze ist eine bärische Kerze (white day)
     ((Open(2)-Close(2))>AvgBody(1))  && // die Vortagskerze ist eine bärische Kerze, ihr Körper ist überdurchschnittlich lang (long black)
     ((Close(1)<Open(2))              && // der Schlusskurs der bullischen Kerze liegt unter dem Eröffnungskurs der bärischen Kerze 
      (Open(1)>Close(2)))             && // der Eröffnugskurs der bullischen Kerze liegt über dem Schlusskurs der bärischen Kerze (engulfment)
      (MidPoint(2)<CloseAvg(2)))         // Abwärtstrend (down trend)
      return(true);
//---
   return(false);
  }

Für die Überprüfung der Formation "Bullish Harami" wird die Methode CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_HARAMI) der Klasse CCandlePattern verwendet.


1.2. Kerzenformation "Bearish Harami"

Das Umkehrmodell "Bearish Harami" entsteht, wenn in einem Aufwärtstrend nach einer langen bullischen Kerze eine bärische Kerze erscheint, deren Körper komplett innerhalb des Körpers der bullischen Kerze liegt.

Die zweite Kerze eröffnet sich mit einer Lücke gegenüber dem Schlusskurs der ersten Kerze.

Die Bearish Harami weist auf die Umkehr eines Aufwärtstrends. Je kleiner der Körper der bärischen Kerze ist, desto wahrscheinlicher ist die Umkehr.

Abbildung 2. Kerzenformation "Bearish Harami"

Abbildung 2. Kerzenformation "Bearish Harami"

Methode zur Erkennung des Musters "Bearish Harami":

//+------------------------------------------------------------------+
//| Methode zur Überprüfung der Formation "Bearish Harami"           |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternBearishHarami()
  {
//--- Bearish Harami- Erkennung des Musters  "Bearish Harami"
   if((Close(1)<Open(1))              && // die letzte vollständige Kerze ist eine bärische Kerze (black day)
     ((Close(2)-Open(2))>AvgBody(1))  && // die Vortagskerze ist eine bullische Kerze, ihr Körper ist überdurchschnittlich lang (long white)
     ((Close(1)>Open(2))              && // der Schlusskurs der bärischen Kerze liegt oberhalb des Eröffnungskurses der bullischen Kerze 
      (Open(1)<Close(2)))             && // der Eröffnugskurs der bärischen Kerze liegt unterhalb des Schlusskurses der bullischen Kerze (engulfment)
      (MidPoint(2)>CloseAvg(2)))         // Aufwärtstrend (up trend)
      return(true);
//---
   return(false);
  }

Um die Kerzenformation "Bearish Harami" zu überprüfen, wird die Methode CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_HARAMI) der Klasse CCandlePattern verwendet.


2. Handelssignale in der Kombination mit dem RSI Indikator


Die Einstiegssignale müssen durch den RSI Indikator bestätigt werden. Der Wert von RSI muss unterhalb des Levels 40 für Long- und oberhalb des Levels 60 für Short-Positionen liegen.

Die Ausstiegssignale werden gebildet, wenn RSI den gegensätzlichen Level erreicht (70 für Long- und 30 für Short-Positionen) oder wenn er beim Erreichen des Levels 30 oder 70 die Umkehr für jeweils Long oder Short nicht bestätigt.

Abbildung 3. Hadnelssignale des Musters "Bullish Harami" mit der Bestätigung durch den RSI Indikator

Abbildung 3. Hadnelssignale des Musters "Bullish Harami" mit der Bestätigung durch den RSI Indikator


Die Bedingungen für Einstieg und Ausstieg werden in den folgenden Methoden überprüft:

  • int CBH_BH_RSI::LongCondition() überprüft die Bedingungen für das Eröffnen einer Long-Position (die Funktion gibt 80 zurück) und Schließen einer Short-Position (die Funktion gibt 40 zurück);
  • int CBH_BH_RSI::ShortCondition() überprüft die Bedingungen für das Eröffnen einer Short-Position (die Funktion gibt 80 zurück) und Schließen einer Long-Position (die Funktion gibt 40 zurück).

2.1. Eröffnen einer Long-Position und Schließen einer Short-Position

  1. Das Signal zum Eröffnen einer Long-Position entsteht, wenn die Kerzenformation Bullish Harami auftritt und die Bedingung RSI(1)<40 erfüllt ist (der Wert der Linie des RSI Indikators auf dem letzten vollständingen Balken ist kleiner als 40).

  2. Das Signal zum Schließen einer Short-Position entsteht, wenn der RSI Indikator den Level 30 (von unten nach oben) oder den Level 70 (von unten nach oben) kreuzt.

    //+--------------------------------------------------------------------+
    //| Methode zur Überprüfung der Bedingungen für Einstieg und Ausstieg  |
    //| Überprüfung der Bedingungen für                                    |
    //| 1) Einstieg (Eröffnen einer Long-Position, result=80)              |
    //| 2) Ausstieg (Schließen einer Short-Position, result=40)            |
    //+--------------------------------------------------------------------+
    int CBH_BH_RSI::LongCondition()
      {
       int result=0;
    //--- idx kann verwendet werden, um den Modus des EAs festzustellen
    //--- idx=0 - der EA wird die Erfüllung der Bedingungen auf jedem Tick überprüfen
    //--- idx=1 - der EA wird die Erfüllung der Bedingungen nur auf neuen Balken überprüfen
       int idx   =StartIndex();
    //--- Überprüfung der Bedingungen für das Eröffnen einer Long-Position
    //--- Bullish Harami und die Erfüllung der Bedingung RSI<40
       if(CheckCandlestickPattern(CANDLE_PATTERN_BULLISH_HARAMI) && (RSI(1)<40))
         result=80;
    //--- Überprüfung der Bedingungen für das Schließen einer Short-Position
       if(((RSI(1)>30) && (RSI(2)<30)) || ((RSI(1)>70) && (RSI(2)<70)))
          result=40;
         result=40;
    //--- result zurückgeben
       return(result);
      }
    

2.2. Eröffnen einer Short-Position und Schließen einer Long-Position

  1. Das Signal zum Eröffnen einer Short-Position entsteht, wenn die Kerzenformation Bearish Harami auftritt und die Bedindung RSI(1)>60 erfüllt ist (der Wert des RSI Indikators auf dem letzten vollständigen Balken ist größer als 60).

  2. Das Signal zum Schließen einer Long-Position entsteht, wenn der RSI Indikator den Level 70 (von oben nach unten) oder den Level 30 (von oben nach unten) kreuzt.

    //+--------------------------------------------------------------------+
    //| Methode zur Überprüfung der Bedingungen für Einstieg und Ausstieg  |
    //| Überprüfung der Bedingungen für                                    |
    //| 1) Einstieg (Eröffnen einer Short-Position, result=80)             |
    //| 2) Ausstieg (Schließen einer Long-Position, result=40)             |
    //+--------------------------------------------------------------------+
    int CBH_BH_RSI::ShortCondition()
      {
       int result=0;
    //--- idx kann verwendet werden, um den Modus des EAs festzustellen
    //--- idx=0 - der EA wird die Erfüllung der Bedingungen auf jedem Tick überprüfen
    //--- idx=1 - der EA wird die Erfüllung der Bedingungen nur auf neuen Balken überprüfen
       int idx   =StartIndex();
    //--- Überprüfung der Bedingungen für das Eröffnen einer Short-Position
    //--- Bearish Harami und die Erfüllung der Bedingung RSI>60
      if(CheckCandlestickPattern(CANDLE_PATTERN_BEARISH_HARAMI) && (RSI(1)>60))
         result=80;
    //--- Überprüfung der Bedingungen für das Schließen einer Long-Position
      if(((RSI(1)<70) && (RSI(2)>70)) || ((RSI(1)<30) && (RSI(2)>30)))
         result=40;
    //--- result zurückgeben
       return(result);
      }
    

2.3. Erstellung des Expert Advisors auf der Basis der Handelssignale des Umkehrkerzenformation "Bullish Harami/Bearish Harami + RSI" mithilfe von MQL5 Wizard

Die Klasse CBH_BH_RSI ist nicht in der Standardbibliothek der Klassen von Handelssignalen enthalten, dafür muss die Datei acbh_bh_rsi.mqh (angefügt) heruntergeladen und in client_terminal_data\folder\Include\Expert\Signal\MySignals gespeichert werden. Die Datei acandlepatterns.mqh sollte in dasselbe Verzeichnis wie die Datei acbh_bh_rsi.mqh kopiert werden. Nachdem Sie den MetaEditor neu gestartet haben, können Sie die Dateien im MQL5 Wizard benutzen.

Starten Sie den MQL5 Wizard, um einen Handelsroboter nach dieser Strategie zu erstellen:

Abb. 4. Erstellung eines EAs im MQL5 Wizard

Abb. 4. Erstellung eines EAs im MQL5 Wizard

Klicken Sie auf "Next" und geben Sie den Namen des EAs ein:

Abb. 5. Allgemeine Parameter des EAs

Abb. 5. Allgemeine Parameter des EAs

Danach sind die Parameter der Signale einzugeben:

Abb. 6. Parameter der Signale

Abb. 6. Parameter der Signale

In unserem Fall verwenden wir nur ein Modul von Handelssignalen.

Fügen wird das Modul "Signals based on Bullish Harami/Bearish Harami confirmed by RSI" hinzu:

Abb. 7. Parameter der Signale

Abb. 7. Parameter der Signale

Das Modul ist hinzugefügt:

Abb. 8. Parameter der Signale

Abb. 8. Parameter der Signale

Danach kann man das Modul des Trailings auswählen, wir werden es allerdings nicht verwenden. "Trailing Stop not used" auswählen:

Abb. 9. Trailing Modul

Abb. 9. Trailing Modul

Des Weiteren ist das Money Management Modul auszuwählen, wir werden den Handel mit einem festen Volumen (Trading with fixed trade volume) verwenden:

Abb. 10. Money Management Modul

Abb. 10. Money Management Modul

Klicken Sie auf "Finish" und Sie erhalten den Code des erstellten Expert Advisors - die Datei Expert_ABH_BH_RSI.mq5 wird in termina_data_folder\MQL5\Experts\ gespeichert.

Die Eingabeparameter des Expert Advisors (default):

//--- inputs for main signal
input int            Signal_ThresholdOpen   =10;     // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose  =10;     // Signal threshold value to close [0...100]
input double         Signal_PriceLevel      =0.0;    // Price level to execute a deal
input double         Signal_StopLevel       =50.0;   // Stop Loss level (in Punkten)
input double         Signal_TakeLevel       =50.0// Take Profit level (in Punkten)

ersetzen durch:

//--- inputs for main signal
input int            Signal_ThresholdOpen   =40;     // Signal threshold value to open [0...100]
input int            Signal_ThresholdClose  =20;     // Signal threshold value to close [0...100]
input double         Signal_PriceLevel      =0.0;    // Price level to execute a deal
input double         Signal_StopLevel       =0.0;    // Stop Loss level (in Punkten)
input double         Signal_TakeLevel       =0.0;    // Take Profit level (in Punkten)

Die Parameter Signal_ThresholdOpen und Signal_ThresholdClose lassen Schwellenwerte für das Eröffnen und Schließen von Position setzen.

Im Code der Funktionen LongCondition() und ShortCondition() des Moduls von Handelssignalen haben wir die festen Schwellenwerte angegeben:

  • Für das Eröffnen von Positionen: 80;
  • Für das Schließen von Positionen: 40.

Der mithilfe von MQL5 Wizard erstellte Expert Advisor entscheidet über das Eröffnen bzw. Schließen einer Position anhand der Ergebnisse der "Abstimmung" unter den Modulen von Handelssignalen, die im Laufe der Erstellung des EAs hinzugefügt wurden. Zwar nimmt das Hauptmodul (das alle hinzugefügten Module enthält) an der "Abstimmung" auch teil, seine Methoden LongCondition() und ShortCondition() geben aber immer 0 zurück.

Da die "Stimmen" bei der Berechnung nach der Anzahl der vorhandenen Modulen (Hauptmodul + ein hinzugefügtes Modul) gemittelt werden, muss man das bei der Angabe der Schwellenwerte berücksichtigen. Aus diesem Grund müssen die Werte von Signal_ThresholdOpen und Signal_ThresholdClose als jeweils 40=(0+80)/2 und 20=(0+40)/2 gesetzt werden.

Die Werte von Signal_StopLevel und Signal_TakeLevel setzen wir auf 0, dies bedeutet, dass die Positionen nur beim Eingehen von Handelssignalen zum Schließen geschlossen werden.


2.4 Testergebnisse anhand historischer Daten

Die Ergebnisse des Expert Advisors bei einem Test unter Verwendung von historischen Daten (EURUSD H1, Zeitraum: 2010.01.01-2011.03.11, PeriodRSI=37, MA_period=7).

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. 11. Testergebnisse für den Expert Advisor, der auf der Basis des Generators von Handelssignalen "Bullish Harami/Bearish Harami + RSI" erstellt wurde

Abb. 11. Testergebnisse für den Expert Advisor, der auf der Basis des Generators von Handelssignalen "Bullish Harami/Bearish Harami + RSI" erstellt wurde

Das beste Parameterset für das Tradingsystem ist mithilfe von Strategietester des MetaTrader 5 Kundenterminals zu finden.

Der von dem MQL5 Wizard generierte Code für den Expert Advisor ist angehängt als Datei: expert_abh_bh_rsi.mq5.


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

MQL5 Wizard - Handelssignale der Kerzenformationen Bullish Harami/Bearish Harami + MFI MQL5 Wizard - Handelssignale der Kerzenformationen Bullish Harami/Bearish Harami + MFI

Handelssignale der Kerzenformation "Bullish Harami/Bearish Harami" mit der Bestätigung durch den MFI Indikator.

MQL5 Wizard - Handelssignale der Kerzenformationen Bullish Harami/Bearish Harami + CCI MQL5 Wizard - Handelssignale der Kerzenformationen Bullish Harami/Bearish Harami + CCI

Handelssignale der Kerzenformation "Bullish Harami/Bearish Harami" mit der Bestätigung durch den CCI Indikator.

MQL5 Wizard - Handelssignale der Kerzenformationen Hammer/Hanging Man + Stochasti MQL5 Wizard - Handelssignale der Kerzenformationen Hammer/Hanging Man + Stochasti

Handelssignale der Kerzenformationen "Hammer/Hanging Man" mit der Bestätigung durch den Stochastic Indikator

MQL5 Wizard - Hndelssignale der Kerzenformationen Hammer/Hanging Man + CCI MQL5 Wizard - Hndelssignale der Kerzenformationen Hammer/Hanging Man + CCI

Handelssignale der Kerzenformation "Hammer/Hanging Man" mit der Bestätigung durch den CCI Indikator.