Warum flackern die Indikatoren (Linien, Pfeile, Histogramme) auf dem MT5-Terminal? - Seite 6

 
Andrey Khatimlianskii: Ein Gedanke kam auf. Eine vollständige Neuberechnung (und Neuzeichnung) erfolgt, wenn prev_calculated = 0. Versuchen Sie, für diesen Fall einen OnCalculate-Druck am Anfang einzufügen und sehen Sie, ob die Drucke erscheinen, wenn das Blinken auftritt. Wenn ja, müssen Sie herausfinden, was das Terminal dazu veranlasst, den Zähler auf 0 zurückzusetzen (und Sie können den Kundendienst darüber informieren). Wenn nicht, handelt es sich eher um eine Störung, und eine einfache Testanzeige, Wiedergabebedingungen und ein kurzes Demonstrationsvideo können an den Kundendienst geschickt werden.

Sie haben oben eine ähnliche Lösung vorgeschlagen - fügen Sie den Druck in die Funktion OnCalculate() ein, ich habe ihn hinzugefügt, im Protokoll ist nichts Unerwartetes erschienen, es ist ein normaler Prozess des Eingangs und der Verarbeitung neuer Balken. Die Zähler werden nicht zurückgesetzt, aber sie blinken.

 
Andrey Khatimlianskii:

Ein Gedanke ist aufgetaucht.

Eine vollständige Neuberechnung (und Neuzeichnung) erfolgt, wenn prev_calculated = 0. Versuchen Sie, für diesen Fall einen OnCalculate-Druck am Anfang einzufügen und sehen Sie, ob die Drucke beim Blinken erscheinen.

Wenn ja, müssen Sie herausfinden, was das Terminal dazu veranlasst, den Zähler auf 0 zurückzusetzen (und Sie können den Kundendienst darüber informieren).

Wenn nicht, handelt es sich eher um eine Störung, und eine einfache Testanzeige, Wiedergabebedingungen und ein kurzes Demonstrationsvideo können an den Servicedesk geschickt werden.

Kurze Vorgeschichte:

Vor einiger Zeit habe ich versucht, den Indikator umzuschreiben, der Ticks up und Ticks down separat in Echtzeit von mql4 zu mql5 sammelt, aber es hat nicht funktioniert, weil der Indikator regelmäßig bereits akkumulierte Daten zurücksetzt. Ich habe dieses Problem mit SD besprochen und sie haben mir versichert, dass das Zurücksetzen davon kommt, dass prev_calculated auf 0 zurückgesetzt wird und die gesamte Historie neu berechnet wird, und dass das Zurücksetzen durch den Verlust der Verbindung mit dem Server erfolgt.

Die Experimente, die ich gestern gemacht habe:

Setzen Sie zunächst Print() nach Bedingung... Ich habe nicht darauf gewartet und begonnen, den Verbindungsverlust künstlich herbeizuführen. Print() wird ausgeführt, aber der Indikator blinkt nicht.

Ich habe auch prev_calculated auf Null gesetzt, indem ich auf das Diagramm geklickt und "Refresh" aus dem Kontextmenü gewählt habe, aber der Indikator blinkt nicht. Ich wollte sehen, wie sich ChartRedraw auf die Neuberechnung der Indikatoren auswirkt , aber das Ergebnis ist gleich Null . Es hat keinen Effekt , weder im Indikator selbst, noch in einem parallel arbeitenden Indikator mit ChartRedraw-Aufruf.

Ich habe versucht, den Ersatz für prev_calculated zu finden. Wenn ein technischer Indikator aufgerufen wird, kann prev_calculated durch BarsCalculated(handle) ersetzt werden, aber wenn nicht... nicht gefunden. Im Falle einer solchen Ersetzung wird der Indikator nicht neu berechnet und verliert seine Berechnungen nicht, wenn prev_calculated auf Null gesetzt wird.

Wie auch immer, ich habe nichts Brauchbares gefunden...

Dies ist eine wahnhafte Vermutung:

Kann es nicht sein, dass ein paar Ticks verloren gehen, die dann mit einer gewissen Verzögerung geladen werden und in diesem Moment ein Zwinkern auftritt?

 

Flackertdieser auf Ticks basierende Histogramm-Aktienindikator bei jemandem?

Ich konnte einen konstanten Indikator nur einmal flackern sehen (bei der Markteröffnung) und nur im CTRL+D-Panel, die Histogramme selbst zeigten kein Flackern (wahrscheinlich wegen des Mangels an GPU). Bei Videoaufzeichnungen war es nicht möglich, die Wiedergabe zu wiederholen.


Der Austauscheffekt sollte auf einem schnellen Markt beobachtet werden. Man muss abwarten, bis die Börse beginnt, dann kann man höchstwahrscheinlich ein Flackern feststellen. Als Alternative schlage ich vor, das Terminal auf eine mehrstündige Daueraufzeichnung zu setzen. Und dann schneiden Sie das Stück aus, bei dem das Flimmern besonders auffällig ist.

 
Es sollte nicht der Fehler gemacht werden, dass das Zurücksetzen des Zählers (oder das Bearbeiten des Ticks "rückwirkend") der einzige Fall ist, in dem das Terminal das Diagramm neu zeichnet. Die Logik dort berücksichtigt wahrscheinlich eine Reihe anderer Faktoren, die uns nicht bekannt sind. Ich habe dieses Problem aufgrund der Zufälligkeit der Reproduktion und der Schwierigkeit der Kommunikation, die normalerweise im Service-Desk auftritt, erkannt.
 
Stanislav Korotky: Es sollte nicht der Fehler gemacht werden, dass das Zurücksetzen des Zählers der einzige Fall ist, in dem das Terminal die Karte neu zeichnet. Die Logik dort berücksichtigt wahrscheinlich eine Reihe anderer Faktoren, die uns nicht bekannt sind. Ich habe dieses Problem aufgrund der Zufälligkeit der Wiederholung und der Kommunikationsschwierigkeiten, die normalerweise in einem Service-Desk auftreten, festgenagelt.

Ich komme zu demselben Schluss. Höchstwahrscheinlich handelt es sich um eine interne Angelegenheit, die sie nicht bekannt geben werden, und wir werden den wahren Grund dafür nie erfahren. Und die Entwickler haben ihre Haltung zu dieser Frage implizit zum Ausdruck gebracht, sind aber nicht ein einziges Mal in diesem Thread erschienen. Obwohl sie es hätten deutlich machen können...

 

Der ZZ-Indikator aus der Lieferung ist für ein paar Sekunden offline gegangen - es geht also nicht um die Ticks.

 
Eugene Myzrov:

Sie haben oben eine ähnliche Lösung vorgeschlagen - fügen Sie den Druck in die Funktion OnCalculate() ein, ich habe ihn hinzugefügt, im Protokoll ist nichts Unerwartetes erschienen, es ist ein normaler Prozess des Eingangs und der Verarbeitung neuer Balken. Die Zähler werden nicht zurückgesetzt, aber es blinkt.


Ich habe die vorherigen Seiten nicht gelesen, wurde Ihre Frage beantwortet? Wenn nicht, hier ist die Lösung, versuchen Sie, die Anzahl der Puffer zu erhöhen, Sie haben die falsche Anzahl, das ist, warum die blinkt.
 
Roman Vashchilin:

Ich habe die vorherigen Seiten nicht gelesen, wurde Ihre Frage beantwortet? Wenn nicht, hier ist die Lösung, versuchen Sie, die Anzahl der Puffer zu erhöhen, Sie haben die falsche Anzahl, das ist, warum es blinkt.

Ist die Anzahl der Puffer auch in der Standardzone falsch?
 
Roman Vashchilin: Ich habe die vorherigen Seiten nicht gelesen, wurde Ihre Frage beantwortet? Wenn nicht, hier ist eine Lösung, versuchen Sie, die Anzahl der Puffer zu erhöhen, Sie haben die falsche Anzahl, das ist, warum es blinkt.

Warum glauben Sie, dass "die falsche Anzahl von Puffern steht, deshalb blinkt es"? Wenn ich 2 Puffer und 2 Arrays verwende, dann werde ich das entsprechend angeben.

#property   indicator_buffers 2
#property   indicator_plots   2

Warum sollte ich mehr Puffer angeben, als ich benötige, d.h. mehr als zwei?

 
Eugene Myzrov:

Warum glauben Sie, dass "die falsche Anzahl von Puffern steht, deshalb blinkt es"? Wenn ich 2 Puffer und 2 Arrays verwende, dann werde ich das entsprechend angeben.

Warum sollte ich mehr Puffer angeben, als ich benötige, d.h. mehr als zwei?


Und wenn sie übereinstimmen, müssen sie nicht geändert werden.