Schau, wie man Roboter kostenlos herunterladen kann
Finden Sie uns auf Telegram!
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

Exp_ColorZerolagMomentum_X2 - Experte für den MetaTrader 5

Ansichten:
585
Rating:
(12)
Veröffentlicht:
2017.02.24 09:28
\MQL5\Include\ \MQL5\Indicators\ \MQL5\Experts\
Benötigen Sie einen Roboter oder Indikator, der auf diesem Code basiert? Bestellen Sie ihn im Freelance-Bereich Zum Freelance
Das Exp_ColorZerolagMomentum_X2 Trendfolgesystem basierend auf den Signalen von zwei ColorZerolagMomentum Indikatoren. Anhand des ersten Indikators wird die Richtung des langsamen Trends basierend auf der Lage der Hauptlinie und der Signallinie bestimmt. Anhand des zweiten Indikators wird der Moment der Ausführung eines Trades festgelegt, wenn sich die Linien kreuzen oder berühren. Das Signal wird im Moment des Schließens eines Balkens generiert, wenn zwei folgende Bedingungen erfüllt sind:
  1. Die Signale des schnellen und des langsamen Trends stimmen überein;
  2. Die Richtung des schnellen Trends hat sich geändert.

Eingabeparameter des Expert Advisors:

//+-------------------------------------------------+
//| Eingabeparameter des Indikators des Expert Advisors           |
//+-------------------------------------------------+
input string Trade="Handelsmanagement";    //+============== HANDELSMANAGEMENT ==============+  
input double MM=0.1;               //Anteil der Einlage an jedem Trade
input MarginMode MMMode=LOT;      //Methode zur Bestimmung der Lotgröße
input uint    StopLoss_=1000;      //Stop Loss in Punkten
input uint    TakeProfit_=2000;    //Take Profit in Punkten
input string MustTrade="Erlaubnis zum Handeln";    //+============== ERLAUBNIS ZUM HANDELN ==============+  
input int    Deviation_=10;       //max. Abweichung des Preises in Punkten
input bool   BuyPosOpen=true;     //Erlaubnis, eine Long-Position zu eröffnen
input bool   SellPosOpen=true;    //Erlaubnis, eine Short-Position zu eröffnen
//+-------------------------------------------------+
//| Eingabeparameter des Indikators des Filters            |
//+-------------------------------------------------+
input string Filter="PARAMETER DES LANGSAMEN TRENDS";    //+============== TRENDPARAMETER ==============+  
input ENUM_TIMEFRAMES TimeFrame=PERIOD_H6;  //1 Chartperiode für den Trend
input uint    smoothing=15;
input ENUM_APPLIED_PRICE IPC=PRICE_CLOSE;//Preiskonstante
//----
input double Factor1=0.05;
input uint    Momentum_period1=8;
//----
input double Factor2=0.10;
input uint    Momentum_period2=21;
//----
input double Factor3=0.16;
input uint    Momentum_period3=34;
//----
input double Factor4=0.26;
input int    Momentum_period4=55;
//----
input double Factor5=0.43;
input uint    Momentum_period5=89;
input uint SignalBar=1; //Nummer des Balkens für das Erhalten eines Einstiegssignals
input bool   BuyPosClose=true;     //Erlaubnis, Long-Positionen basierend auf dem Trend zu schließen
input bool   SellPosClose=true;    //Erlaubnis, Short-Positionen nach dem Trend zu schließen
//+-------------------------------------------------+
//| Eingabeparameter des Einstiegsindikators              |
//+-------------------------------------------------+
input string Input="EINSTIEGSPARAMETER";       //+=============== EINSTIEGSPARAMETER ===============+  
input ENUM_TIMEFRAMES TimeFrame_=PERIOD_M30;  //2 Chartperiode für den Einstieg
input uint    smoothing_=15;
input ENUM_APPLIED_PRICE IPC_=PRICE_CLOSE;//Preiskonstante
//----
input double Factor1_=0.05;
input uint    Momentum_period1_=8;
//----
input double Factor2_=0.10;
input uint    Momentum_period2_=21;
//----
input double Factor3_=0.16;
input uint    Momentum_period3_=34;
//----
input double Factor4_=0.26;
input int    Momentum_period4_=55;
//----
input double Factor5_=0.43;
input uint    Momentum_period5_=89;
input uint SignalBar_=1;//Nummer des Balkens für das Erhalten des Einstiegssignals
input bool   BuyPosClose_=false;     //Erlaubnis, Long-Positionen nach dem Signal zu schließen
input bool   SellPosClose_=false;    ///Erlaubnis, Short-Positionen basierend auf dem Signal zu schließen
//+-------------------------------------------------+

Die String-Variablen mit dem Text im Code der Eingabeparameter dienen nur zu einer besseren visuellen Darstellung des Fensters der Eingabeparameter des Expert Advisors.

Die ColorZerolagMomentum_HTF Indikatoren sind nur für eine einfachere Visualisierung von Trends im Strategietester vorgesehen, sie funktionieren nicht in anderen Modi.

Für eine korrekte Kompilation benötigt der Expert die kompilierten Dateien ColorZerolagMomentum.ex5 und ColorZerolagMomentum_HTF.ex5. Kopieren Sie sie in den Ordner <terminal_data_folder>\MQL5\Indicators.

Nach der Kompilation beinhaltet die Datei des Expert Advisors Exp_ColorZerolagMomentum.ex5 die Indikatoren ColorZerolagMomentum.ex5 und ColorZerolagMomentum_HTF.ex5 als Ressourcen, deswegen müssen sie nicht weiter im Ordner des Terminals vorhanden sein! Dafür wurde dem Code des Expert Advisors der entsprechende Code für das Einfügen dieser Indikatoren in die ausführbare Datei des Expert Advisors hinzugefügt.

An der globalen Ebene wurden die ausführbaren Dateien der Indikatoren als Ressourcen hinzugefügt

//---- Einfügen der Indikatoren in den Code des Expert Advisors als Ressource
#resource "\\Indicators\\ColorZerolagMomentum.ex5"
#resource "\\Indicators\\ColorZerolagMomentum_HTF.ex5"

Im Block der OnInit() Funktion wurden die Pfade zu den als Ressourcen verwendeten Indikatoren geändert

//---- den Handle des ColorZerolagMomentum Indikators erhalten
   InpInd_Handle=iCustom(Symbol(),TimeFrame,"::Indicators\\ColorZerolagMomentum",
                         smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
   if(InpInd_Handle==INVALID_HANDLE)
     {
      Print(" Der Handle des ColorZerolagMomentum Indikators konnte nicht erhalten werden");
      return(INIT_FAILED);
     }

//---- den Handle des ColorZerolagMomentum Indikators erhalten
   InpInd_Handle_=iCustom(Symbol(),TimeFrame_,"::Indicators\\ColorZerolagMomentum",
                          smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
   if(InpInd_Handle_==INVALID_HANDLE)
     {
      Print(" Der Handle des ColorZerolagMomentum Indikators konnte nicht erhalten werden");
      return(INIT_FAILED);
     }

   if(MQLInfoInteger(MQL_VISUAL_MODE))
     {
      //---- Handle des ColorZerolagMomentum_HTF Indikators erhalten
      int Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\ColorZerolagMomentum_HTF",TimeFrame,
                             smoothing,IPC,Factor1,Momentum_period1,Factor2,Momentum_period2,Factor3,Momentum_period3,Factor4,Momentum_period4,Factor5,Momentum_period5);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Der Handle des ColorZerolagMomentum_HTF Indikators konnte nicht erhalten werden");
         return(INIT_FAILED);
        }
      //---- Handle des ColorZerolagMomentum_HTF Indikators erhalten
      Ind_Handle=iCustom(Symbol(),Period(),"::Indicators\\ColorZerolagMomentum_HTF",TimeFrame_,
                         smoothing_,IPC_,Factor1_,Momentum_period1_,Factor2_,Momentum_period2_,Factor3_,Momentum_period3_,Factor4_,Momentum_period4_,Factor5_,Momentum_period5_);
      if(Ind_Handle==INVALID_HANDLE)
        {
         Print(" Der Handle des ColorZerolagMomentum_HTF Indikators konnte nicht erhalten werden ");
         return(INIT_FAILED);
        }

     }

Auf diese Weise kann die kompilierte ausführbare Datei des Expert Advisors in anderen Terminals ohne Indikator verwendet werde.

Es ist zu beachten, dass die TradeAlgorithms.mqh Datei für die Verwendung von Expert Advisors bei Brokern entworfen wurde, die einen nonzero Spread anbieten und bei denen es möglich ist, Stop Loss und Take Profit gleichzeitig mit der Eröffnung einer Position zu setzen. Andere Varianten dieser Bibliothek können unter Trade Algorithms heruntergeladen werden.

Bei den unten angeführten Tests wurden die Standardparameter des Expert Advisors verwendet. Stop Loss und Take Profit wurden in den Tests nicht verwendet.

Abb. 1. Beispiele für Trades auf dem Chart

Abb. 1. Beispiele für Trades auf dem Chart

Testergebnisse für 2015 auf GBPJPY, langsamer Trend auf H6, schneller Trend auf M30:

Abb. 2. Chart der Testergebnisse

Abb. 2. Chart der Testergebnisse

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

Fractal_DeMarker Fractal_DeMarker

Der fraktale DeMarker Oszillator.

Fractal_Keltner_HTF Fractal_Keltner_HTF

Der Fractal_Keltner Indikator mit der Option, Zeitrahmen in den Eingabeparametern auszuwählen.

LifeHack Balance Equity LifeHack Balance Equity

Der Indikator zeigt Balance und Equity des Handelskontos an.

Stoch Stoch

Handeln mit Sell Limit und Buy Limit Pending Orders. Um 23:59 löscht der Expert Advisor alle Orders und schließt alle Positionen.