Werte aus ZigZag Indikator auslesen - Seite 2

 
Janis Hellmuth #:
Folgende Situation: 



Mit der Schleife vergleiche ich ob es sich um den exakten ZIGZAG Wert handelt. 


Wenn ich die Werte Visualisiere sind es nicht die exakten ZigZag-Punkte
WennIch vbermute mal, dass in ZigZag..[0] ([0]= neuester Wert) nie ein Hoch zu finden sein wird, weil links und rechts von einem ZigaZag-Hoch die werte kleiner sein müssen. Müsste es daher nicht (wenigstens) ZigZag..[1] sein?
 
Janis Hellmuth #:
Folgende Situation: 



Mit der Schleife vergleiche ich ob es sich um den exakten ZIGZAG Wert handelt. 


Wenn ich die Werte Visualisiere sind es nicht die exakten ZigZag-Punkte

ArraySetAsSeries richtig eingestellt?

 
ArraySetAsSeries habe ich für mein Bufferarray der ZigZag-Werte aktiviert. 

In meiner Hauptschleife werden die Werte auch richtig der Reihe nach angezeigt:
   CopyBuffer(ZIGZAG_Indikator1_Time_Hoch,0,0,1000,ZZ_1_Hoch);
   ArraySetAsSeries(ZZ_1_Hoch,true);
   ArraySetAsSeries(ZigZag1_Array_Hoch_Nr,true);

   for(int i=0; i<1000; i++)
     {
      if(ZZ_1_Hoch[i] != 0.0 && ZZ_1_Hoch[i] != EMPTY_VALUE)
        {
         if(ZigZag1_Array_Hoch_Nr[0] == 0.0)
           {
            ZigZag1_Array_Hoch_Nr[0] = ZZ_1_Hoch[i];
           }
         else
 
Janis Hellmuth #:
ArraySetAsSeries habe ich für mein Bufferarray der ZigZag-Werte aktiviert. 

In meiner Hauptschleife werden die Werte auch richtig der Reihe nach angezeigt:
Ich blicke da nicht mehr durch. 
-Warum nennst Du das Handle irgendwas Time?
-Wenn Du ein dynamisches Array nicht mit Copybuffer sondern mit Berechnungen aus einer Schleife befüllst, musst Du mit ArrayResize arbeiten. Also warum wird überhaupt etwas angezeigt?!?
 
Passt schon, ich habe einen Freelancer beauftragt. 
Ich verstehe nicht warum ich die ArraySize ändern muss. 


Trotzdem danke. 
 
Janis Hellmuth #:
Passt schon, ich habe einen Freelancer beauftragt. 
Ich verstehe nicht warum ich die ArraySize ändern muss. 


Trotzdem danke. 

Achso. Es gibt dynamische und statische Arrays. Beim statischen setzt Du die Größe bei der Deklarierung "double array[100]"=> Array vom Typ Kommazahl mit 100 Elementen, bei dem dynamischen deklarierst Du ohne Angabe und musst dann später Resizen.

Wenn die Elemente immer die gleiche Anzahl behalten, muss man die Größe nur einmal einstellen und tut dies in der OnInit.

Handelt es sich um ein Array, wo Elemente hinzugefügt und weggenommen werden, muss der Resize in die Berechnungen derart eingegliedert werden, dass der Platz zur Verfügung gestellt wird, bevor er mit einem Ergebnis belegt werden kann.

Copybuffer ist jedoch eine Funktion, in welcher ein Resize schon enthalten ist, da brauchst Du es dann nicht. Du gibst jedoch auch dort die Menge der Elemente an "COUNT".


Beim zweiten Nachlesen glaube ich wir haben aneinander vorbeigeschrieben. Natürlich kannst Du das was Du machst, auch mit statischem Array machen. Insofern "musst" Du Resize nicht benutzen.

 
pennyhunter #:

Achso. Es gibt dynamische und statische Arrays. Beim statischen setzt Du die Größe bei der Deklarierung "double array[100]"=> Array vom Typ Kommazahl mit 100 Elementen, bei dem dynamischen deklarierst Du ohne Angabe und musst dann später Resizen.

Wenn die Elemente immer die gleiche Anzahl behalten, muss man die Größe nur einmal einstellen und tut dies in der OnInit.

Handelt es sich um ein Array, wo Elemente hinzugefügt und weggenommen werden, muss der Resize in die Berechnungen derart eingegliedert werden, dass der Platz zur Verfügung gestellt wird, bevor er mit einem Ergebnis belegt werden kann.

Copybuffer ist jedoch eine Funktion, in welcher ein Resize schon enthalten ist, da brauchst Du es dann nicht. Du gibst jedoch auch dort die Menge der Elemente an "COUNT".


Beim zweiten Nachlesen glaube ich wir haben aneinander vorbeigeschrieben. Natürlich kannst Du das was Du machst, auch mit statischem Array machen. Insofern "musst" Du Resize nicht benutzen.

Danke für die ausführliche Erklärung. Ich habe alles verstanden. 

Mein Problem ist, dass die Werte der Zeit nicht den ZigZag werten entspricht. Dazu hatte ich einen Kommentar mit Bild gepostet. 
Aber ich hoffe der Freelancer kann das Problem lösen ☺️
 
Janis Hellmuth #:
Danke für die ausführliche Erklärung. Ich habe alles verstanden. 

Mein Problem ist, dass die Werte der Zeit nicht den ZigZag werten entspricht. Dazu hatte ich einen Kommentar mit Bild gepostet. 
Aber ich hoffe der Freelancer kann das Problem lösen ☺️
Warte, was erzähle ich denn da... man weiß ja vorher nicht, wie viele Punkte auf einem bestimmten Abschnitt zustande kommen. Also kann es ja gar nicht gehen mit einem statischen Array. Bzw. Du bekommst schon was angezeigt, aber das Array wird überlaufen und dann verschieben sich die Werte innerhalb des Arrays weil der Computer die wenigen Plätze mit immer neuen Werten füllen möchte. So ähnlich sieht das auch aus ehrlich gesagt. Ist halt schwierig zu sagen wenn man immer nur einen Schnipsel vom Code sieht.