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
Entwickler, Sie haben irgendwo einen Fehler.
Sehen Sie sich den Screenshot von Comment nach dem Schließen des Terminals und dem Öffnen nach 1 Minute an.
Anzahl der initialisierten Elemente und dass das erste, zweite, dritte und vierte Element des Puffers leer ist.
Der Indikator zählt nur den 0-ten Puffer. Warum also 2 Kerzen?
Entwickler, Sie haben irgendwo einen Fehler.
Sehen Sie sich den Screenshot von Comment nach dem Schließen des Terminals und dem Öffnen nach 1 Minute an.
Anzahl der initialisierten Elemente und dass das erste, zweite, dritte und vierte Element des Puffers leer ist.
Der Indikator zählt nur den 0-ten Puffer. Warum also 2 Kerzen?
Denn wenn Sie einen neuen Balken analysieren, prüfen Sie nicht die Anzahl der Balken, sondern beschränken sich darauf, die Zeit zu prüfen. Wenn Sie das Terminal starten oder die Verbindung mit dem Server während des Vorgangs unterbrechen, kommt ein Häkchen, bevor die fehlenden (zum vollständigen Verlauf) Balken ankommen. Bei diesem Tick wird eine neue Kerze erstellt, aber es gibt eine Lücke (fehlender Verlauf) zwischen ihr und dem Verlauf im Terminal, der vom Server heruntergeladen und in das System eingefügt wird, und da Sie die Anzahl der Balken nicht analysieren, werden Sie denken, dass es bei der nächsten Berechnung keinen neuen Balken gibt, und dann erscheint die zweite Kerze. Nach dem Öffnen einer neuen Leiste wird diese verschwinden.
Und es spielt keine Rolle, dass beim Deinitieren der Nullabgleich erfolgt, wenn das Terminal geschlossen ist?
Lassen Sie einen Testindikator laufen, der die Anzahl der Balken ausgibt.
Dies wird im Protokoll ausgedruckt.
Vielleicht sagt Ihnen das, wo das Problem herkommt...
Bitte fragen Sie die Entwickler nach einer einfachen Antwort.
Wird die Funktion DeInit() in den an das Diagramm angehängten Programmen ausgeführt, wenn das Terminal geschlossen wird?
Streng genommen, nein.
OnDeinit wird ausgeführt. DeInit wird nur ausgeführt, wenn Sie es explizit von OnDeinit aus aufrufen.
Wenn Sie sich auf die alte Funktion deinit beziehen, bedenken Sie bitte, dass bei Funktionsnamen zwischen Groß- und Kleinschreibung unterschieden wird. Das heißt, deInit ist eine unbekannte Funktion, deinit ist ein Standard-Einstiegspunkt bei der Deinitialisierung (wie OnDeinit)
Und es spielt keine Rolle, dass bei Deinit der Nullabgleich stattfindet, wenn das Terminal geschlossen ist?
Wen interessiert das? Wenn das Terminal geschlossen wird, werden diese Puffer nicht mehr benötigt, da sie sofort freigegeben werden, wenn das Programm entladen wird, was unmittelbar nach OnDeinit geschieht
Versuchen Sie einfach, den Zeitrahmen zu ändern. OnDeinit wird funktionieren, die Puffer bleiben erhalten (weil das Programm in diesem Fall nicht entladen wird), aber niemand garantiert, dass ihr Inhalt aus dem "Vorleben" stammt
Lesen Sie endlich die Dokumentation! https://docs.mql4.com/ru/runtime/running und https://docs.mql4.com/ru/runtime/event_fire#d einit
Wen interessiert das? Wenn Sie das Terminal schließen, werden diese Puffer nicht mehr benötigt, da sie sofort freigegeben werden, wenn das Programm entladen wird, was unmittelbar nach OnDeinit geschieht
Versuchen Sie einfach, den Zeitrahmen zu ändern. OnDeinit wird funktionieren, die Puffer bleiben erhalten (da das Programm in diesem Fall nicht entladen wird), aber niemand garantiert, dass ihr Inhalt aus dem "Vorleben" stammt
Lesen Sie endlich die Dokumentation! https://docs.mql4.com/ru/runtime/running und https://docs.mql4.com/ru/runtime/event_fire#d einit
In meinem Fall werden die Puffer also gegabelt, wenn der Graph wieder geöffnet wird?
Sie haben keine Pufferbifurkation.
So füllen Sie Ihren Puffer selbst auf. Das erste Mal, wenn Sie es zeichnen; das zweite Mal, wenn Sie einen Teil der Daten erhalten. Beide Male arbeiten Sie mit demselben Time[0]-Wert.
Sie haben keinen Puffersplit.
So füllen Sie Ihren Puffer selbst auf. Das erste Mal beim Rendering und das zweite Mal beim Eintreffen der Daten. Beide Male arbeiten Sie mit demselben Time[0]-Wert.
GUT.
Bitte korrigieren Sie die englische Hilfe und das war's.
Auch die englische Hilfe sagt, dassArrayInitialize nichts zurückgibt.