MetaTrader 5 Build 4570: Verbesserungen der Web-Version und die Integration von OpenBLAS in MQL5

Mit dem Update werden zahlreiche neue Funktionen und Verbesserungen der Webplattform eingeführt. Wir haben einen Fadenkreuzmodus für den Zugriff auf präzise Werte und die Messung von Abständen auf dem Chart sowie einen neuen Linientyp hinzugefügt. Die mobile Version bietet nun die Möglichkeit, zusätzliche Informationen in der Marktübersicht zu aktivieren

27 September 2024

Terminal

  1. Eingeschränkter Zugang zu den MQL5-Funktionen für Handel und Historie, wenn das Konto für ein Signal abonniert ist.

    Wenn ein Signalabonnement auf dem Konto erkannt wird (unabhängig davon, ob das Kopieren im aktuellen Terminal aktiviert ist), sind alle Aufrufe von MQL5-Handelsfunktionen verboten, einschließlich des Empfangs offener Aufträge und Positionen, des Empfangs der Historie und der Durchführung von Handelsoperationen. Eine entsprechende Warnung wird im Journal ausgedruckt:
    „XXX“: Signalabonnement erkannt, Funktionen für Handel und Historie in MQL5 und Python sind deaktiviert.
    Die Einschränkungen gelten auch für die Python-Handelsfunktionen: positions_total, positions_get, orders_total, orders_get, history_orders_total, history_orders_get, history_deals_total, history_deals_get, order_check und order_send.

    Wenn ein Signalabonnement für das Konto gekündigt wird oder Sie eine Verbindung zu einem anderen Konto ohne Signalabonnement herstellen, wird die Beschränkung aufgehoben und die folgende Meldung wird ins Log geschrieben:
    „XXX": kein Signalabonnement erkannt, Funktionen für Handel und Historie in MQL5 und Python sind aktiviert.
    Wenn die Einschränkung für das Konto aktiv ist, geben die MQL5-Funktionen die folgenden Antwortcodes zurück:

    • OrderSend und OrderSendAsync geben RET_REQUEST_AT_DISABLED_CLIENT zurück
    • OrdersTotal und PositionsTotal geben 0 zurück
    • PositionGetSymbol, PositionSelect, PositionSelectByTicket, und PositionGetTicket geben ERR_MQLAPI_TRADE_POSITION_NOT_FOUND zurück
    • OrderGetTicket und OrderSelect liefern ERR_MQLAPI_TRADE_POSITION_NOT_FOUND
    • HistorySelect liefert ERR_MQLAPI_TRADE_DEAL_NOT_FOUND

  2. Korrigiert wurde die optimierte und beschleunigte Abfrage der Tick-Historie und Export in CSV\HTML-Dateien.
  3. Hinzugefügt wurde die Unterstützung von Microsoft Edge WebView2 für die Anzeige von HTML-Inhalten auf der Handelsplattform unter macOS. Im Vergleich zum veralteten MSHTML erweitert die neue Komponente die Möglichkeiten zur Darstellung von Inhalten erheblich, da sie Zugang zu modernen Technologien bietet. Die Umstellung auf WebView2 verbessert das Erscheinungsbild von Market, Signale, VPS und anderen Bereichen, erhöht deren Leistung und schafft reaktionsschnellere Oberflächen.

  4. Das Kontextmenü im internen Mail-Sendefenster wurde korrigiert.
  5. Die Filterung im Dialog zur Auswahl von Handelsinstrumenten wurde korrigiert. Es ist nicht mehr notwendig, zuerst die Namen der Instrumente einzugeben, um abgelaufene Instrumente auszublenden.
  6. Korrigiert wurde die Berechnung der Margin-Anforderungen im Fenster der Kontraktspezifikationen. Der Fehler trat bei den Instrumenten Exchange Stocks und Bonds auf.
  7. Verbesserte Funktion zum Schließen von Massenpositionen für FIFO-Konten. Für diese Konten werden keine inkompatiblen Operationstypen mehr angezeigt, einschließlich der Schließung aller Positionen im Gewinn/Verlust und Positionen gleicher und entgegengesetzter Richtung.
  8. Es wurde ein Problem behoben, bei dem Nutzer keine entgegengesetzten, schwebenden Aufträge auf Konten platzieren konnten, bei denen die Positionsschließung der FIFO-Regel folgt.
  9. Korrigierte Berechnung des Liquidationswertes für Konten mit Positionen aus Börsentermingeschäften.
  10. Korrigierte gleitende Gewinnberechnungen für Positionen auf Exchange Bonds und Exchange MOEX Bonds Instrumente.
  11. Deaktivierung der automatischen Erstellung von Demokonten, wenn die Plattform ohne zuvor angelegte Konten gestartet wird.
  12. Verbesserte Namens- und E-Mail-Überprüfung bei der Registrierung von Konten.
  13. Korrigierte Einschussberechnung für abgesicherte Positionen. Der Fehler konnte in bestimmten Fällen auftreten, wenn eine variable Marge auf dem Konto verwendet wurde (berechnet auf der Grundlage des Volumens/Werts der aktuellen Positionen).
  14. Die Aktualisierung des Status der Schaltfläche „Weiter“ im Dialog zur Eröffnung eines Demokontos wurde behoben. Nach Eingabe des Telefon- oder E-Mail-Bestätigungscodes konnte die Schaltfläche unter bestimmten Bedingungen inaktiv bleiben.
  15. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Es wurde eine native Integration mit der OpenBLAS-Bibliothek für Matrixberechnungen hinzugefügt.

    OpenBLAS ist eine leistungsstarke Open-Source-Bibliothek für lineare Algebra, die BLAS (Basic Linear Algebra Subprograms) und einige LAPACK-Funktionen implementiert. OpenBLAS wurde entwickelt, um die Rechenleistung zu verbessern, insbesondere bei Matrix- und Vektoroperationen, die häufig bei wissenschaftlichen und technischen Aufgaben wie maschinellem Lernen, numerischen Methoden und Simulationen verwendet werden.

    Die wichtigsten Merkmale von OpenBLAS:

    • Unterstützung von Multithreading: OpenBLAS kann mehrere Prozessorkerne effizient für parallele Berechnungen nutzen, was die Operationen auf Multiprozessorsystemen erheblich beschleunigt.
    • Optimierung für Prozessorarchitekturen: OpenBLAS enthält optimierte Builds für verschiedene Prozessoren wie Intel, AMD, ARM und andere. Die Bibliothek erkennt automatisch die Prozessoreigenschaften (unterstützte Befehlssätze wie AVX/AVX2/AVX512) und wählt die am besten geeigneten Funktionsimplementierungen aus.
    • Umfangreiche Unterstützung für BLAS-Operationen: OpenBLAS implementiert die wichtigsten BLAS-Funktionen, darunter Vektoroperationen (z. B. Vektoraddition und Punktprodukt), Matrixoperationen (Multiplikation) und Vektor-Matrix-Operationen.
    • LAPACK-Kompatibilität: Die Bibliothek unterstützt LAPACK-Funktionen (Linear Algebra PACKage) für komplexere lineare Algebra-Operationen, wie z.B. das Lösen von linearen Gleichungssystemen, die Berechnung von Matrixeigenwerten und andere.
    • Hohe Leistung: Im Vergleich zu anderen BLAS-Bibliotheken zeigt OpenBLAS oft bessere Ergebnisse aufgrund von manuellen Optimierungen für bestimmte Prozessorarchitekturen.

    OpenBLAS wird häufig in Anwendungen für numerische Berechnungen eingesetzt:

    • Training neuronaler Netze und andere Aufgaben des maschinellen Lernens.
    • Wissenschaftliches Rechnen (z.B. Modellierung von physikalischen Prozessen).
    • Verarbeitung und Analyse großer Datenmengen.

    Die folgenden Methoden sind derzeit in MQL5 verfügbar:

    Singulärwertzerlegung:

    • SingularValueDecompositionDC – Divide-and-Conquer-Algorithmus; gilt als der schnellste unter den anderen SVD-Algorithmen (Lapack-Funktion GESDD).
    • SingularValueDecompositionQR – QR-Algorithmus; gilt als klassischer SVD-Algorithmus (Lapack-Funktion GESVD).
    • SingularValueDecompositionQRPivot – QR mit Pivoting-Algorithmus (Lapack-Funktion GESVDQ).
    • SingularValueDecompositionBisect – Bisektionsalgorithmus (Lapack-Funktion GESVDX).
    • SingularValueDecompositionJacobiHigh – Jacobi-Algorithmus auf hohem Niveau (Lapack-Funktion GEJSV).
    • SingularValueDecompositionJacobiLow – Jacobi-Algorithmus auf niedrigem Niveau (Lapack-Funktion GESVJ). Die Methode berechnet kleine singuläre Werte und ihre singulären Vektoren in bestimmten Fällen mit viel größerer Genauigkeit als andere SVD-Routinen.
    • SingularValueDecompositionBidiagDC – Divide-and-Conquer-Algorithmus für bidiagonale Matrizen (Lapack-Funktion BDSVDX).
    • SingularValueDecompositionBidiagBisect – Bisektionsalgorithmus für bidiagonale Matrizen (Lapack-Funktion BDSVDX).

    Methoden von Eigen:

    • EigenSolver – Berechnung von Eigenwerten und Eigenvektoren einer regulären quadratischen Matrix mit dem klassischen Algorithmus (Lapack-Funktion GEEV).
    • EigenSymmetricDC – Berechnung von Eigenwerten und Eigenvektoren einer symmetrischen oder hermiteschen (komplex konjugierten) Matrix unter Verwendung des Divide-and-Conquer-Algorithmus (Lapack-Funktionen SYEVD, HEEVD).

    Eine ausführliche Dokumentation wird in Kürze zur Verfügung gestellt.

  2. Der Wert SYMBOL_SWAP_MODE_CURRENCY_PROFIT wurde in der Enumeration ENUM_SYMBOL_SWAP_MODE hinzugefügt. Wenn die Funktion SymbolInfoInteger diesen Wert zurückgibt, werden die Swaps auf dem Konto in der Gewinnberechnungswährung berechnet.
  3. Die Unterstützung von ONNX Runtime wurde erweitert. Es wurden neue Arten von Operationen des maschinellen Lernens hinzugefügt, mit denen Sie fortgeschrittenere, neuronale Modelle ausführen können.
  4. Wir setzen den Übergang zu einem effizienteren MQL5-Compiler fort, der bereits für einige Funktionen verwendet wird. Der Übergang wird weitere Optimierungen und eine schnellere Programmausführung ermöglichen.
  5. Neue Datentypen zur Unterstützung der OpenBLAS-Bibliothek hinzugefügt:

    • complexf – komplexe Zahl, dargestellt durch Float-Daten
    • vectorcf – Vektor mit Elementen des Typs complexf
    • matrixcf – Matrix mit Elementen des Typs complexf

  6. Verbessert wurde WebRequest für die Arbeit mit Websites, die gegen URL-Formatierungsregeln verstoßen, Umleitungsfehler enthalten oder lange Listen alternativer DNS-Namen haben.
  7. Korrigiert wurde die gleichzeitige Zuweisung von Matrix- oder Vektortypen an mehrere Variablen.

MetaEditor

  1. Die verfügbaren Modelle für den KI-Assistenten wurden aktualisiert. Der fortschrittlichere GPT-4o mini ersetzt jetzt den GPT-3.5 Turbo. Außerdem wurde das Modell 01-mini hinzugefügt.
  2. Behoben wurden Fehler im Debugger, durch den Variablenwerte im Datenfenster nicht aktualisiert werden konnten.
  3. Aktualisierte Übersetzungen der Nutzeroberfläche.

MetaTester

  1. Die Speicherung von Randkoeffizienten in den Einstellungen für nutzerdefinierte Symbole wurde korrigiert.
  2. Es wurden Speicherlecks behoben, die unter bestimmten Bedingungen zwischen den Testdurchläufen auftreten konnten.

Web-Terminal

  1. Der Fadenkreuzmodus wurde hinzugefügt, um präzise Werte anzuzeigen und Abständen auf dem Chart zu messen.

    Aktivieren Sie den Modus, indem Sie auf die entsprechende Schaltfläche im linken Bereich klicken. Bewegen Sie das Fadenkreuz über einen beliebigen Punkt im Chart, um das Datum und den Preis auf den entsprechenden Achsen anzuzeigen. Um den Abstand zu messen, klicken Sie auf einen beliebigen Punkt im Chart und ziehen Sie den Cursor mit gedrückter Maustaste zu einem zweiten Punkt.




    Sie können auch Tastenkombinationen verwenden: Drücken Sie die mittlere Maustaste, um das Fadenkreuz zu aktivieren, und verwenden Sie Esc oder die rechte Maustaste, um es zu deaktivieren.

  2. Es wurde ein einfaches Liniendiagramm hinzugefügt, das auf den Schlusskursen der Balken basiert:




  3. In der mobilen Ansicht wurde die Möglichkeit hinzugefügt, zusätzliche Spalten im Bereich Marktbeobachtung anzuzeigen. Zum Konfigurieren wechseln Sie in den Tabellenmodus und klicken auf „...“:




  4. Folgende Hotkeys wurden hinzugefügt:

    • Home — zum Blättern an den Anfang des Charts (frühestes Datum)
    • Ende — zum Blättern an das Ende des Charts (letztes Datum)
    • Seite nach oben — zum Blättern des Charts ein Fenster zurück
    • Seite nach unten — zum Blättern des Charts ein Fenster weiter

  5. Verbesserte Datensicherheit für die Speicherung von Kontoverbindungen.
  6. Die Funktionen zum Scrollen, Ziehen und Skalieren von Diagrammen wurden verbessert.
  7. Beschleunigtes initiales Laden der Webplattform auf der Seite.
  8. Optimierte wurde das Laden der Balken.
  9. Korrigierte gleitende Gewinnberechnungen für Positionen auf Exchange Bonds und Exchange MOEX Bonds Instrumente.
  10. Die Volumeneingabe im One-Click-Trading-Panel auf Charts wurde korrigiert.
  11. Fehler bei der Aktualisierung der Auftragsvolumina in der Markttiefe behoben. Unter bestimmten Bedingungen kann es zu Verzögerungen bei der Aktualisierung der Werte kommen.
  12. Feste Prüfung des zulässigen Mindesthandelsvolumens bei der Auftragserteilung.
  13. Korrigierte Einschussberechnung für abgesicherte Positionen. Der Fehler konnte in bestimmten Fällen auftreten, wenn eine variable Marge auf dem Konto verwendet wurde (berechnet auf der Grundlage des Volumens/Werts der aktuellen Positionen).
  14. Es wurde ein Fehler behoben, bei dem die Schaltflächen „Buy“ und „Sell“ im One-Click-Handelspanel inaktiv werden konnten, bis das Volumen geändert wurde.