
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
Noch einmal. Das steht nirgendwo. Das ist das Wichtigste. Zweitens, warum ist es dann irreführend, wenn zuerst ein Fehlercode 4066 angezeigt wird und dann nicht?
Die Daten werden in Batches gepumpt und dann vom Terminal verarbeitet, und da Sie an einem Timer arbeiten, werden Sie angehalten. Ich sehe es nirgendwo explizit, aber viele Programmierer, die MTF-Anwendungen schreiben, wissen in der Regel darüber Bescheid, und ich habe Ihnen sofort davon erzählt.
https://docs.mql4.com/ru/series/timeseries_access gründlich gelesen.
Nun, oben haben Sie uns bereits eine Variante zur Überprüfung der Zugänglichkeit der Historie genannt. Sie ist nicht perfekt, aber sie ist einfach und offensichtlich.
Sollte diese Variante nicht funktionieren, prüfen Sie bitte wie folgt.
Die Daten werden in Portionen gepumpt und dann vom Terminal verarbeitet, und da Sie sich in einem Zeitfenster befinden, werden Sie angehalten. Ja, es wird nirgendwo ausdrücklich erwähnt, aber viele Programmierer, die MTF-Anwendungen schreiben, wissen in der Regel darüber Bescheid, und ich habe es Ihnen gleich gesagt.
https://docs.mql4.com/ru/series/timeseries_access gründlich gelesen.
Nun, oben haben Sie uns bereits eine Variante zur Überprüfung der Zugänglichkeit der Historie genannt. Es ist nicht perfekt, aber es ist einfach und offensichtlich.
Wo sind die Beweise für das "Innehalten"?
Ich habe ihn sorgfältig gelesen (und habe ihn schon vorher gelesen). Ich bin mir bewusst, dass Daten (insbesondere ältere TFs) nicht immer sofort verfügbar sind. Kein Problem. Aber warum gibt die Funktion SeriesInfoInteger() dann keinen Fehler zurück? Hier ist die Frage!
Angenommen, die Anfrage fällt auf eine Pause/Swap/Update/Pause usw., dann soll sie den Fehlercode != 0 zurückgeben. Und es wird keine Probleme geben!
Und oben haben Sie bereits die Möglichkeit gegeben, die Zugänglichkeit der Geschichte zu überprüfen. Es ist nicht perfekt, aber es ist einfach und überschaubar.
Zu diesem Punkt hat @Ihor Herasko bereits geantwortet.
Zu diesem Punkt wurde @Ihor Herasko oben bereits geantwortet.
Ich habe meine Version des Tests oben angegeben. Warum so Frage an die Entwickler, aber dieser Punkt ist seit langem bekannt!
Ich werde auf jeden Fall Ihre Version des Tests ausprobieren und die Ergebnisse mitteilen.
Ich werde auf jeden Fall Ihre Version des Tests ausprobieren und über die Ergebnisse berichten.
Zunächst eine Antwort von @Ihor Herasko. Code für die Wiedergabe:
Ergebnis:
Laut den Protokolleinträgen. Das Terminal wurde um 14:25 Uhr abgeschaltet. Als nächstes wird um 14:30 Uhr eingeschaltet. Wir überprüfen die Uhrzeit von Takt M15. Wir haben mit TF M1 begonnen. Der Indikator (obiger Code) zeigte die tatsächliche Öffnungszeit um 12:15 Uhr an (Terminalzeit, lag 2 Stunden hinter meiner Ortszeit zurück). Das Ergebnis hätte 12:30 sein müssen! Fazit: Der Fehler ist vorhanden. Und diese von @Ihor Herasko vorgeschlagene Methode funktioniert nicht.
Bitte melden Sie sich! Das funktioniert bei mir! Aber es kann alle möglichen Fallstricke geben, wenn es nicht funktioniert, werden wir überlegen, was wir sonst tun können.
Ich werde mich abmelden. Code:
Ergebnis:
Ich habe das Terminal um 14:48 Uhr ausgeschaltet und um 15:01 Uhr wieder eingeschaltet. Sie hätten die Uhrzeit um 13.00 Uhr erfahren müssen. Ich habe 12:45 Uhr. Haben Sie noch Fragen?
Ich habe TF von M1 auf M5 geändert und das richtige Ergebnis erhalten:
Ich glaube, ich hab's! Wird der Indikator sofort mit dem Terminal gestartet? Wenn ja, vor der Überprüfung warten auf eine Verbindung zum Server IsConnected() Sie haben eine sehr schnelle Timer hat es keine Zeit zu synchronisieren!
Oder tun Sie dies
Sie müssen jedoch den Unterschied zwischen der Serverzeit und der Ortszeit berücksichtigen. Schreiben Sie uns die Ergebnisse!