Fragen von Anfängern MQL5 MT5 MetaTrader 5 - Seite 1131

 
Alexey Viktorov:

Artyom, du hast nicht bemerkt, dass der Typ DRAW_COLOR_HISTOGRAM2 ist und dass er zwei Datenpuffer und einen dritten Farbpuffer hat.

Ja, das ist richtig. Ich habe nicht darauf geachtet.

 
Artyom Trishkin:

Ja, das ist richtig.

Im Allgemeinen, ja. Der erste Puffer wird für Berechnungen verwendet, DRAW_COLOR_HISTOGRAM2 wird mit zwei Koordinaten/Puffern gezeichnet und benötigt einen weiteren für die Farbe.


Alexey Viktorov:

Warum ist diese Zeile auskommentiert?

Sie sollte aber auch andere Farben enthalten. Oder zumindest eine, aber die Erklärung sollte lauten.

Ich verwende entweder

#property indicator_color2 GrünC,RotC

oder

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

D.h., es ist eine Sache, und ich nahm an, dass sie austauschbar sind wie in MQL4, d.h. das Fehlen der Präprozessoranweisung für die Farbeinstellung wird durch PlotIndexSetInteger() ersetzt. Ist das in MQL5 nicht der Fall?

 
The_Sheikh:

Im Allgemeinen, ja. Der erste Puffer wird für Berechnungen verwendet, DRAW_COLOR_HISTOGRAM2 wird mit zwei Koordinaten/Puffern gezeichnet und benötigt einen weiteren für die Farbe.


Ich verwende entweder

#property indicator_color2 GrünC,RotC

oder

PlotIndexSetInteger(1,PLOT_LINE_COLOR,0,GreenC);
PlotIndexSetInteger(1,PLOT_LINE_COLOR,1,RedC);

D.h., es ist eine Sache, und ich nahm an, dass sie austauschbar sind wie in MQL4, d.h. das Fehlen der Präprozessoranweisung für die Farbeinstellung wird durch PlotIndexSetInteger() ersetzt. Ist dies in MQL5 nicht der Fall?

Nun, Sie geben Schnipsel der Dokumentation. Warum studieren Sie sie nicht gründlich? Denn im Beispiel ist die Richtlinie unabhängig von PlotIndexSetInteger vorhanden.

 
Alexey Viktorov:

Nun, Sie geben Auszüge aus der Dokumentation an. Warum studieren Sie es nicht gründlich? Die Richtlinie ist im Beispiel unabhängig von PlotIndexSetInteger vorhanden.

Ja, ich habe die Dokumentation studiert und die Richtlinie ist im Beispiel vorhanden, aber es tut mir leid, ich habe keinen Absatz darin gesehen, der besagt, dass die Richtlinie vorhanden sein muss, also schließe ich die Richtlinie gewohnheitsmäßig wie in MQL4 aus.

In der Dokumentation steht auch, dass bis zu 64 Farben für die Darstellung verwendet werden können. Aber ich habe keine Möglichkeit gefunden, die Anzahl solcher Paletten zuzuordnen, ohne dass die einzelnen Farben nach der Richtlinie monoton aufgelistet werden.

Dennoch ist die Frage geklärt.

 
The_Sheikh:

Ja, ich habe die Dokumentation studiert, die Richtlinie ist in dem Beispiel vorhanden, aber es tut mir leid, ich habe den Absatz nicht gesehen, der besagt, dass die Richtlinie vorhanden sein muss, also schließe ich aus Gewohnheit die Richtlinie wie in MQL4 aus.

In der Dokumentation steht auch, dass bis zu 64 Farben für die Darstellung verwendet werden können. Aber ich habe keine Möglichkeit gefunden, die Anzahl solcher Paletten ohne monotone Aufzählung der einzelnen Farben nach der Richtlinie festzulegen.

Aber ich bin mit der Frage fertig.

Und dies

#define  GreenC 0x00FF00
#define  RedC 0x0000FF

nicht in der Schleife geändert werden kann? Ich bin damit überhaupt nicht vertraut und weiß es daher nicht.

Schließlich kann ein Farbfeld auch in der Schleife aus einem anderen Feld gefüllt werden. Im Beispiel gibt es ein Array color colors = {}; in dem die Farben aufgelistet sind. Und dann wird dieses "Service"-Array mit PlotIndexSetInteger(1,PLOT_LINE_COLOR, index_in_array, Farbe) gefüllt;

 

Ich lade Kurse von verschiedenen Stellen herunter und sehe oft Lücken von 1-2 Balken, die Daten sind einfach nicht da

Wie können sie mit minimalem Informationsverlust gefüllt werden? Gibt es irgendwelche Algorithmen?

Ich bin sicher, dass Metatrader das kann.

 
Roman Sharanov:

Ich lade Kurse von verschiedenen Stellen herunter und sehe oft Lücken von 1-2 Balken, die Daten sind einfach nicht da

Wie können sie mit minimalem Informationsverlust gefüllt werden? Gibt es irgendwelche Algorithmen?

Ich bin sicher, dass Metatrader das kann.

MetaTrader füllt die Löcher nicht - wenn es einen Balken gibt, wird er gezeichnet, wenn es keinen Balken gibt, wird er übersprungen.

 
Vladimir Karputov:

Hier ist der Test-Prüfer - es funktioniert alles korrekt:

und das Ergebnis:

Vielen Dank für die ausführliche Antwort. Es stellte sich heraus, dass der Fehler nur beim Testen des Expert Advisors auf Geschichte beobachtet wird, wenn ich es auf reale Daten zu verbinden- alles ist OK.

Wenn Sie Ihren Experten unter Debugging auf historischen Daten ausführen, wird er falsch berechnet:

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Band 1.0, Gewinn -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 Volumen 0,5, Gewinn -> -50,00


 
aveshoff:

Vielen Dank für die ausführliche Antwort. Es stellte sich heraus, dass der Fehler nur beim Testen des Expert Advisors auf der Historie beobachtet wird, wenn er mit echten Daten verbunden ist - alles ist in Ordnung.

Wenn Sie Ihren Experten unter Debugging auf historischen Daten ausführen, wird er falsch berechnet:

2019.10.08 02:10:14.425 2019.01.01 00:00:00 Band 1.0, Gewinn -> -50.00

2019.10.08 02:10:16.226 2019.01.01 00:00:00 Volumen 0,5, Gewinn -> -50,00


Bitte geben Sie vollständige Informationen an: vollständiger Code, Symbol, Zeitrahmen, wie viele Positionen und auf welche Symbole geöffnet sind - im Allgemeinen, um die Situation reproduzieren zu können.

 

Guten Tag!

Können Sie mir sagen, wie ich herausfinden kann, welcher Experte es ist?

ID 11032019, kann nicht herausfinden, wo es zu finden ist?