MQL5 Wizard: Trading-Signale basierend auf Kerzenmustern und Stochastic für MetaTrader 5

Mike 2013.10.16 21:58 35 0 0
Anhang

Beschreibung:

Mit dem MQL5 Wizard können Händler nun den Code für Expert Advisors (EAs) automatisch generieren, basierend auf Klassen von Handelssignalen, Positionsverfolgung und Geldmanagement. In Kombination mit den Handelssignalklassen der Standardbibliothek können Sie Ihre eigenen Handelssysteme entwickeln und testen. Dazu schreiben Sie einfach ein Modul für Handelssignale.

Das Buch "Die Strategien der besten Trader der Welt" (auf Russisch) beschreibt Indikatoren und Handelsstrategien für die technische Analyse mit dem MetaStock-Softwarepaket. Neben den konventionellen Handelssignalen behandelt das Buch auch solche, die auf der kombinierten Nutzung von Umkehr-Kerzenmustern mit Bestätigungen des Stochastik, CCI, MFI und RSI basieren.

Die Verwendung von Umkehr-Kerzenmustern in Verbindung mit Oszillator-Signalen ermöglicht es, die Anzahl falscher Signale zu reduzieren und die Effizienz des Handelssystems zu steigern.

In früheren Publikationen haben wir Handelssignale basierend auf Kerzenmustern mit Bestätigung durch den Stochastic betrachtet:

  1. 3 Schwarze Krähen/3 Weiße Soldaten
  2. Dunkle Wolkenbedeckung/Durchdringungslinie
  3. Bullish Engulfing/Bearish Engulfing
  4. Bullish Harami/Bearish Harami
  5. Hammer/Hängender Mann
  6. Bullish/Bearish Meeting Lines
  7. Morgen/Abend Sterne

In dieser Beschreibung betrachten wir die Ergebnisse der kombinierten Verwendung all dieser Modelle zusammen mit den Signalen des Stochastic Indikators.


1. Bullish und Bearish Kerzenmuster und deren Erkennung

CandlePattern Klasse hat auch Funktionen zur Erkennung der Bildung einiger bullisher und bearisher Kerzenmuster (außer der Kombination Hammer/Hängender Mann).

Die Bildung eines bearishen Kerzenmusters wird durch die Funktion CheckPatternAllBullish() überprüft:

//+------------------------------------------------------------------+
//| Überprüft die Bildung von bullischen Mustern                        |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBullish()
  {
   return(CheckPatternThreeWhiteSoldiers()  || 
          CheckPatternPiercingLine()       || 
          CheckPatternMorningDoji()        || 
          CheckPatternBullishEngulfing()   || 
          CheckPatternBullishHarami()      || 
          CheckPatternMorningStar()        || 
          CheckPatternBullishMeetingLines());
  }

Die Bildung eines bullishen Kerzenmusters wird durch die Funktion CheckPatternAllBearish() überprüft:

//+------------------------------------------------------------------+
//| Überprüft die Bildung von bearischen Mustern                     |
//+------------------------------------------------------------------+
bool CCandlePattern::CheckPatternAllBearish()
  {
   return(CheckPatternThreeBlackCrows()     || 
          CheckPatternDarkCloudCover()     || 
          CheckPatternEveningDoji()        || 
          CheckPatternBearishEngulfing()   || 
          CheckPatternBearishHarami()      || 
          CheckPatternEveningStar()        || 
          CheckPatternBearishMeetingLines());
  }

2. Handelssignale kombiniert mit Stochastic Indikator

Ein Long/Short-Position wird eröffnet, wenn eines der bullischen/bearischen Modelle gebildet wird und es eine Bestätigung vom Stochastik-Oszillator gibt. Der Wert der %D-Signallinie sollte über oder unter dem entsprechenden kritischen Niveau (30 und 70) liegen.

Ein Ausstiegssignal wird in zwei Fällen gebildet:

  1. Wenn ein gegenteiliger Kerzenmuster gebildet wird (ein bearisches Muster für eine Long-Position und ein bullisches Muster für eine Short-Position).
  2. Je nach dem anschließenden Verhalten von %D. Wenn %D das Niveau erreicht, das dem Markt entgegensteht (80 im Fall einer Long- und 20 im Fall einer Short-Position) oder wenn %D das Umkehrsignal nicht bestätigt und 20 im Fall einer Long-Position und 80 im Fall einer Short-Position erreicht.

Die Überprüfung der Markt-Ein- und Ausstiegbedingungen erfolgt in den folgenden Methoden:

  • int CCP_Stoch::LongCondition() - Überprüfung der Bedingungen für die Eröffnung einer Long-Position (m_pattern_0) und das Schließen einer Short-Position (m_pattern_1);
  • int CCP_Stoch::ShortCondition() - Überprüfung der Bedingungen für die Eröffnung einer Short-Position (m_pattern_0) und das Schließen einer Long-Position (m_pattern_1).

2.1. Eröffnung einer Long-Position und Schließung einer Short-Position

  1. Das Signal für die Eröffnung einer Long-Position ist die Bildung einer bullischen Kerzenkombination und die Erfüllung der Bedingung StochSignal(1)<30 (der Wert der Stochastic Indikatorsignallinie bei der letzten abgeschlossenen Kerze ist weniger als 30);

  2. Das Signal für die Schließung einer Short-Position ist die Bildung eines der bullischen Kerzenmuster oder der Fall, dass die Indikatorlinie die 20-Stufenlinie (nach oben) oder die 80-Stufenlinie (nach oben) überschreitet.

//+------------------------------------------------------------------+
//| Methode zur Überprüfung, ob die Marktmodelle gebildet werden      |
//| Überprüft die Bedingungen für                                             |
//| Eintritt (Short-Position öffnen, m_pattern_0)                   |
//| Austritt (Long-Position schließen, m_pattern_1)                 |
//+------------------------------------------------------------------+
int CCP_Stoch::LongCondition()
  {
   int res=0;
//---- Bedingungen zur Eröffnung einer Short-Position überprüfen
//---- Bildung eines bullischen Musters und Signallinie des Stochastic Indikators<30 
   if(CheckPatternAllBullish() && (StochSignal(1)<30)) res=m_pattern_0; // Signal zur Eröffnung einer Long-Position 

//--- Überprüfung der Bedingungen zum Schließen der Short-Position
//--- Bildung eines bearishen Musters oder das Überqueren der Signallinie (aufwärts 20, aufwärts 80)
   if(CheckPatternAllBullish() ||
      ((StochSignal(1)>20) && (StochSignal(2)<20)) || 
      ((StochSignal(1)>80) && (StochSignal(2)<80)))    res=m_pattern_1; // Signal zur Schließung der Short-Position
//---
   return(res);
  }

2.2. Eröffnung einer Short-Position und Schließung einer Long-Position

  1. Das Signal für die Eröffnung einer Short-Position ist die Bildung eines der bearishen Kerzenmuster und die Erfüllung der Bedingung StochSignal(1)>70 (der Wert der Stochastic Indikatorsignallinie bei der letzten abgeschlossenen Kerze überschreitet 70):

  2. Das Signal für die Schließung einer Long-Position ist die Bildung eines der bearishen Kerzenmuster oder der Fall, dass die Indikatorlinie die 80-Stufenlinie (nach unten) oder die 20-Stufenlinie (nach unten) überschreitet.

//+------------------------------------------------------------------+
//| Methode zur Überprüfung, ob die Marktmodelle gebildet werden      |
//| Überprüft Bedingungen für                                             | 
//| Eintritt (Short-Position öffnen, m_pattern_0)                   |
//| Austritt (Long-Position schließen, m_pattern_1)                 |
//+------------------------------------------------------------------+
int CCP_Stoch::ShortCondition()
  {
   int res=0;
//--- Bedingungen zur Eröffnung einer Short-Position überprüfen
//---- Bildung eines bearishen Musters und Signallinie des Stochastic Indikators>70
   if(CheckPatternAllBearish() && (StochSignal(1)>70)) res=m_pattern_0; // Signal zur Eröffnung einer Short-Position 

//--- Überprüfung der Bedingungen zum Schließen der Long-Position 
//---- Bildung eines bearishen Musters oder das Überqueren der Signallinie (abwärts 80, abwärts 20)
   if(CheckPatternAllBearish() || 
      ((StochSignal(1)<80) && (StochSignal(2)>80)) || 
      ((StochSignal(1)<20) && (StochSignal(2)>20)))    res=m_pattern_1; // Signal zur Schließung der Long-Position 
//---
   return(res);
  }

2.3. Erstellung eines Expert Advisors basierend auf Handelssignalen von "Kerzenmustern + Stochastic" Umkehrmuster mit MQL5 Wizard

Die CCP_Stoch-Klasse ist nicht in der Standardbibliothek der Handelssignale enthalten. Daher laden Sie die Datei ccp_stoch.mqh (im Anhang) herunter und speichern Sie sie im Verzeichnis \terminal_folder\Include\Expert\Signal\MySignals, um sie verwenden zu können. Die Datei candlepatterns.mqh sollte in dasselbe Verzeichnis wie ccp_stoch.mqh kopiert werden. Starten Sie dann den MetaEditor neu, um die Datei im MQL5 Wizard verwenden zu können.

Um einen Handelsroboter zu erstellen, der dieser Strategie folgt, wählen Sie im MQL5 Wizard beim zweiten Schritt den Typ "Signale basierend auf Kerzenmustern + Stochastic" aus:

Fig. 1. Auswahl der Signale basierend auf Kerzenmustern + Stochastic im MQL5 Wizard

Fig. 1. Auswahl der "Signale basierend auf Kerzenmustern + Stochastic" Handelsgenerators im MQL5 Wizard

Geben Sie in den folgenden Schritten den erforderlichen Trailing Stop-Typ und das Geldmanagementsystem an. Der Code des Expert Advisors wird automatisch generiert. Nun muss er kompiliert werden, um bereit für Tests zu sein.


2.4. Testergebnisse

Ergebnisse der Testung des Expert Advisors auf historischen Daten (EURUSD H1, Testzeitraum: 1.1.2000-02.02.2011, PeriodK=33, PeriodD=37, PeriodSlow=30, MA_period=25).

Dieser Expert Advisor verwendet das Modul für den Handel mit einem festen Volumen von 0,1 Lot (Fester Lot Handel). Ein Trailing Stop wird nicht verwendet (Trailing nicht verwendet).

Fig. 2. Testergebnisse des Expert Advisors basierend auf Signalen von Kerzenmustern + Stochastic

Fig. 2. Testergebnisse des Expert Advisors basierend auf "Signalen von Kerzenmustern + Stochastic" Handelsgenerator

Die besten Parameter für das Handelssystem können mit dem MetaTrader 5 Strategietester gefunden werden.

Der Code des Expert Advisors, der mit dem MQL5 Wizard erstellt wurde, ist in der Datei expert_cp_stoch.mq5 angehängt.


Liste
Kommentar 0