Fehler im Code

 
Hallo, 

hat jemand eine Idee warum die Daten des Indicators nicht im Array gespeichert werden? 

   double Array[3] = {0.0, 0.0, 0.0};
   
   ArraySetAsSeries(Array,true);
   
   for(int i = 0; i<1000; i++)
     {
      int ZIGZAG = iCustom(_Symbol,_Period,"ZigZag",ExtDepth,ExtDeviation,ExtBackstep,0,i);
      if(
         ZIGZAG != EMPTY_VALUE && ZIGZAG != 0)
        {
         if(Array[0] == 0.0)
           {
            Array[0] = ZIGZAG;
           }

Das Ergebnis ist ein Hochzählen. 

Danke =) 
 

Da nicht im Thread für MT4: In Mt5 bewirkt MT5 etwas anderes F1 erzählt Dir mehr.

Warum geht Du durch Deinen Code nicht mit dem Debugger und lernst so auch das Verhalten des ZigZag kennen: Was liefert welcher Puffer wann!

 
Carl Schreiber #:

Da nicht im Thread für MT4: In Mt5 bewirkt MT5 etwas anderes F1 erzählt Dir mehr.

Warum geht Du durch Deinen Code nicht mit dem Debugger und lernst so auch das Verhalten des ZigZag kennen: Was liefert welcher Puffer wann!

danke für die Hilfe. CopyPuffer hat geholfen =)

 
den aktuellsten Wert des Indikators erhalte ich dadurch aber wie komme ich an die nach folgenden?
 
Janis Hellmuth #:
den aktuellsten Wert des Indikators erhalte ich dadurch aber wie komme ich an die nach folgenden?

?

In der Regel wird bei jedem neu eingetroffenen Tick der Indikator neu berechnet - idealerweise halt nur das, was sich ändert und nicht immer alles - und dadurch werden auch die Nachfolgenden berechnet und bereitgestellt.

 
Problem gelöst =) 

      if(ZZ_Array1[i] != 0.0 && ZZ_Array1[i] != EMPTY_VALUE)
        {
         if(Array_Puffer1[0] == 0.0)
           {
            Array_Puffer1[0] = ZZ_Array1[i];
           }
         else
            if(Array_Puffer1[1] == 0.0)
              {
               Array_Puffer1[1] = ZZ_Array1[i];
              }
            else
               if(Array_Puffer1[2] == 0.0)
                 {
                  Array_Puffer1[2] = ZZ_Array1[i];
                 }
               else
                  if(Array_Puffer1[3] == 0.0)
                    {
                     Array_Puffer1[3] = ZZ_Array1[i];
                    }
                  else
                     if(Array_Puffer1[4] == 0.0)
                       {
                        Array_Puffer1[4] = ZZ_Array1[i];
                       }
                     else
                        if(Array_Puffer1[5] == 0.0)
                          {
                           Array_Puffer1[5] = ZZ_Array1[i];
                          }
                        else
                           if(Array_Puffer1[6] == 0.0)
                             {
                              Array_Puffer1[6] = ZZ_Array1[i];
                             }
                           else
                              if(Array_Puffer1[7] == 0.0)
                                {
                                 Array_Puffer1[7] = ZZ_Array1[i];
                                }
                              else
                                 if(Array_Puffer1[8] == 0.0)
                                   {
                                    Array_Puffer1[8] = ZZ_Array1[i];
                                   }
                                 else
                                    if(Array_Puffer1[9] == 0.0)
                                      {
                                       Array_Puffer1[9] = ZZ_Array1[i];
                                      }
        }

Damit wird jeder Wert in ein neuen Array-Wert geschrieben
Grund der Beschwerde: