Ich habe einfach nicht die Geduld, solche Fragen zu beantworten.
RefreshRates
Осуществляет обновление данных в предопределенных переменных и массивах-таймсериях.
Was vordefinierte Variablen und Zeitreihen-Arrays sind, können Sie in der Dokumentation nachlesen.
- docs.mql4.com
Ich habe einfach nicht die Geduld, solche Fragen zu beantworten.
Außerdem können Sie in der Dokumentation über vordefinierte Variablen und Zeitreihen-Arrays nachlesen.
D.h. die Daten der Funktion iClose() werden von RefreshRates() in keiner Weise beeinflusst. Wie können wir dann erreichen, dass die FunktioniClose() aktualisierte Informationen ausgibt?
Null. Ein willkürlicher Zeitrahmen.
Ehrlich gesagt, bin ich überrascht... und das ist noch milde ausgedrückt. Ich dachte, iClose() holt sich Werte vom Server des Brokers, aber nein... RefreshRates(); aktualisiert die von iClose() erhaltenen Werte
/********************Script program start function*******************/ void OnStart() { for(int i = 0; i < 10; i++) { Print(Bid, " *** ", iClose(_Symbol, PERIOD_CURRENT, 0)); Sleep(1000); RefreshRates();// Без RefreshRates(); значения iClose(_Symbol, PERIOD_CURRENT, 0) не меняются… // То, что без RefreshRates(); не меняются значения Bid, это понятно и нормально… } }/******************************************************************/
Hier ist das Ergebnis der Skriptausführung
2021.02.15 11:39:35.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:34.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:33.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:32.559 00 EURUSD,M5: 1.21375 *** 1.21375 2021.02.15 11:39:31.559 00 EURUSD,M5: 1.2138 *** 1.2138 2021.02.15 11:39:30.559 00 EURUSD,M5: 1.21378 *** 1.21378 2021.02.15 11:39:29.559 00 EURUSD,M5: 1.21379 *** 1.21379 2021.02.15 11:39:28.559 00 EURUSD,M5: 1.21378 *** 1.21378 2021.02.15 11:39:27.559 00 EURUSD,M5: 1.21379 *** 1.21379 2021.02.15 11:39:26.559 00 EURUSD,M5: 1.21379 *** 1.21379
Nun, ok... Ich werde diese Funktion einfach im Hinterkopf behalten und RefreshRates() einfügen, wenn nötig;
ps; Und iClose(_Symbol, PERIOD_CURRENT, 0) ändert sich in MT5.
Ehrlich gesagt, bin ich überrascht... und das ist noch milde ausgedrückt. Ich dachte, iClose() erhält Werte vom Server des Brokers, aber nein... RefreshRates(); aktualisiert die von iClose() erhaltenen Werte
Hier ist das Ergebnis der Skriptausführung
Nun, OK... Ich persönlich werde diese Funktion einfach im Hinterkopf behalten und RefreshRates() bei Bedarf einfügen;
Wenn ich den Zeitrahmen auf einen anderen als den aktuellen ändere, werden die Daten auch mit RefreshRates() nicht mehr rechtzeitig aufgefrischt. So produzieren iClose und andere grundlegende Funktionen in MT4 einen irrelevanten Unsinn. Ich bin mir sicher, dass 80% der Infos diese einzigartigen Eigenschaften von MT4 nicht berücksichtigen. Wie soll man leben?)))
Ehrlich gesagt, bin ich überrascht... und das ist noch milde ausgedrückt. Ich dachte, iClose() erhält Werte vom Server des Brokers, aber nein... RefreshRates(); aktualisiert die von iClose() erhaltenen Werte
Hier ist das Ergebnis der Skriptausführung
Nun, ok... Ich werde diese Funktion einfach im Hinterkopf behalten und RefreshRates() einfügen, wenn nötig;
ps; Und iClose(_Symbol, PERIOD_CURRENT, 0) ändert sich in MT5.
Was ist die Lösung? Noch mehr Krücken? Z.B. eine Tick-Historie führen und alle Zeitrahmen in EAs selbständig neu berechnen. Das ist jenseits von Gut und Böse))).
- Freie Handelsapplikationen
- Über 8.000 Signale zum Kopieren
- Wirtschaftsnachrichten für die Lage an den Finanzmärkte
Sie stimmen der Website-Richtlinie und den Nutzungsbedingungen zu.