Sie verpassen Handelsmöglichkeiten:
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Registrierung
Einloggen
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.
Wenn Sie kein Benutzerkonto haben, registrieren Sie sich
Dieses Problem ist gelöst wie zwei Finger... Weißt du, was...
In OnDeinit muss der Grund für die Deinitialisierung angegeben werden, bevor das Objekt gelöscht wird... Wenn es sich nicht um eine Periodenänderung handelt, wird das Objekt gelöscht. UND DAS WAR'S...
Ja, ich kann nicht löschen einige Objekt oder Ressource bei TF ändern, ich kann sogar einige kleine Arrays durch Objekt-Ressource zu speichern, und schreiben in Ressource Informationen über TF ändern, aber der Punkt istWie informiere ich das Gerät darüber, dass sich der Zeitrahmen geändert hat und die alten Daten gelesen werden sollen, nachdem das Gerät in einem neuen Zeitrahmen ausgeführt worden ist? Ist das nicht falsch?
Welche Art von Logik ist verdorben?
Wenn Sie den Zeitrahmen ändern, wird eine neue Kopie des Indikators erstellt, die nichts über die vorherige Kopie weiß. Für eine bestimmte Zeit (sehr kurz) existieren beide Kopien des Indikators parallel. Dann wird die vorherige Kopie entladen.
Dokumentation lesen https://www.mql5.com/ru/docs/runtime/running
Ich habe die Beschreibung des Links gelesen, aber solche Informationen, wie Sie sie gegeben haben, nicht gefunden. Und wenn das wirklich so ist, ist das ein großes Problem für die Entwickler von Indikatoren. Es ist sehr seltsam und sehr schlecht, dass eine solche Logik für das Nachladen von Indikatoren angenommen wird, wenn Sie den Zeitrahmen ändern. Warum müssen zwei Kopien desselben Indikators im Speicher vorhanden sein? Wer profitiert davon? Was bringt sie? Es wäre logischer, die Ausführung einer Kopie des Indikators zu beenden, sie zu entladen und erst dann die nächste Kopie zu laden.
Und das ist ALLES!?
Ich habe experimentiert und diesen Grundcode (REASON_CHARTCHANGE) so oft wie möglich verwendet. Und was nützt es, wenn alle Variablen wieder auf ihren ursprünglichen Zustand gesetzt werden, und OnDeinit nach OnInit einer neuen TF ausgeführt werden kann
Slava hat diese Frage beantwortet, neuer Indikator, neue Berechnungen. Und das ist fair.
Und offenbar wird dieses Problem nie gelöst werden.
Und ich habe Vertrauen in das Entwicklungsteam, es sind tolle Leute, die unglaublich viel geleistet haben und noch mehr leisten werden. Ich bin nur noch nicht dazu gekommen, es zu tun. Stimmt, man muss immer wieder Rückmeldungen von ihnen bekommen, wenn sie sich mit Schnickschnack beschäftigen. :))
Meine Aufgabe ist es, sie davon zu überzeugen, dass es getan werden muss. Obwohl ich nicht ausschließe, dass sie mich davon überzeugen werden, dass es besser ist, es nicht zu tun, verstehe ich vielleicht etwas nicht.
Und ich habe Vertrauen in das Entwicklungsteam, es sind großartige Leute, die unglaublich viel getan haben und noch mehr tun werden. Ich habe mich nur noch nicht dazu durchgerungen, es zu tun. Aber ich muss mir von ihnen immer ein Feedback mit Tamburinen holen. :))
Meine Aufgabe ist es, sie davon zu überzeugen, dass es getan werden muss. Obwohl ich nicht ausschließe, dass sie mich davon überzeugen werden, dass es besser ist, es nicht zu tun, verstehe ich vielleicht etwas nicht.
Slawa, was bedeutet die Formulierung in der Dokumentation"Librariesdon't handle any events"?
Sehr vage
- Bei Inite wird die Farbe des Hauptdiagramms auf transparent gesetzt.
Ich zeichne mein eigenes Diagramm (nach meinen Parametern)
Ich möchte, dass die Farbe des Hauptdiagramms wiederhergestellt wird, nachdem ich den Indikator entfernt habe.
- In DeInit stelle ich die Farbe des Hauptdiagramms wieder her
Wenn ich die TF ändere, meine ich zuerst DeInit (die Farbe wiederherstellen), und dann Init (wieder transparent werden)
Die Ausführung der Befehle erfolgt nicht sequentiell, sondern in regelmäßigen Abständen, wenn die TF
In regelmäßigen Abständen wird das Hauptdiagramm (mit wiederhergestellter Farbe) mit meinem Indikator überlagert.
Hier ist zum Beispiel eine "logische Aufschlüsselung".
Vielleicht sollte man versuchen, grafischen Objekten den TF-Zeitraum als Bestandteil ihres Namenspräfixes zuzuweisen,
und dann etwas wie dieses anwenden:
- Bei Inite wird die Farbe des Hauptdiagramms auf transparent gesetzt.
Ich zeichne mein eigenes Diagramm (nach meinen Parametern)
Ich möchte, dass die Farbe des Hauptdiagramms wiederhergestellt wird, nachdem ich den Indikator entfernt habe.
- In DeInit stelle ich die Farbe des Hauptdiagramms wieder her
Wenn ich die TF ändere, meine ich zuerst DeInit (die Farbe wiederherstellen), und dann Init (wieder transparent werden)
Die Ausführung der Befehle erfolgt nicht sequentiell, sondern in regelmäßigen Abständen, wenn die TF
In regelmäßigen Abständen wird das Hauptdiagramm (mit wiederhergestellter Farbe) mit meinem Indikator überlagert.
Hier ist zum Beispiel eine "logische Aufschlüsselung".
Und das ist ALLES!?
Ich habe experimentiert und diesen Grundcode (REASON_CHARTCHANGE) so oft wie möglich verwendet. Und was nützt es, wenn alle Variablen wieder auf den ursprünglichen Zustand gesetzt werden, und OnDeinit nach OnInit der neuen TF ausgeführt werden kann
Versuchen Sie, das Terminal auf Version 1065 zu aktualisieren. In früheren Versionen gab es einen Fehler bei der Neuinitialisierung während des Zeitrahmenwechsels. Kann helfen :)
https://www.mql5.com/ru/forum/187690
Versuchen Sie, das Terminal auf Version 1065 zu aktualisieren. Bei früheren Versionen trat ein Fehler bei der Neuinitialisierung auf, wenn der Zeitrahmen geändert wurde. Könnte helfen :)
https://www.mql5.com/ru/forum/187690