Einzelnen Beitrag anzeigen
  #5 (permalink)  
Alt 17.09.21
noSkill06s noSkill06s ist offline
Mitglied
 
Registriert seit: Aug 2020
Beiträge: 36
noSkill06s befindet sich auf einem aufstrebenden Ast
Standard

Code:
//+------------------------------------------------------------------+

   //LongTrariling
   for(int i=limit;i>=0;i--){
       if(Close[i+1]>High[i+2]){
         lastDirection = 1;
         int bar=i+2;
         double lowCheck=Low[bar];
         while(bar<Bars-1){
           if(lowCheck>Low[i+1]){
             bar++;
             lowCheck=Low[bar];
           }else{
             upStop_1[i+1]=lowCheck;
             break;
           }
         }
       }else if(Close[i+1]<High[i+2]){ //Letzter Schlusskurs ist kleiner als vorletzter Hoch
         lastDirection =-1;            //für den Fall das kein Fall zutrifft (nicht wirklich beachten)
         int bar=i+2;                  //Position des Bars (Index) speichern
         //Remember high of Position
         double highNumber=High[i+2];  //Hoch des vorletzten Bars speichern zum vergleichen
         //Remember Position of Index
         double lowCheck=Low[bar];     //Low des vorletzten Bars speichern zum vergleichen
         while(bar<Bars-1){            //Loop starten
            if(highNumber>Close[i+1]){ //vergleichen wenn die kommenden letzten Schlusskurse (fortlaufend kleiner als das Hoch (was wir gespeichert haben größer ist)
               if(lowCheck>Low[i+1]){  //dann checken wir ob der Low den wir gespeichert haben größer ist als der Low vom letzten Schlusskurs bar
                  bar++;               //dann addieren wir dem Bar Index dazu um nach hinten nach einem Low zu suchen der Tiefer notiert
                  lowCheck=Low[bar];   //Hier wird dann der Bar Index initialisiert
               }else{
                  upStop_1[i+1]=lowCheck; //Wenn der gespeicherte Hoch größer ist als der Hoch vom letzten Schlusskurs dann soll der Stop an den nächst tiefergelegenen Low vom Bar gesetzt werden
                  break;                  //sprich wenn die kommenden Bars sich innerhalb des hochs und lows befinden soll der Stop an den nächstgelegenen Low gesetzt werden
               }                          //das funktioniert auch nur ist das Problem
            }                             //Wenn Innerhalb eines OutsideBars sich ein weiterer Outsidebar bildet dann springt er von der Loop raus
         }
       }else{
         if(lastDirection == 1) upStop_1[i+1]=upStop_1[i+2];   
         if(lastDirection ==-1) upStop_2[i+1]=upStop_2[i+2];
       }  

   }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+