Einzelnen Beitrag anzeigen
  #1 (permalink)  
Alt 20.07.21
noSkill06s noSkill06s ist offline
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard Divergence Anfangspunkt und Endpunkt

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.
Angehängte Grafiken
Dateityp: jpeg Long.jpeg (75,9 KB, 5x aufgerufen)
Dateityp: jpeg Short.jpeg (73,4 KB, 1x aufgerufen)
Angehängte Dateien
Dateityp: rar Files.rar (75,1 KB, 0x aufgerufen)