icustom ZigZag

 
Ich versuche, die Richtung des Zickzack-Indikators mit dem Befehl icustom zu bestimmen.

Dies ist, was ich bis jetzt habe:

ZigZagHigh=iCustom(NULL,0, "ZigZag",MODE_HIGH,0);
ZigZagLow=iCustom(NULL,0, "ZigZag",MODE_LOW,0);

Die Linien werden auf dem Diagramm gezeichnet, aber sowohl ZigZagHigh als auch ZigZagLow sind gleich Null, wenn ich das Programm ausführe.




Wie würde ich den Trend des ZigZag-Indikators mit der icustom-Funktion bestimmen?


Vielen Dank
 
Was auch immer Sie vorhaben, dies ist wahrscheinlich nicht der richtige Weg, um es zu erreichen.
Sehen Sie sich 'Custiom-Indikatoren, Experten und Strategietests' an - ich habe erklärt, wie man iCustom verwendet...

Ich denke, Sie sollten den Indikator ändern und zwei zusätzliche Puffer erstellen, um diese Daten zu erhalten.
der niedrige Wert ist zum Beispiel LOWbuff[]
der hohe Wert ist HIGHbuff[]

Wenn Sie nun ein neues Hoch haben (innerhalb des Indikators), dann prüfen Sie, ob es sich von dem jetzt gespeicherten Wert unterscheidet... wenn ja, dann haben Sie einen neuen Wert...
1.2815 ZigZag max zum Beispiel
Balken1
Balken2
Balken3
...
barx neuer Wert kommt als 1.2755

Ihr Wert ist dann so etwas wie HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ]

dann verwenden Sie Icustom(NULL,0, "ZigZag",3,0); --> und voila! Sie haben Ihre Zahl

Ich hoffe, Sie verstehen, wovon ich spreche...

zolero
 
zolero:
Was auch immer Sie vorhaben, dies ist wahrscheinlich nicht der richtige Weg, um es zu erreichen.
Sehen Sie sich 'Custiom-Indikatoren, Experten und Strategietests' an - ich habe erklärt, wie man iCustom verwendet...

Ich denke, Sie sollten den Indikator ändern und zwei zusätzliche Puffer erstellen, um diese Daten zu erhalten.
der niedrige Wert ist zum Beispiel LOWbuff[]
der hohe Wert ist HIGHbuff[]

Wenn Sie nun ein neues Hoch haben (innerhalb des Indikators), dann prüfen Sie, ob es sich von dem jetzt gespeicherten Wert unterscheidet... wenn ja, dann haben Sie einen neuen Wert...
1.2815 ZigZag max zum Beispiel
Balken1
Balken2
Balken3
...
barx neuer Wert kommt als 1.2755

Ihr Wert ist dann so etwas wie HIGHBUFF[1.2815,1.2815,....,1.2815,1.2755,1.2755... ]

dann verwenden Sie Icustom(NULL,0, "ZigZag",3,0); --> und voila! Sie haben Ihre Zahl

Ich hoffe, Sie verstehen, wovon ich spreche...

zolero


Nein, ich verstehe es tatsächlich nicht,


Alles, was ich möchte, ist, dass mein EA weiß, in welche Richtung der Zickzack-Indikator zeigt (nach oben oder unten). WIE WÜRDE ICH DAS ANSTELLEN?
 
Alles, was ich möchte, ist, dass mein EA weiß, in welche Richtung der Zickzack-Indikator zeigt (UP OR DOWN). WIE WÜRDE ICH DAS ANSTELLEN?
Wahrscheinlich wollen Sie die letzten beiden Werte wissen (da Zickzack nicht immer einen Wert hat). Sie müssen also die letzten beiden Werte eines Indikators ablesen:

  int n, i;
  double zag, zig;
i=0;
while(n<2)
{
   if(zig>0) zag=zig;
   zig=iCustom(NULL, 0, "ZigZag", 0, i);
   if(zig>0) n+=1;
   i++;
}
Jetzt haben Sie zwei Zahlen: zig -- letzter Wert und zag -- Wert davor
if(zag>zig) indicator shows down
if(zig>zag) indicator shows up

zolero
 
zolero:
Alles, was ich will, ist mein EA wissen, welche Richtung Zickzack-Indikator zeigt (UP OR DOWN). WIE WÜRDE I GO ABOUT DOING THAT?
Wahrscheinlich wollen Sie wissen, was die letzten beiden Werte waren (da Zickzack nicht immer einen Wert hat). Sie müssen also die letzten beiden Werte eines Indikators lesen:

  int n, i;
  double zag, zig;
i=0;
while(n<2)
{
   if(zig>0) zag=zig;
   zig=iCustom(NULL, 0, "ZigZag", 0, i);
   if(zig>0) n+=1;
   i++;
}
Sie haben jetzt zwei Zahlen: zig - letzter Wert und zag - Wert davor
if(zag>zig) Indikator zeigt nach unten
if(zig>zag) Indikator zeigt nach oben

zolero

DANKE, ich habe es verstanden, es funktioniert wie ein Zauber.
 
c0d3:
zolero:
Alles, was ich will, ist mein EA wissen, welche Richtung Zickzack-Indikator zeigt (UP OR DOWN). WIE WÜRDE I GO ABOUT DOING THAT?
Wahrscheinlich wollen Sie die letzten beiden Werte wissen (da Zigzag nicht immer einen Wert hat). Sie müssen also die letzten beiden Werte eines Indikators lesen:

  int n, i;
  double zag, zig;
i=0;
while(n<2)
{
   if(zig>0) zag=zig;
   zig=iCustom(NULL, 0, "ZigZag", 0, i);
   if(zig>0) n+=1;
   i++;
}
Sie haben jetzt zwei Zahlen: zig - letzter Wert und zag - Wert davor
if(zag>zig) Indikator zeigt nach unten
if(zig>zag) Indikator zeigt nach oben

zolero

DANKE, ich habe es, es funktioniert wie ein Zauber.





NACHDEM ICH ES GETESTET HABE,



if(zag<zig) Indikator zeigt nach unten
wenn (zig<zag) zeigt der Indikator nach oben


ich denke, das ist richtig, es gab die entgegengesetzte Richtung mit (zag>zig), (zig>zag)

 
c0d3:
ich denke, das ist richtig, es gab die entgegengesetzte Richtung mit (zag>zig), (zig>zag)

Ich habe die letzte Linie bereits auf dem Chart gesehen. Das bedeutet, dass die letzte Linie nach unten [oder oben] zeigte. Das sollte bedeuten, dass jetzt eine Aufwärts- [oder Abwärts-] Bewegung zu erwarten ist. Aber es gibt ein kleines Problem damit, es als Aufwärts- oder Abwärtssignal zu nehmen: Zickzack kann [und tut es oft] sich selbst neu zeichnen. das bedeutet, dass wenn die Linie zwischen zwei Punkten nach Süden zeigt (von 1,2900 auf 1,2850), dann bedeutet das nicht, dass der Preis nach oben geht. Er wird wahrscheinlich steigen, aber es besteht eine große Chance, dass nach einer Bewegung nach unten eine neue Linie nach unten zeigt (von 1,2900 auf 1,2820) und so weiter. Ich will damit sagen, dass eine Linie im Chart nicht bedeutet, dass die Bewegung in diese Richtung vorbei ist.
 
  
int n, i; double zag, zig;
i=0;
while(n<2)
{
if(zig>0) zag=zig;
zig=iCustom(NULL, 0, "ZigZag", 0, i);
if(zig>0) n+=1;
i++;
}
 

&nbint n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }sp;int n, i; double zag, zig; i=0; while(n<2) { if(zig>0) zag=zig; zig=iCustom(NULL, 0, "ZigZag", 0, i); if(zig>0) n+=1; i++; }

 
Ich habe ein wenig Zickzack-Code modifiziert, um zu zeigen, was ich mit falschem Signal meine. wie sie sagen: ein Bild kann mehr sagen als 1000 Worte....


Die rote Linie ist der ursprüngliche Zickzack-Kurs, der in den besten Momenten von unten nach oben und wieder zurück geht... zumindest scheint es so. Aber wenn Sie ein Ea programmieren, dann bekommt das Ea Signale, die nahe an der gelben Linie liegen. es kann sogar noch schlimmer sein, da ich einen wirklich schnellen Hack gemacht habe...
Der Code zeichnet die Linie nach oben oder unten neu, bis die nächste Linie gezeichnet wurde, und ändert so Schritt für Schritt die gelbe Linie (Löschen von Max- und Min-Werten), bis Sie eine rote Linie erhalten...
 
Grund der Beschwerde: