Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools

Metatrader Forum | Forex Expert-Advisor | Broker & Forex Tools (http://www.expert-advisor.com/forum/index.php)
-   Programmierung MQL4 (http://www.expert-advisor.com/forum/forumdisplay.php?f=220)
-   -   Divergence Anfangspunkt und Endpunkt (http://www.expert-advisor.com/forum/showthread.php?t=7048)

noSkill06s 20.07.21 06:35

Divergence Anfangspunkt und Endpunkt
 
Liste der Anhänge anzeigen (Anzahl: 3)
Hi Leute ich habe eine Frage ich hoffe ihr könnt mir helfen wäre über jede Anregung dankbar oder über ein Beispielcode

Long Algo:

Code:

ema_m15_50<ema_h1_50 && Close[1]<ema_m15_50 && Close[1]<ema_h1_50 &&
macd_histogramDarkTurquoiseLine<macd_histogrammRedLine && macd_histogramDarkTurquoiseLine>0 && macd_histogrammRedLine>0

Hier liegt mein Problem und wo ich Hilfe brauche:

Wenn die oben genannten Bedingungen zutreffen soll nach hinten geschaut werden ob bei den letzten 5 Bars eine Bullish Divergence war, dieser Bullish Divergence ist aber ja der Endpunkt hat aber ja noch einen Anfangspunkt, bitte siehe hierzu die Bilder (Startpunkt und Endpunkt)

sieh Anhang

Warum ist dieser Anfangspunkt für mich wichtig laut Algo:
Dürfen die beiden Moving Averages des MACD die 0 Linie nicht berühren vom Anfangszeitpunkt der Divergence bis zum Endpunkt nur dann hat das Signal Gültigkeit, auch
Generell würde mich das interessieren wie ich das machen könnte.

Wie habe ich es bis jetzt gemacht naja nicht wirklich eine Lösung ich schau innerhalb einer For loop mit einer weiteren For loop die letzten 5 Bars ob eine Divergence war

Code:

for(int i=0;i<5;i++){
            //Initizilation of indicator for Filter (Traditional Macd Histogram Divergence)
            double macdBullishDivergence = iCustom(NULL, PERIOD_CURRENT, "Traditional Macd Histogram Divergence", "*** MACD Settings ***", 12, 26, 9, "*** Indicator Settings ***", true, true, true, 3, i);
            //initizilation of indicator for Filter (macd_histogram Redline and DarkTurquoiseLine)
            double macd_histogramDarkTurquoiseLine = iCustom(Symbol(), PERIOD_CURRENT, "macd_histogram", 12, 26, 9, 0, i);
            double macd_histogrammRedLine = iCustom(Symbol(), PERIOD_CURRENT, "macd_histogram", 12, 26, 9, 1, i);
            if(macdBullishDivergence != EMPTY_VALUE && macd_histogramDarkTurquoiseLine<0 && macd_histogrammRedLine<0){
              if(Bars>safetyCheck){
                  if(TotalOpenOrders()<1){
                    if(OrderSelect(LastTradeTicket(),SELECT_BY_TICKET,MODE_HISTORY)){
                        if(OrderProfit()< 0){
                          volumen = 0.01;
                        }else{
                          volumen += addOrderLots;
                        }
                    }
                    int longTicket=OrderSend(Symbol(),OP_BUY,volumen,Ask,100,0,0,"Long",neutralMagicNumber,0,clrGreen);
                  }
                  safetyCheck = Bars;
              } 
            }
        }//Loop

Nochmal wie kriege ich die beiden Punkte einer Divergence heraus?
-Anfangspunkt und Endpunkt


Ich poste mal den Code meines Expert Advisors den wichtigen Teil:

Code:

  //checking Signal (Long Trade)
  if(ema_m15_50>ema_h1_50 && Close[1]>ema_m15_50 && Close[1]>ema_h1_50){
      if(macd_histogramDarkTurquoiseLine>macd_histogrammRedLine && macd_histogramDarkTurquoiseLine<0 && macd_histogrammRedLine<0){
        for(int i=0;i<5;i++){
            //Initizilation of indicator for Filter (Traditional Macd Histogram Divergence)
            double macdBullishDivergence = iCustom(NULL, PERIOD_CURRENT, "Traditional Macd Histogram Divergence", "*** MACD Settings ***", 12, 26, 9, "*** Indicator Settings ***", true, true, true, 3, i);
            //initizilation of indicator for Filter (macd_histogram Redline and DarkTurquoiseLine)
            double macd_histogramDarkTurquoiseLine = iCustom(Symbol(), PERIOD_CURRENT, "macd_histogram", 12, 26, 9, 0, i);
            double macd_histogrammRedLine = iCustom(Symbol(), PERIOD_CURRENT, "macd_histogram", 12, 26, 9, 1, i);
            if(macdBullishDivergence != EMPTY_VALUE && macd_histogramDarkTurquoiseLine<0 && macd_histogrammRedLine<0){
              if(Bars>safetyCheck){
                  if(TotalOpenOrders()<1){
                    if(OrderSelect(LastTradeTicket(),SELECT_BY_TICKET,MODE_HISTORY)){
                        if(OrderProfit()< 0){
                          volumen = 0.01;
                        }else{
                          volumen += addOrderLots;
                        }
                    }
                    int longTicket=OrderSend(Symbol(),OP_BUY,volumen,Ask,100,0,0,"Long",neutralMagicNumber,0,clrGreen);
                  }
                  safetyCheck = Bars;
              } 
            }
        }//Loop       
      }
  }

habe auch die Indikatoren, Template sowie den Expert Advisor angehängt.


Alle Zeitangaben in WEZ +2. Es ist jetzt 20:06 Uhr.

Powered by vBulletin® Version 3.8.5 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
SEO by vBSEO 3.6.1
Powered by vBCMS® 2.7.0 ©2002 - 2024 vbdesigns.de
Copyright ©2009 - 2023 by Expert-Advisor.com - Das Metatrader Forum