ICustom-Funktion - Seite 4

 
TheRumpledOne:
Wenn es "Schrott" ist, warum sollte man es dann überhaupt veröffentlichen?

Ich hatte einen ähnlichen Gedanken....

 

Eine Frage zu iCustom.

Können Sie die Variablen Line und Shift in Verbindung mit iCustom-Befehlen erklären und einige Beispiele geben?

Dankeschön

 
matrixebiz:
Eine Frage zu iCustom.

Können Sie die Variablen Line und Shift mit iCustom-Befehlen erklären und einige Beispiele geben?

Vielen Dank für Ihre Hilfe.

iCustom - MQL4-Dokumentation

mode - Zeilenindex. Kann von 0 bis 7 sein und muss mit dem Index übereinstimmen, der von einer der SetIndexBuffer-Funktionen verwendet wird. shift - Index des Wertes, der dem Indikatorpuffer entnommen wird (Verschiebung relativ zum aktuellen Balken um die angegebene Anzahl von Perioden).

Verwenden Sie MODE, um Ihrem Indikator mitzuteilen, welchen Puffer Sie wünschen. Die Support-Resistance-Indikatoren können Puffer 0 ( MODE=0 ) für Widerstand und Puffer 1 ( MODE=1 ) für Unterstützung verwenden.

SHIFT sagt, dass der Wert aus Bar(SHIFT) des von iCustom aufgerufenen Indikators verwendet werden soll.

Ist das hilfreich?

 
TheRumpledOne:
iCustom - MQL4 Dokumentation

mode - Zeilenindex. Kann zwischen 0 und 7 liegen und muss mit dem Index übereinstimmen, der von einer der SetIndexBuffer-Funktionen verwendet wird. shift - Index des Wertes, der aus dem Indikatorpuffer entnommen wird (Verschiebung relativ zum aktuellen Balken um die angegebene Anzahl von Perioden).

Verwenden Sie MODE, um Ihrem Indikator mitzuteilen, welchen Puffer Sie wünschen. Die Support-Resistance-Indikatoren können Puffer 0 ( MODE=0 ) für Widerstand und Puffer 1 ( MODE=1 ) für Unterstützung verwenden.

SHIFT sagt, dass der Wert aus Bar(SHIFT) des von iCustom aufgerufenen Indikators verwendet werden soll.

Ist das hilfreich?

Ok, ich habe Shift verstanden, muss aber noch mehr über Mode lesen.

Haben Sie Code? Ich habe diesen Indikator, den ich von meinem EA aus aufrufe, bin mir aber nicht sicher, wie ich ihn richtig einrichte. Siehe Bild.

Es hat nur zwei Linien und wenn Blau sich ändert und mit der anderen Linie übereinstimmt, wird ein Long-Signal generiert (Gleiche Idee mit Rot)

Versucht ein paar verschiedene Codes wie die, die ich mit dem VQ-Indikator verwendet;

double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);

Der Handel funktioniert einfach nicht richtig.

Danke

Dateien:
ci.jpg  66 kb
 
matrixebiz:
Ok, ich habe Shift verstanden, ich muss mehr über Mode lesen.

Können Sie programmieren? Ich habe diesen Indikator, den ich von meinem EA aufrufen, aber nicht sicher, wie man es richtig einrichten. Siehe Bild.

es hat nur zwei Linien und wenn Blau sich ändert und mit der anderen Linie übereinstimmt, wird ein Long-Signal generiert (dieselbe Idee mit Rot)

Versucht ein paar verschiedene Codes wie die, die ich mit dem VQ-Indikator verwendet;

double Entry1 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", 24, 30....., 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", 24, 30....., 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", 24, 30....., 2, 2);

Der Handel funktioniert einfach nicht richtig.

Danke

Wenn Sie sich auf den unteren Indikator beziehen, der "#MTF CI" zu heißen scheint, dann denke ich, dass dieser Indikator möglicherweise 4 Puffer hat: je einen für die beiden Farben jeder Linie. Sie können das Datenfenster aufrufen (ctrl-D), um zu sehen, welche Puffer die Indikatoren haben, sowie ihre Indizes (das MODE-Argument beim iCustom-Aufruf).

 
matrixebiz:
Ok, ich habe Shift verstanden, ich werde mehr über Mode lesen müssen.

Kodieren Sie?

Danke

Ich bin bekannt dafür, einen oder 2 Indikatoren (HUNDERTE) in meiner Zeit zu programmieren....LOL!

 
ralph.ronnquist:
Wenn Sie sich auf den unteren Indikator beziehen, der "#MTF CI" zu heißen scheint, dann denke ich, dass dieser Indikator möglicherweise 4 Puffer hat: je einen für die beiden Farben jeder Zeile. Sie können das Datenfenster aufrufen (ctrl-D), um zu sehen, welche Puffer die Indikatoren haben, sowie ihre Indizes (das MODE-Argument beim iCustom-Aufruf).

Ja, Sie haben recht, wie kann ich diese iCustom und den Handel erstellen?

Für die anderen beiden (QQEA 4 Puffer und VQ 2 Puffer), die funktionieren, verwende ich dies;

double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);

double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);

double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);

double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);

double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);

//Kaufen

qqe0_0>qqe1_0 && qqe0_1Entry2 && ....

Danke Ralph

Dateien:
data.jpg  24 kb
 
matrixebiz:
Ja, Sie haben recht, wie kann ich diese iCustom-Aufrufe verwenden und den Handel erstellen?

Für die beiden anderen (QQEA 4 Puffer und VQ 2 Puffer), die funktionieren, verwende ich Folgendes;

double Entry1 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 1);

double Entry2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 0, 2);

double Up2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 1, 2);

double Down2 = iCustom(NULL, 0, "VQ", Crash,TimeFrame,Length,Method,Smoothing,Filter,RealTime,Steady,Colors,Alerts,EmailON,SignalPrice,CountBars, 2, 2);

double qqe0_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,1);

double qqe0_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,0,2);

double qqe1_0=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,1);

double qqe1_1=iCustom(Symbol(),0,"QQEA",QQEA_SF,RSI_Period,DARFACTOR,1,2);

//Kaufen

qqe0_0>qqe1_0 && qqe0_1Entry2 && ....

Danke Ralph

Wenn Sie eine Indikatorlinie mit mehreren Farben sehen, wird diese in der Regel durch mehrere Puffer implementiert, einen für jede Farbe. Sie können dann die Pufferindizes aus dem Datenfenster ablesen, wobei der oberste Puffer den Index 0 hat und von oben nach unten aufsteigt. Der Puffer wird geplottet, wenn er einen Wert hat (oder, wenn es sich um einen LINE-Zeichenstil handelt, zwei oder mehr aufeinanderfolgende Werte benötigt, um geplottet zu werden).

Wenn Sie den Quellcode des Indikators haben, ist es manchmal einfacher, einen Blick darauf zu werfen und die Pufferindizes aus den SetIndexBuffer-Funktionsaufrufen zu lernen.

Ein Hinweis am Rande: Ein Indikator kann auch "Objekte" auf dem Display darstellen, und diese sind nicht über den iCustom-Aufruf zugänglich. Stattdessen müssen Sie den "Objektnamen" kennen und können die Eigenschaften des Objekts ablesen.

Daher müssen Sie sich immer darüber im Klaren sein, welchen Indikatorpuffer Sie ablesen wollen, und diesen Index als vorletztes Argument für iCustom verwenden.

Die Verwendung des VQ-Indikators scheint beispielsweise nicht ganz richtig zu sein, da (laut der von mir gesichteten Quelle) seine Puffer [1] und [2] für die grüne bzw. rote Linie verwendet werden und es nie einen Fall gibt, in dem beide nicht leer sind. D.h. "Up2==Down2" ist immer falsch, außer wenn beide "leer" sind, und das ist der Fall, wenn die VQ-Linie weder grün noch rot, sondern gelb ist.

Abgesehen davon denke ich, dass Sie die Dinge auf die richtige Weise tun. Man kann natürlich über die Wahl der Variablennamen diskutieren, aber das ist akademisch. Der richtige Weg ist, die Werte, die von Interesse sind, mit Hilfe des iCustom-Aufrufs auszuwählen und dann die jeweils erforderlichen Wertbeziehungen in den Handelsbedingungen auszudrücken.

 
ralph.ronnquist:
Wenn Sie eine Indikatorlinie mit mehreren Farben sehen, wird dies in der Regel durch mehrere Puffer realisiert, einen für jede Farbe. Sie können dann die Pufferindizes aus dem Datenfenster ablesen, wobei der oberste Puffer den Index 0 hat und von oben nach unten aufsteigt. Der Puffer wird geplottet, wenn er einen Wert hat (oder wenn es sich um einen LINE-Zeichenstil handelt, braucht er zwei oder mehr aufeinanderfolgende Werte, um geplottet zu werden)

Wenn Sie über den Quellcode des Indikators verfügen, ist es manchmal einfacher, einen Blick in diesen zu werfen und die Pufferindizes aus den SetIndexBuffer-Funktionsaufrufen zu lernen.

Ein kleiner Hinweis am Rande: Ein Indikator kann auch "Objekte" auf dem Display darstellen, und diese sind nicht über den iCustom-Aufruf zugänglich. Stattdessen müssen Sie den "Objektnamen" kennen und können die Eigenschaften des Objekts ablesen.

Daher müssen Sie sich immer darüber im Klaren sein, welchen Indikatorpuffer Sie ablesen wollen, und diesen Index als vorletztes Argument für iCustom verwenden.

Die Verwendung des VQ-Indikators scheint beispielsweise nicht ganz richtig zu sein, da (laut der von mir gesichteten Quelle) seine Puffer [1] und [2] für die grüne bzw. rote Linie verwendet werden und es nie einen Fall gibt, in dem beide nicht leer sind. D.h. "Up2==Down2" ist immer falsch, außer wenn beide "leer" sind, und das ist, wenn die VQ-Linie weder grün noch rot, sondern gelb ist.

Abgesehen davon denke ich, dass Sie die Dinge richtig angehen. Man kann natürlich über die Wahl der Variablennamen diskutieren, aber das ist akademisch. Der richtige Weg ist es, die gewünschten Werte mit Hilfe des iCustom-Aufrufs auszuwählen und dann die erforderlichen Wertbeziehungen in den Handelsbedingungen zu formulieren.

Leider habe ich den Quellcode für die drei oben genannten Indikatoren nicht. Wie würden Sie den Code für diese Indikatoren schreiben, wenn ich möchte, dass sie NUR in dem Moment auf eine Kauf- oder Verkaufsbedingung prüfen, in dem sie ihre Farbe ändern, und zwar für jeden Indikator zur gleichen Zeit?

Vielen Dank

 

Das Fehlen einer Quelle ist kein Problem. Konzentrieren wir uns auf das Indikatorfenster 2 in Ihrem Bild, das einen Indikator mit 4 Puffern zeigt. Wenn Sie die Maus nach links und rechts über den Indikator bewegen, können Sie herausfinden, welcher Puffer für welche Farbe verwendet wird.

Nehmen wir an, der erste Puffer ([0]) ist für die blaue Anzeige der oberen Zeile, der zweite Puffer ([1]) ist für die rote Anzeige der oberen Zeile, und ebenso sind [2] und [3] blau und rot für die untere Zeile. Sie könnten dann den Indikator wie folgt ablesen:

double top_is_blue = iCustom( ..., 0, 1 );

double top_was_blue = iCustom( ..., 0, 2 );

double top_is_red = iCustom( ..., 1, 1 );

double top_was_red = iCustom( ..., 1, 2 );

double bot_is_blue = iCustom( ..., 2, 1 );

double bot_was_blue = iCustom( ..., 2, 2 );

double bot_is_red = iCustom( ..., 3, 1 );

double bot_was_red = iCustom( ..., 3, 2 );

[/PHP]

Then you can summarise them as follows:

[PHP]bool top_goes_blue = ( top_is_blue == top_was_red );

bool top_goes_red = ( top_is_red == top_was_blue );

bool bot_goes_blue = ( top_is_blue == top_was_red );

bool bot_goes_red = ( top_is_red == top_was_blue );

bool both_go_blue = ( top_goes_blue && bot_goes_blue );

bool both_go_red = ( top_goes_red && bot_goes_red );

Wie Sie das machen, hängt davon ab, wonach Sie suchen. Insbesondere,

wenn Sie nicht-gleichzeitige Ablesungen der beiden Zeilen kombinieren wollen, könnte es zu einer aufwändigeren Kodierung kommen. Zum Beispiel bezieht sich die boolesche Variable "both_go_blue" auf die gleichzeitigen Werte der beiden Zeilen und erfasst nicht, dass "eine Zeile blau wird und die andere etwas später".