Arbeit mit Ergebnisse der Optimierung

Funktionen für die Organisation benutzerdefinierte Verarbeitung der Ergebnisse der Optimierung im Strategie-Tester. Sie können während der Optimierung in Test-Agenten sowie lokal in Expert Advisors und Skripte aufgerufen werden.

Wenn Sie einen Expert Advisor im Strategie-Tester laufen, können Sie Ihre eigenen Daten-Array auf den einfachen Typen oder einfachen Strukturen (sie enthalten keine Strings, Objekte der Klasse oder Objekte den dynamischen Arrays) erstellen. Dieser Datensatz kann mit Hilfe der Funktion FrameAdd() in einer speziellen Struktur, die ein Frame genannt wird, gespeichert werden. Bei der Optimierung eines Expert Advisor kann jeder Agent eine Reihe von Frames in das Terminal senden. Alle empfangenen Frames werden in der Datei *.MQD im Ordner terminal_directory/MQL5/Files/Tester genannt als Expert Advisor geschrieben. Sie werden in der Reihenfolge wie sie von den Agenten empfangen werden geschrieben. Empfang eines Frames im Client-Terminal dem Testagent erstellt ein Ereignis TesterPass.

Frames können im Speicher des Computers und in einer Datei mit dem angegebenen Namen gespeichert werden. Die MQL5 Sprache setzt keine Einschränkungen für die Anzahl der Frames.

Speicher- und Festplattenplatzbeschränkungen im MQL5 Cloud Network

Für Optimierungen, die im MQL5 Cloud Network ausgeführt werden, gilt folgende Einschränkung: Der Expert Advisor darf nicht mehr als 4 GB an Informationen auf die Festplatte schreiben oder mehr als 4 GB an RAM verwenden. Wird diese Grenze überschritten, kann der Netzwerk-Agent die Berechnung nicht korrekt abschließen, und Sie erhalten kein Ergebnis. Allerdings wird Ihnen die gesamte für die Berechnungen aufgewendete Zeit in Rechnung gestellt.

Wenn Sie Informationen aus jedem Optimierungsdurchlauf benötigen, senden Sie Frames ohne auf die Festplatte zu schreiben. Um die Verwendung von Dateioperationen in Expert Advisors während der Berechnungen im MQL5 Cloud Network zu vermeiden, können Sie die folgende Prüfung verwenden:

   int handle=INVALID_HANDLE;
   bool file_operations_allowed=true;
   if(MQLInfoInteger(MQL_OPTIMIZATION) || MQLInfoInteger(MQL_FORWARD))
      file_operations_allowed=false;
 
   if(file_operations_allowed)
     {
      ...
      handle=FileOpen(...);
      ...
     }

 

Funktion

Aktion

FrameFirst

Verschiebt einen Zeiger der Lesung des Frames auf den Anfang und rücksetzt den zuvor angegebenen Filter

FrameFilter

Setzt den Filter der Lesung des Frames und verschiebt den Zeiger auf den Anfang

FrameNext

Liest einen Frame und verschiebt den Zeiger auf das nächste

FrameInputs

Empfängt Input-Parameter, auf die der Frame gebildet ist

FrameAdd

Fügt einen Frame mit Daten hinzu

ParameterGetRange

Empfängt die Information über den Bereich der Werte und den Schritt der Veränderung für input-Variable bei der Optimierung eines Expert Advisors in Strategie-Tester

ParameterSetRange

Erstellt Regeln für die Verwendung von input-Variable bei der Optimierung eines Expert Advisors in Strategie-Tester: Wert, Schritt der Veränderung, Anfangs-und Endwerte

Sehen Sie auch

Teststatistik, Information über das ausgeführte MQL5-Programm MQL5 Cloud limitations_IT