Einzelnen Beitrag anzeigen
  #10 (permalink)  
Alt 10.02.16
Lena Lena ist offline
Mitglied
 
Registriert seit: Feb 2016
Beiträge: 105
Lena befindet sich auf einem aufstrebenden Ast
Standard

Was meinst Du mit Array mit Shift 0-9 abzufragen?
Ich habe keine Ahnung wie ich die Abfragen noch weiter vereinfachen kann ohne die Funktionsweise zu verändern. Wenn ich Abfragen weglassen könnte würde ich es sehr gerne machen.
Ich habe die Werte schon an verschiedenen Stellen im Indikator ausgelesen und geprüft ob diese stimmen. Da ist mir kein Fehler aufgefallen.

Woran es nicht liegen kann ist das einbinden des Donchian und der THV_Coral. Denn der Bug ist auch vorhanden wenn ich diesen Teil deaktiviere. Selbst wenn ich den kompletten Bereich des Alarms mit den vielen if Abfragen deaktiviere und die Funktion wirklich ausschließlich darauf beschränke einen Pfeil beim erreichen der Zonen 29 bzw 71 zu setzen taucht das Problem auf.

Das Problem muss also definitiv in einer der folgenden Zeilen stecken.

Code:
   int counted_bars=IndicatorCounted();
   if(counted_bars<0)return(-1);
   if(counted_bars>0)counted_bars--;
   i=Bars-counted_bars-1;
   while(i>0)
   {
      WPR=100-MathAbs(iWPR(NULL,0,11,i));                      //WPR wird abgefragt und umgerechnet 
      buf_2[i]=WPR;                                            //Speichert WPR in Array (Position i)
//-----      
      if(WPR<29)                                               //Abgleich des WPR mit dem Grenzwert 29
      {
         for(k=1 ;buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]>71)
         {
            buf_1[i]=High[i]+2*Point*Multiplier;               //Zeichnet Arrow_down
         }
      }
      else if(WPR>71)                                          //Abgleich des WPR mit dem Grenzwert 71
      {
         for(k=1; buf_2[i+k]>=29 && buf_2[i+k]<=71; k++);      //Durchlaufe das Array solange die darin gespeicherten WPR zwischen 29 und 71 liegen. Erhöhe den Zähler bei jedem Durchlauf um den Faktor 1.
         if(buf_2[i+k]<29) 
         {
            buf_0[i]=Low[i]-2*Point*Multiplier;                //Zeichnet Arrow_up
         }
      }
   i--;   
   }