Init() und DeInit() Ausführungsreihenfolge - Seite 19

 
Slawa:

Keine Lösung bedeutet "noch keine Lösung", nicht "wird nicht".

Und mit Benutzerereignissen gibt es überhaupt kein Problem

Puh... Du machst mir Angst :)
 
fxsaber:

Wie können Dienste oder die Möglichkeit, mehrere EAs auf einem einzigen Diagramm laufen zu lassen, die diskutierten Probleme nicht vollständig abdecken?

Nun, die Probleme werden bleiben. Nur weil es einen neuen MQL-Programmtyp geben wird, löst das nicht die Probleme in anderen MQL-Programmtypen. Eine gute Software erlaubt es dem Benutzer nicht, einen Fehler zu machen. Es ist natürlich einfacher, in der Hilfe einen Satz über die Unsicherheit des Verhaltens zu schreiben. Es ist die Aufgabe der Ertrinkenden, sie zu retten.
 
Stanislav Korotky:
Es ist die Aufgabe der Ertrinkenden, sie zu retten.
Man kann natürlich weiterhin beklagen, dass der Felsen auch weiterhin nicht zur Rettung des Ertrinkenden beiträgt, wenn eine Rettungsleine geworfen wird.
 
elibrarius:
Ich schlage vor, alles ab Beitrag 125 zu löschen, da es für eine konstruktive Diskussion über Deinit- und Init-Prioritäten beim Wechsel von TFs irrelevant ist.
Es wäre besser, den ganzen Thread zu löschen. Und vergessen Sie es wie einen unangenehmen Traum.
 
Dmitry Fedoseev:

Ein Indikator hat zuerst initial, dann deinit. Wenn jedoch der Zeitrahmen gewechselt wird, wird die zweite Indikatorinstanz erstellt, und ihr init kann früher ausgeführt werden als das deinit der vorherigen (nicht gezeichneten) Instanz.

Das offensichtlichste Beispiel ist die Speicherung von Benutzerparametern beim Wechsel des Zeitrahmens - wir speichern Parameter im Deinit und lesen sie im Init. Wenn der init der neuen Instanz vor dem deinit der vorherigen Instanz ausgelöst wird, werden die Parameter nicht gespeichert.

In der Praxis wird das Deinit der gelöschten Instanz in der Regel vor dem Init der neuen Instanz ausgelöst, aber wenn der Zeitrahmen sehr schnell gewechselt wird oder die Daten geladen werden, kommt es zu einem Fehler.

Dimitri, müssen Sie beim Autofahren in den Rückspiegel schauen, wenn Sie schon angekommen sind? Oder müssen Sie die erforderlichen Parameter regelmäßig im Indikator speichern? Es ist wie ein Blick in den Rückspiegel.

 
fxsaber:
Sie können sich natürlich weiterhin darüber beschweren, dass der Stein nicht zur Rettung eines Ertrinkenden beiträgt, wenn ein Rettungsring geworfen wird.

Die Harke bleibt. Das ist die Hauptsache. (in dieser Analogie wird auf einer Bootswerft ein Schoß auf Abruf ausgeteilt, und die Menschen ertrinken zufällig und unerwartet).

Wenn die alten Chips nicht in Ordnung sind, werden es die neuen auch sein. Der Ansatz ändert sich nicht.

Alles in allem habe ich alles, wie ich finde, mehr als vernünftig und logisch dargelegt. Wenn jemand im Tank ist, kann ich nicht helfen.

 
Stanislav Korotky:

Wenn die alten Funktionen nicht in Ordnung sind, werden es die neuen auch sein. Der Ansatz ändert sich nicht.

Die Frage ist, ob sie das nicht können oder nicht wollen? Es sieht so aus, als könnten sie das nicht.
 
Slawa:

Mit anderen Worten, die Reihenfolge der Ausführung von OnInit und OnDeinit des Indikators bei der Änderung der Symbol-Periodedes Charts sollte niemanden stören

OnInit startet den Timer, onDeinit löscht ihn. Niemand weiß, was das Ergebnis einer falschen Warteschlange ist.

Unangenehmer Fehler, der von den Entwicklern eklatant ignoriert wird

 
Комбинатор:

Init startet den Timer, deinit löscht ihn. Aufgrund der falschen Warteschlange wissen Sie nicht, was los ist.

Ein böser Fehler, der von den Entwicklern eklatant ignoriert wird

Die Warteschlange ist unzweideutig.
 
fxsaber:
Der Auftrag ist eindeutig.

Wenn Sie dief ändern.

Wenn die Indikatoren noch Müll in den Puffern von der alten TF haben, sind vielleicht auch die Timer betroffen.

Grund der Beschwerde: