Fehler, Irrtümer, Fragen - Seite 1395

 
Anatoli Kazharski:

Versuchen Sie es so:

Dabei spielt es keine Rolle, was der leere Wert dort ist oder ob es am Anfang des Diagramms noch Zufallswerte gibt. Wichtig ist, dass im Puffer2 Werte von 0 bis -5 vorhanden sind, die nicht im Diagramm angezeigt werden, weil er DRAW_NONE ist und der minimale Skalenwert von 0 eingestellt ist.

MT4 in dieser Situation korrekt skaliert das Diagramm von 0 bis zum maximalen Pufferwert im Fenster, während MT5 skaliert vom Minimum (-5, nicht 0) bis zum Maximum wie 0,0605 und fügt etwas wie 10% von oben, die die Skala vollständig bricht.

 
Ilya Malev:

Es spielt keine Rolle, was der leere Wert ist oder ob am Anfang des Diagramms noch zufällige Werte vorhanden sind. Wichtig ist, dass die Werte von 0 bis -5 im Puffer1 nicht im Diagramm angezeigt werden, da er DRAW_NONE ist und der minimale Skalenwert von 0 eingestellt ist.

MT4 in dieser Situation korrekt skaliert das Diagramm von 0 bis zum maximalen Pufferwert im Fenster, während MT5 skaliert vom Minimum (-5, nicht 0) bis zum Maximum wie 0,0605 und fügt etwas wie 10% von oben, die die Skala vollständig bricht.

Ganz und gar nicht. Ein leerer Wert ist nicht Null. Es könnte alles und jeder sein.
 
Ilya Malev:

Dabei spielt es keine Rolle, wie hoch der Leerwert ist oder ob am Anfang des Diagramms noch Zufallswerte vorhanden sind. Wichtig ist, dass die Werte von 0 bis -5 im Puffer2 nicht im Diagramm angezeigt werden, da er DRAW_NONE ist und der minimale Skalenwert von 0 festgelegt ist.

MT4 in dieser Situation korrekt skaliert das Diagramm von 0 bis zum maximalen Pufferwert im Fenster, während MT5 skaliert vom Minimum (-5, nicht 0) bis zum Maximum wie 0,0605 und fügt etwas wie 10% von oben, die völlig bricht die Skala.

Übrigens, warum sollte man das Diagramm um Pufferwerte skalieren, die nicht angezeigt werden?
 
Karputov Vladimir:
Ganz und gar nicht. Ein leerer Wert ist nicht Null. Es könnte alles und jeder sein.

Versuchen Sie, die Zeile in"buffer2[i]=-MathRand()%5" zu ändern.*Punkt(); " Und Sie werden sehen, wie sich die Skala im Beispiel ändert. Dies beweist, dass in diesem Fall das Auffüllen der ersten Elemente in der Historie keine Auswirkungen auf die Skalierung hat. Denn wenn man mit Punkt multipliziert, gleicht sich das aus.

 
Anatoli Kazharski:
Übrigens, warum sollten wir das Diagramm um die Werte des Puffers skalieren, der nicht angezeigt wird?

Gute Frage! Das ist genau das, was ich gefragt habe. Warum sollte MT eine solche Skalierung vornehmen, wenn der Puffer als DRAW_NONE deklariert ist?

Das war auch in MT4 der Fall, aber nur, wenn die Werte eines solchen Puffers innerhalb des durch indicator_maximum und minimim begrenzten Anzeigebereichs lagen. Und in MT5 werden die Werte außerhalb der Beschränkungen in die Skalierungsformel einbezogen.

 
Ilya Malev:

Versuchen Sie, die Zeile in"buffer2[i]=-MathRand()%5" zu ändern.*Punkt();" und Sie werden sehen, wie sich der Maßstab in diesem Beispiel ändert. Dies beweist, dass in diesem Fall das Auffüllen der ersten Elemente in der Historie keine Auswirkungen auf die Skalierung hat. Denn wenn man mit Punkt multipliziert, gleicht sich das aus.

Ihr Beispiel ist schief und Sie wollen es nicht korrigieren. Ich werde es überprüfen, wenn Sie es korrigieren.
 
Ilya Malev:
Gute Frage! Das ist genau das, was ich gefragt habe.

Es steht in Ihrem Code, nicht wahr?

buffer2[i]=-MathRand()%5;

Was da steht, ist das, was Sie bekommen. Welchen Sinn hat es, dies für einen Puffer zu tun, der nicht angezeigt wird? Das ist es, was ich wissen wollte. ))

 
Anatoli Kazharski:

Was geschrieben steht, ist das, was wir bekommen. Welchen Sinn hat es, dies für einen Puffer zu tun, der nicht angezeigt wird? Das ist es, was ich wissen wollte. ))

Ja, also, wenn das Terminal tut es, es ist OK (es skaliert durch Werte mit DRAW_NONE und ist sogar niedriger als indicator_minimum Anzeige Schwelle - zumindest in MT4 war es angemessen), aber wenn ein Benutzer setzt seine eigenen willkürlichen Werte in den Puffer ohne Anzeige (DRAW_NONE), es ist nicht OK (wie halten und nicht lassen, wen kümmert es, warum der Benutzer braucht es?).

Der Grund dafür ist trivial - diese Attribute zeigen wichtige numerische Attribute der Balken im Diagramm an, die der Händler für die Analyse benötigt. Das heißt, sie werden vom Händler verwendet und von den Expert Advisors genutzt.

 
Ilya Malev:

Ja, das heißt, wenn das Terminal tut es, es ist OK (Skala von Werten mit DRAW_NONE, und sogar weniger als indicator_minimum Schwelle - zumindest war es angemessen in MT4), aber wenn Benutzer setzt seine beliebige Werte in den Puffer ohne Anzeige (DRAW_NONE), es ist nicht OK (wie halten und nicht lassen, wen kümmert, warum der Benutzer es braucht?)

Der Grund ist trivial - diese Attribute zeigen wichtige numerische Attribute der Balken im Datenfenster an, die der Händler für die Analyse benötigt.

Nun, ich habe nichts über normal oder abnormal gesagt. Ich habe mich nur gefragt, warum ich das tun sollte. )

Ich denke, dass Puffer, die nicht angezeigt werden (DRAW_NONE), nicht in die Berechnung des Maßstabs einbezogen werden sollten.

Sie könnten versuchen, diesen Fehler an servicedesk zu melden und dort auf eine Antwort zu warten.

 
Anatoli Kazharski:

Nun, ich habe nicht von normal oder abnormal gesprochen. Ich habe mich nur gefragt, warum Sie so etwas tun würden. )

Ich denke, dass Puffer, die nicht angezeigt werden (DRAW_NONE), nicht in die Berechnung des Maßstabs einbezogen werden sollten.

Im Beispiel habe ich MathRand erstellt, um zu zeigen, wie die Skala funktioniert. Im Original hatte ich die Berechnung der numerischen Niveaus dort unter Verwendung der Methodik eines Autors eines Händlers. Am Anfang wollten wir sie von 1 bis 5 machen, aber selbst MT4 schaffte es nicht, eine angemessene Skalierung zu erreichen, selbst mit solchen Werten im Puffer mit DRAW_NONE. Nachdem wir sie negativ gemacht und das Minimum auf 0 festgelegt hatten, war das Problem gelöst. Bei der Portierung des Indikators auf MT5 stellte sich heraus, dass auch diese Lösung nicht funktionieren würde. Ich musste mit Punkt multiplizieren, wie Voldemar sagte.