Berechnen Sie es also in OnInint()
In MQL4 habe ich Daten aus einer Datei in der Inite gelesen, aber das hat sehr lange gedauert. Ich weiß nicht, ob das Inite bei jedem neuen Durchgangverwendet wird oder nicht?
Ich habe im Forum gefunden, dass jedes Mal, wenn das Inite benutzt wird, d.h. das Array neu berechnet wird.
Nein, natürlich nicht.
Ups... Ich habe nicht genau gelesen und die Frage missverstanden.
In MQL4 habe ich Daten aus einer Datei in der Inite gelesen, aber das hat sehr lange gedauert. Ich weiß nicht, ob das Inite bei jedem neuen Durchgangverwendet wird oder nicht?
Ich habe im Forum gefunden, dass jedes Mal, wenn das Inite verwendet wird, d.h. das Array neu errechnet wird.
Es ist elementar. Sie überprüfen die Größe des Arrays bei jedem Durchlauf. Wenn das Feld leer ist oder das Berechnungsflag falsch ist, wird es neu berechnet:
if(ArraySize(optimize_array) == 0) CalculateArray();
Es ist elementar. Sie überprüfen die Größe des Arrays bei jeder Ausführung. Wenn das Feld leer ist oder das Berechnungsflag falsch ist, wird es neu berechnet:
Ich habe es aber noch nicht überprüft. Aber ich frage, und dass das Array aus dem ersten Durchgang gespeichert werden (wo es berechnet wird) und wird in den nachfolgenden Durchgängen zur Verfügung stehen?
Ich habe es aber noch nicht getestet. Aber ich werde fragen, und dass das Array wird aus dem ersten Durchgang (wo es berechnet wird) gespeichert werden und wird für die nachfolgenden Durchgänge zur Verfügung stehen?
Das wird es nicht. Sie müssen sie neu berechnen oder in einer Datei speichern und auslesen.
Ich stehe also vor einem Dilemma: Wie kann man es möglich machen, einmal aus einer Datei zu lesen, ein Array damit zu füllen und dieses Array bei allen Durchläufen zu verwenden.
Ich brauche es, um die Optimierungszeit zu reduzieren, weil das Array immer unverändert bleibt und es teuer ist, es jedes Mal zu lesen.
Ich stehe also vor einem Dilemma: Wie kann man es möglich machen, einmal aus einer Datei zu lesen, ein Array damit zu füllen und dieses Array bei allen Durchläufen zu verwenden.
Ich brauche dies, um die Optimierungszeit zu reduzieren, weil das Array immer unverändert bleibt und es teuer ist, es jedes Mal zu lesen.
Anhang zu den Ressourcen. Fragen Sie nicht, wie. Ich habe den Quellcode nicht geschrieben.
Sie muss in der Einleitung gelesen werden. Sie wird aber nicht von der Festplatte, sondern aus dem Speicher gelesen. Das Array befindet sich also in der Tat im Speicher.
In MT5 gibt es ein Ereignis zum Starten der Optimierung, in dem das Array berechnet, in einer Datei gespeichert und im Init des EAs gelesen wird.
- 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.
Es gibt ein Feld, das sich während der gesamten Optimierung nicht ändert. Ist es möglich, sie einmal zu berechnen und nur bei jedem Durchgang während der gesamten Optimierung auf sie zurückzugreifen, ohne sie erneut zu berechnen?