und werden Sie Mitglied unserer Fangruppe
Veröffentliche einen Link auf das Skript, damit die anderen ihn auch nutzen können
Bewerten Sie es im Terminal MetaTrader 5
![Expert Advisors](https://c.mql5.com/i/code/expert.png)
MQL5 Wizard - Handelssignale der Kerzenformationen Dark Cloud Cover/Piercing Line + CCI - Experte für den MetaTrader 5
- Ansichten:
- 1455
- Rating:
- Veröffentlicht:
- 2016.07.22 16:17
- 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
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 Kerzenformation Dark Cloud Cover und Piercing Line zusammen mit Signalen des CCI Indikators.
1. Die Kerzenformationen "Dark Cloud Cover" und "Piercing Line" und deren Erkennung
1.1. Kerzenformation Dark Cloud Cover
Das Muster weist auf die Umkehr eines bullischen Trends hin. Am ersten Tag wird eine große weiße Kerze gebildet, am nächsten Tag folgt eine Gap Up Eröffnung (über dem Tageshoch des Vortages), der Schlusskurs liegt unterhalb der Mitte des Vortages. Dies ist einer der wenigen Fälle, wenn Hoch und Tief in Candlesticks berücksichtigt werden.
Abb. 1. Kerzemmuster "Dark Cloud Cover"
Die Erkennung der Kerzenformation "Dark Cloud Cover" ist in der Methode CheckPatternDarkCloudCover der Klasse CCandlePattern umgesetzt:
//+------------------------------------------------------------------+ //| Methode zur Überprüfung der Kerzenformation "Dark Cloud Cover" | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternDarkCloudCover() { //--- Dark cloud cover - Erkennung des Musters "Dark cloud cover" if((Close(2)-Open(2)>AvgBody(1)) && // langer Körper der weißen Kerze (long white) (Close(1)<Close(2)) && // darauf folgt eine schwarze Kerze (Close(1)>Open(2)) && // deren Schlusskurs innerhalb des Körpers der weißen Kerze liegt (close within previous body) (MidOpenClose(2)>CloseAvg(1)) && // Aufwärtstrend (uptrend) (Open(1)>High(2))) // der Eröffnungskurs liegt über dem Tageshoch des Vortages (open at new high) return(true); //--- return(false); }
Für die Überprüfung der Formation "Dark Cloud Cover" wird die Methode CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) der Klasse CCandlePattern verwendet.
1.2. Kerzenformation "Piercing Line"
Das Muster weist auf die Umkehr eines bärischen Trends hin (ähnlich wie die "Dunkle Wolkendecke"). Am ersten Tag wird eine große schwarze Kerze gebildet, dann folgt eine Gap Down Eröffnung (unterhalb des Tageshochs des Vortages), der Schlusskurs liegt über der Mitte des Vortages. Dies ist einer der wenigen Fälle, wenn Hoch und Tief in Candlesticks berücksichtigt werden.
Abb. 2. Kerzenformation "Piercing Line"
Methode zur Erkennung des Musters "Piercing Line":
//+------------------------------------------------------------------+ //| Methode zur Überprüfung der Formation Piercing Line | //+------------------------------------------------------------------+ bool CCandlePattern::CheckPatternPiercingLine() { //--- Piercing Line - Erkennung der Kerzenformataion "Piercing Line" if((Close(1)-Open(1)>AvgBody(1)) && // langer Körper der weißen Kerze (long white) (Open(2)-Close(2)>AvgBody(1)) && // langer Körper der vorherigen schwarzen Kerze (long black) (Close(1)>Close(2)) && // Close innerhalb des Körpers (Close(1)<Open(2)) && // der vorherigen Kerze (close inside previous body) (MidOpenClose(2)<CloseAvg(2)) && // Abwärtstrend (downtrend) (Open(1)<Low(2))) // Open unter dem Tagestief (open lower than previous Low) return(true); //--- return(false); }
Die Methode CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) der Klasse CCandlePattern wird verwendet, um zu überprüfen, ob die Kerzenformation Piercing Line gebildet wird.
2. Handelssignale in der Kombination mit dem CCI Indikator
Die Einstiegssignale entstehen, wenn die entsprechende Umkehrformation auftritt und der CCI Indikator den Level -50 für eine Long- und über 50 für eine Short-Position erreicht.
Die Ausstiegssignale werden nur vom CCI Indikator gesendet. Und zwar wenn er einen gegensätzlichen Level (80 für eine Long- und -80 für Short-Position) oder wenn er die Umkehr nicht bestätigt und ein neues Tief erreicht.
Abb. 3. Handelssignale der Kerzenformation "Dark Cloud Cover" mit der Bestätigung durch den CCI Indikator
Die Bedingungen für Einstieg und Ausstieg werden in den folgenden Methoden überprüft:
- int CDC_PL_CCI::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 CDC_PL_CCI::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
Das Signal zum Eröffnen einer Long-Position entsteht, wenn das Muster Piercing Line auftritt und die Bedingung CCI (1)<-50 erfüllt ist (der Wert des CCI Indikators auf dem letzten vollendeten Balken ist kleiner als -50).
Das Signal zum Schließen einer Short-Position entsteht, wenn der CCI Indikator den Level -80 (von oben nach unten) oder den Level 80 (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 Long-Position, result=80) | //| 2) Ausstieg (Schließen einer Short-Position, result=40) | //+--------------------------------------------------------------------+ int CDC_PL_CCI::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 //--- bullische Kerzenkombination Piercing Line und Erfüllung der Bedingung CCI<-50 if(CheckCandlestickPattern(CANDLE_PATTERN_PIERCING_LINE) && (CCI(1)<-50)) result=80; //--- Überprüfung der Bedingungen für das Schließen einer Short-Position if(((CCI(1)>-80) && (CCI(2)<-80)) || ((CCI(1)<80) && (CCI(2)>80))) result=40; //--- result zurückgeben return(result); }
2.2. Eröffnen einer Short-Position und Schließen einer Long-Position
Das Signal zum Eröffnen einer Short-Position entsteht, wenn das Muster Dark Cloud Cover auftritt und die Bedingung CCI(1)>50 erfüllt ist (der Wert des Indikators CCI auf dem letzten vollständigen Balken ist größer als 50).
Das Signal zum Schließen einer Long-Position entsteht, wenn der CCI Indikator den Level 80 (von oben nach unten) oder -80 (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 CDC_PL_CCI::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 //--- bärische Kerzenformation Dark Cloud Cover und Erfüllung der Bedingung CCI>50 if(CheckCandlestickPattern(CANDLE_PATTERN_DARK_CLOUD_COVER) && (CCI(1)>50)) result=80; //--- Überprüfung der Bedingungen für das Schließen einer Long-Position if(((CCI(1)<80) && (CCI(2)>80)) || ((CCI(1)<-80) && (CCI(2)>-80))) result=40; //--- result zurückgeben return(result); }
2.3. Erstellung eines Expert Advisors auf der Basis der Handelssignale des Umkehrmodells "Dark Cloud Cover/Piercing Line + CCI" mithilfe von MQL5 Wizard
Die Klasse CDC_PL_CCI gehört nicht zur Standardbibliothek der Klassen von Handelssignalen, aus diesem Grund muss die Datei acdc_pl_cci.mqh (angefügt) heruntergeladen und in client_terminal_data\folder\MQL5er\Include\Expert\Signal\MySignals gespeichert werden. Die acandlepatterns.mqh muss in dasselbe Verzeichnis kopiert werden, wie die Datei acdc_pl_cci.mqh. 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
Klicken Sie auf "Next" und geben Sie den Namen des EAs ein:
Abb. 5. Allgemeine Parameter des EAs
Danach sind die Parameter der Signale einzugeben:
Abb. 6. Parameter der Signale
In unserem Fall verwenden wir nur ein Modul von Handelssignalen.
Fügen wir das Modul"Signals based on Dark Cloud Cover/Piercing Line confirmed by CCI" hinzu:
Abb. 7. Parameter der Signale
Das Modul ist hinzugefügt:
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
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
Klicken Sie auf "Finish" und Sie erhalten den Code des generierten Expert Advisors - die Datei Expert_ADC_PL_CCI.mq5 wird in terminal_data_folder\MQL5\Experts\.
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, Testperiode: 2010.01.01-2011.03.16, PeriodCCI=15, MA_period=19).
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 es EAs, der auf der Basis des Generators der Handelssignale "Dark Cloud Cover/Piercing Line + CCI" 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_adc_pl_cci.mq5.
Übersetzt aus dem Russischen von MetaQuotes Ltd.
Originalpublikation: https://www.mql5.com/ru/code/298
![MQL5 Wizard - Handelssignale der Kerzenformationen Dark Cloud Cover/Piercing Line + Stochastic](https://c.mql5.com/i/code/expert.png)
Handelssignale der Kerzenformation "Dark Cloud Cover/Piercing Line" mit der Bestätigung durch den Stochastic Indikator.
![MQL5 Wizard - Klasse für die Arbeit mit Kerzenformationen](https://c.mql5.com/i/code/library.png)
Die Klasse CCandlePattern kann bei der Erstellung von Modulen von Handelssignalen mit Kerzenformationen für den MQL5 Wizard verwenden.
![MQL5 Wizard - Handelssignale der Kerzenformationen Dark Cloud Cover/Piercing Line + MFI](https://c.mql5.com/i/code/expert.png)
Handelssignale der Kerzenformation "Dark Cloud Cover/Piercing Line" mit der Bestätigung durch den MFI Indikator.
![ColorZerolagTriX](https://c.mql5.com/i/code/indicator.png)
Diese TriX Oszillator Analogie wird auf Basis von fünf Triple Exponential Moving Averages Oszillator Indikatoren berechnet.