MetaTrader 5 build 2485: iCustom-Verbesserungen und Gesamtoptimierung in MQL5

Optimierte und erheblich beschleunigte Bearbeitung der Balkenhistorie für kundenspezifische Finanzinstrumente. Die Verbesserung betrifft auch die Funktion CustomRatesUpdate

5 Juni 2020

Terminal

  1. Optimierte und erheblich beschleunigte Bearbeitung der Balkenhistorie für kundenspezifische Finanzinstrumente. Die Verbesserung betrifft auch die Funktion CustomRatesUpdate.
  2. Der Export von nutzerdefinierten Symboleinstellungen in eine JSON-Datei wurde korrigiert.
  3. Fehler in den Absturz-Logs behoben.

MQL5

  1. Diese Version enthält einen überarbeiteten Algorithmus zum Laden nutzerdefinierter Indikatoren über iCustom.

    Wenn der Backslash '\' vor dem Namen des nutzerdefinierten Indikators angezeigt wird, wird die EX5-Indikator-Datei relativ zum MQL5-Stammordner durchsucht. Bei einem Aufruf von iCustom(Symbol(), Periode(), "\FirstIndicator"...) wird daher der Indikator MQL5\FirstIndicator.ex5 geladen. Wenn die Datei unter diesem Pfad nicht gefunden wird, wird der Fehler 4802 (ERR_INDICATOR_CANNOT_CREATE) ausgeworfen.

    Wenn der Pfad nicht mit einem Backslash '\' beginnt, wird der Indikator auf der Grundlage der folgenden Reihenfolge von Aktionen gesucht und geladen:

    • Die EX5-Datei wird im gleichen Ordner gesucht, in dem sich auch die EX5-Datei des aufrufenden Programms befindet. Beispielsweise befindet sich der CrossMA.EX5 Expert Advisor unter MQL5\Experts\MyExperts. Er enthält den folgenden Aufruf: iCustom(Symbol(), Periode(), "SecondIndicator"...). In diesem Fall wird der Indikator unter MQL5\Experts\MyExperts\SecondIndicator.ex5 gesucht.
    • Wenn der Indikator nicht gefunden wird, wird eine Suche relativ zum Stammverzeichnis des Indikators durchgeführt: MQL5\Indikatoren. Es wird also die Datei MQL5\Indicators\SecondIndicator.ex5 gesucht. Wenn der Indikator nicht gefunden wird, gibt die Funktion INVALID_HANDLE zurück und der Fehler 4802 (ERR_INDICATOR_CANNOT_CREATE) wird ausgeworfen.

    Wenn der Indikatorpfad in einem Unterverzeichnis wie MyIndicators\ThirdIndicator gesetzt ist, beginnt die Suche im Ordner des aufrufenden Programms (der Expert Advisor befindet sich im Ordner MQL5\Experts\MyExperts) unter dem folgenden Pfad: MQL5\Experts\MyExperts\MyIndicators\ThirdIndicator.ex5. Im Falle eines Fehlschlags wird der Ordner MQL5\Indicators\MyIndicators\ThirdIndicator.ex5 durchsucht. Bitte beachten Sie, dass das Pfad-Trennzeichen als doppelter Backslash '\\' angegeben werden sollte. Zum Beispiel: iCustom(Symbol(), Period(), "MyIndicators\\ThirdIndicator"...)

    Außerdem, wenn ein nutzerdefinierter Indikatoraufruf über iCustom im Programmcode gefunden wird, fügt der Compiler implizit die Direktive "#property tester_indicator XXX" hinzu, wenn sie nicht angegeben ist.

  2. Optimierte und erheblich beschleunigte Funktion HistorySelect, die es erlaubt, die Historie von Geschäften und Aufträgen abzufragen.
  3. Ein gelegentlicher Fehler bei der Tick-Anforderung über die Funktion CopyTicksRange wurde behoben. Der Fehler führte dazu, dass der Bereichsanfang auf den Tagesanfang und nicht auf die angegebene Zeit gesetzt wurde.
  4. Optimierte und signifikant beschleunigte Anzeige von Warnhinweisen mit der Funktion Alert.
  5. Neue Eigenschaft SYMBOL_TIME_MSC für die letzte Tick-Zeit des Symbols in Millisekunden. Die Eigenschaft kann mit der Funktion SymbolInfoInteger abgerufen werden.