Fehler, Irrtümer, Fragen - Seite 1984

 
Aleksey Vyazmikin:

Sollte der Puffer nicht verschwinden, wenn der Indikator verschwindet?

Aber vielleicht müssen die Berechnungen irgendwie deinitialisiert werden, aber wie?

Wird sie aus dem Code entfernt?

 
Alexey Viktorov:

Wurde sie aus dem Code entfernt?


Es wurde nur im Code deklariert, aber keine Berechnungen durchgeführt.

 

Die Erwähnungen wurden vollständig aus dem Code entfernt - die Puffer sind verschwunden.

 
Alexey Viktorov:

So soll es auch sein. Die Sauberkeit des Arrays bzw. des Indikatorpuffers ist Sache des Programmierers.

Übrigens gibt es da noch einen Fehler. Wenn die Anzahl der Diagrammreihen dynamisch eingestellt wird (nach Wahl des Benutzers), sind die Puffer beim Neustart des Indikators immer noch sichtbar, selbst wenn sie in OnDeinit() mit leeren Werten initialisiert werden.

D.h., wenn indicator_plots größer ist als die Anzahl der verwendeten Diagrammreihen, kann der Müll auf dem Bildschirm bleiben (in dem Fall, wenn zuerst alle Diagrammreihen beteiligt waren und dann einige von ihnen nicht mehr beteiligt sind).

 
Alexey Kozitsyn:

Übrigens gibt es da noch einen Fehler. Wenn die Anzahl der Diagrammreihen dynamisch eingestellt wird (nach Wahl des Benutzers), sind die Puffer beim Neustart des Indikators immer noch sichtbar, selbst wenn sie in OnDeinit() mit leeren Werten initialisiert werden.

D.h., wenn indicator_plots die Anzahl der verwendeten Plots (Diagrammreihen) übersteigt, kann der Müll auf dem Bildschirm bleiben (in dem Fall, wenn zuerst alle Diagrammreihen beteiligt sind und dann einige nicht mehr).

Und genau das passiert bei unserem Namensvetter. Aber das ist doch eine einmalige Angelegenheit, oder? Wenn die Diagramme nicht mehr benötigt werden, müssen sie entweder gelöscht oder bei jedem Balken mit einem nicht anzeigbaren Wert ausgefüllt werden.

Ich kenne mich mit Hardware nicht besonders gut aus, aber ich vermute, dass es mit dem Löschen der Speicheradresse des Computers zu tun hat. Und wahrscheinlich erhöht sich dadurch, unter anderem, die Geschwindigkeit von MT.

 
Alexey Viktorov:

Das ist bei unserem Namensvetter der Fall. Aber das kann doch sofort gelöst werden, oder? Wenn die Diagramme nicht mehr benötigt werden, müssen sie entweder gelöscht oder bei jedem Balken mit einem Wert gefüllt werden, der nicht angezeigt wird.

Ich kenne mich mit Hardware nicht aus, aber ich vermute, dass es mit dem Löschen von Speicheradressen zu tun hat. Wahrscheinlich erhöht sich dadurch unter anderem die MT-Geschwindigkeit.

Ich weiß nicht, wie es ihm geht, aber ich konnte dieses Problem nicht lösen. Es sollte einfacher sein als das. Wenn die Deinitialisierung ansteht, werden alle Puffer auf Null gesetzt. Nur alle Puffer, die verwendet werden. Im Idealfall sollte es helfen. Es ergibt sich jedoch das folgende Bild.

Der Fall der Verwendung aller Diagrammreihen:

Und so sieht es aus, wenn Sie die Pfeilanzeige (über Eingabeparameter) deaktivieren:


Und egal, welches Clearing in OnDeinit() eingestellt wird - der Müll bleibt.

 
Alexey Kozitsyn:

Ich weiß nicht, wie es ihm geht, aber ich habe dieses Problem nicht lösen können.

Ich werde später einen Testindikator zusammenstellen und ihn an den SD schicken.
 
Alexey Kozitsyn:
Ich werde später einen Testindikator zusammenstellen und ihn an den SD schicken.

Eine weise Entscheidung!

Und mir wurde gesagt, dass es so sein sollte, also habe ich es bereits umgeschrieben und alles unter die Lupe genommen...

 
Alexey Kozitsyn:

Ich weiß nicht, wie es ihm geht, aber ich habe dieses Problem nicht lösen können. Es sollte ganz einfach sein. Der Moment der Deinitialisierung kam, ich nahm alle Puffer und setzte sie auf Null zurück. Nur alle Puffer, die verwendet werden. Im Idealfall sollte es helfen. Es ergibt sich jedoch das folgende Bild.

Der Fall der Verwendung aller Diagrammreihen:

Und so sieht es aus, wenn Sie die Pfeilanzeige (über die Eingabeparameter) deaktivieren:


Und was auch immer in OnDeinit() für das Clearing eingestellt wird - der Müll bleibt.

Alexey, eine unbescheidene Frage, ist PLOT_EMPTY_VALUE vorgeschrieben?

 
Alexey Viktorov:

Alexei, und unbescheidene Frage, ist PLOT_EMPTY_VALUE vorgeschrieben?

Ja, natürlich ist sie das.