Neuer MetaTrader 5 Build 5570: ONNX- und Chart-Rendering-Verbesserungen

In dieser Version haben wir die ONNX-Unterstützung in MQL5 verbessert. Modelle laufen jetzt deutlich schneller auf GPUs mit CUDA-Unterstützung

29 Januar 2026

Terminal

  1. Die Textdarstellung in den Charts in den Umgebungen von macOS und Linux mit Wine wurde korrigiert.
  2. Das Zeichnen von Indikatoren, die als Linien mit variablen Farben angezeigt werden, wurde korrigiert.
  3. Das Rendering von Objekten der Art Text-Label und Schaltfläche wurde korrigiert.
  4. Die Formatierung bestimmter Statistiken in den Handelsberichten wurde korrigiert, die zuvor falsch gerundet werden konnten.
  5. Die Berechnung von „Gesamtgewinn“ und „Gesamtverlust“ in Handelsberichten wurde überarbeitet. Diese Werte umfassen nun auch Provisionen und Swaps.
  6. Das Speichern des Status der Symbolleiste für abgekoppelte Charts wurde korrigiert. Ausgeblendete Symbolleisten konnten nach einem Neustart der Plattform wieder auftauchen.
  7. Das Laden der Einstellungen von nutzerdefinierten Handelsinstrumenten aus JSON-Dateien wurde korrigiert. Insbesondere Swap-Einstellungen, Handelssitzungen und Tick-Werte konnten fehlerhaft importiert werden.
  8. Instrument und Zeitrahmen werden nun im Fenstertitel angezeigt, wenn ein Skript in einem Chart ausgeführt wird.



    Die Anzeige von Handelsinstrument und Zeitrahmen im Fenstertitel wurde hinzugefügt, wenn ein Skript auf einem Chart ausgeführt wird.


  9. Die Duplizierung von Handelsinstrumenten im Tooltip, der bei der Suche nach Instrumenten im Market Watch angezeigt wird, wurde behoben.
  10. Die Darstellung von Wingdings-Schriften in Charts wurde korrigiert.
  11. Das Rendering von Indikatoren, die als farbige Kerzen (DRAW_COLOR_CANDLES) und farbige Linien (DRAW_COLOR_LINE) angezeigt werden, wurde korrigiert.
  12. Es wurde die Ausgabe einer Protokollmeldung hinzugefügt, die anzeigt, dass auf dem Server des Brokers eine veraltete Version läuft. Wenn die Serverversion niedriger ist als 5200, die vor sechs Monaten veröffentlicht wurde, wird eine Warnung angezeigt:
    outdated server build - must be at least 5200, contact your broker please.
    Die Meldung wird nur zu Informationszwecken angezeigt und hat keinen Einfluss auf die Möglichkeit, eine Verbindung zum Server herzustellen.
  13. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Die ONNX-Bibliothek wird jetzt beim ersten Lauf eines MQL5-Programms geladen, das ONNX verwendet, und nicht mehr mit der Plattform. Die Bibliothek wird automatisch aktualisiert.
  2. Die Unterstützung von CUDA wurde für ONNX hinzugefügt. Wenn Ihre Grafikkarte diese Technologie unterstützt, wird die Leistung der Modellinferenz erheblich verbessert. Wir empfehlen dringend, die NVIDIA-Treiber zu aktualisieren, um Stabilität und Leistung zu verbessern.
    Die Berechtigungen für die CUDA-Nutzung können in den Plattformeinstellungen verwaltet werden: 


    Verwalten von CUDA in den Plattformeinstellungen


  3. Aktualisierte Flags in der Enumeration ENUM_ONNX_FLAGS. Diese Flags werden beim Erstellen und Ausführen von ONNX-Modellen verwendet:

    Protokollierung
    Anstelle des veralteten ONNX_DEBUG_LOGS werden nun die folgenden Logging-Flags verwendet:

    • ONNX_LOGLEVEL_VERBOSE – alle Meldungen protokollieren.
    • ONNX_LOGLEVEL_INFO – Protokollierung von Informationsmeldungen, Warnungen und Fehlern. Es ersetzt das veraltete ONNX_DEBUG_LOGS.
    • ONNX_LOGLEVEL_WARNING – protokolliert Warnungen und Fehler. Wird standardmäßig verwendet.
    • ONNX_LOGLEVEL_ERROR – nur Fehler protokollieren.

    Verwaltung von CUDA und GPU
    Das Flag ONNX_CUDA_DISABLE wurde entfernt. Verwenden Sie stattdessen das neue Flag ONNX_USE_CPU_ONLY. Wenn diese Option aktiviert ist, wird nur die CPU für die Modellausführung verwendet.

    Es wurden Flags hinzugefügt, um das GPU-Gerät auszuwählen, auf dem das Modell ausgeführt werden soll:

    • ONNX_GPU_DEVICE_0
    • ONNX_GPU_DEVICE_1
    • ONNX_GPU_DEVICE_2
    • ONNX_GPU_DEVICE_3
    • ONNX_GPU_DEVICE_4
    • ONNX_GPU_DEVICE_5
    • ONNX_GPU_DEVICE_6
    • ONNX_GPU_DEVICE_7

    Verwenden Sie diese Flags, wenn das System über zwei oder mehr CUDA-fähige Geräte verfügt. Wenn mehrere Flags angegeben sind, wird das Gerät mit dem niedrigsten Index ausgewählt.

    Modell-Profilierung
    Wir haben das Flag ONNX_ENABLE_PROFILING für die Profilierung von ONNX-Modellen hinzugefügt.

    Wenn ein Modell mit aktiviertem Flag gestartet wird, wird eine Profiling-Berichtsdatei mit dem Namen: [EX5-Dateiname]_[Datum]_[Zeit].json im Ordner /MQL5/Files/OnnxProfileReports/ erstellt.

  4. Das Limit für Dateien, die als Ressource in ein Programm aufgenommen werden können, wurde erhöht. Die neue Grenze liegt bei 1 GB, so dass Sie auch große ONNX-Modelle in Projekte einbinden können. 
  5. Verbesserte Stabilität für OpenCL-Operationen.
  6. Die Methode ReplaceToZero wurde hinzugefügt. Sie ersetzt kleine Werte in einer Matrix/einem Vektor durch Nullwerte und gibt die Anzahl der ersetzten Elemente zurück.
  7. OpenBLAS wurden neue Methoden hinzugefügt:

    • FactorizationLDLComplexSyRaw – berechnet die Faktorisierung einer komplexen Matrix unter Verwendung der Bunch-Kaufman-Methode zur diagonalen Pivotierung.
    • LDLComplexSyLinearEquationsSolution – löst ein System linearer Gleichungen A * X = B mit einer komplexen, symmetrischen, unbestimmten Matrix unter Verwendung der Faktorisierung A = U**T * D * U oder A = L * D * L**T, berechnet durch FactorizationLDLComplexSyRaw, mit mehreren rechten Seiten.
    • LDLComplexSyInverse – berechnet die Inverse einer komplexen, symmetrischen, unbestimmten Matrix unter Verwendung der Faktorisierung A = U**T * D * U oder A = L * D * L**T, berechnet durch FactorizationLDLComplexSyRaw.
    • LDLComplexSyCondNumReciprocal – schätzt den Kehrwert der Bedingungszahl einer reellen symmetrischen oder komplexen hermiteschen unbestimmten Matrix A unter Verwendung der LDLT-Faktorisierung, die durch FactorizationLDLRaw berechnet wird.

  8. Die Funktion ColorToPRGB wurde hinzugefügt. Es wandelt den Farbtyp in uint um, um eine PRGB-Farbdarstellung zu erhalten. Dieses Format wird beim Erstellen von Grafikressourcen, beim Rendern von Text und in der Standardbibliothek der Klasse CCanvas verwendet, wenn mit dem Farbformat COLOR_FORMAT_ARGB_RAW gearbeitet wird.
    uint  ColorToPRGB(
       color  clr,          // the color to be converted, in 'color' format
       uchar  alpha=255     // the alpha channel that controls color transparency
    );
    Die PRGB-Farbe wird nach der folgenden Formel berechnet:
    R = R * A / 255
    G = G * A / 255
    B = B * A / 255
    A = A
  9. Die programmatische Texteinstellung für die Objekte OBJ_LABEL, OBJ_TEXT, OBJ_BUTTON und OBJ_EDIT wurde korrigiert. Unter bestimmten Bedingungen wurde der Text möglicherweise nicht angezeigt.
  10. Das Setzen von Farben für grafische Objekte mit ObjectSetInteger wurde korrigiert. Der Wert clrNONE konnte bisher ignoriert werden.
  11. Die Funktion Bars ist eingefroren, wenn auf dem Server keine Kurshistorie verfügbar ist.
  12. Die Suche nach globalen Variablen in Scopes wurde korrigiert. Zuvor konnten Variablen innerhalb eines Namensraums nicht denselben Namen haben wie Variablen auf globaler Ebene.
  13. Die Funktion des letzten Attributs wurde korrigiert. Der Versuch, eine als „final“ gekennzeichnete Funktion zu überschreiben, führt nun korrekterweise zu einem Compiler-Fehler.
  14. Falsche Compiler-Warnungen wurden behoben, die bei der Verwendung von Funktions-Forward-Deklarationen in eingebundenen *.mqh-Dateien ohne die #import-Direktive auftraten. Der Compiler behandelt solche Deklarationen nun korrekt und benötigt kein #import, wenn die Funktionen nicht aus einer DLL importiert werden.

    Beispiel

    Datei utils.mqh: 
    // Function forward declaration
    double CalcLot(double risk, double stop);
    Datei expert.mq5:
    #include "utils.mqh"
    
    double CalcLot(double risk, double stop)
      {   
       return risk / stop;
      }
    Bisher konnte der Compiler eine Warnung ausgeben, dass der Funktion CalcLot in utils.mqh die Direktive #import fehlt, obwohl die Funktion nutzerdefiniert und im Projektcode implementiert ist. Dieser Code wird nun ohne Warnungen kompiliert. Die #import-Direktive ist nur für Funktionen erforderlich, die tatsächlich aus externen DLLs importiert werden. 

MetaEditor

  1. Ein Fehler bei der Arbeit mit großen Quelldateien (Megabytes) wurde behoben.
  2. Die Anzeige von Enumerationswerten und Namen im Beobachtungsfenster während des Debuggens wurde korrigiert.

Tester

  1. Die Beendigung des Tests von Expert Advisor mit Schleifenfunktion wurde korrigiert. Auch bei Endlosschleifen wird die Ausführung jetzt durch Drücken von „Stop“ sofort angehalten.
  2. Der Aufruf von EventChartCustom während des visuellen Tests wurde korrigiert. Zuvor konnte das Ereignis fälschlicherweise zweimal gesendet werden.
  3. Die Prüfung des „Freeze Levels“ (SYMBOL_TRADE_FREEZE_LEVEL) beim Löschen von neu platzierten schwebenden Aufträgen wurde korrigiert.
  4. Der Export von Daten des Vorwärtstests wurde korrigiert. Beim Exportieren eines Tests, bei dem der Vorwärtsmodus nicht verwendet wurde, konnten manchmal Daten von früheren Vorwärtstests gespeichert werden.

Web-Terminal

  1. Anzeige des ungefähren Gewinns/Verlusts in Geldwert beim Setzen von Stop Loss oder Take Profit auf dem Chart hinzugefügt.


    Anzeige des ungefähren Gewinns/Verlusts in Geldwert hinzugefügt


  2. Korrigierte Anzeige von Symbolspezifikationen für Instrumente mit Sonderzeichen.
  3. Die Anzeige von negativen Preisen in Handelsdialogen wurde korrigiert.
  4. Korrigierte Anzeige der Finanzkennzahlen des Kontos für Fälle, in denen die Kontowährung eine Genauigkeit von mehr als zwei Dezimalstellen hat.