Was ist neu im MetaTrader 5

Die Aktualisierungen der Plattformen für den Desktop, Mobile und Web

5 September 2025
Der neue MetaTrader 5 Build 5260: Verbesserungen in Algo Forge und neue Vererbungsregeln in MQL5

Terminal

  1. Die Anzeige der Margin-Einstellungen in den Spezifikationen für Handelssymbole wurde korrigiert. Bei der Verwendung eines variablen Hebels (z. B. berechnet auf der Grundlage des Positionsvolumens des Kontos) konnten früher die Margin-Parameter in den Kontraktspezifikationen falsch angezeigt werden.
  2. Die Sortierung des Orderbuchs für Symbole mit negativen Preisen wurde korrigiert. Aufträge mit positiven, negativen und Null-Preisen werden jetzt korrekt und in der richtigen Reihenfolge angezeigt. 
  3. Das Benutzerhandbuch des Terminals enthält jetzt einen neuen Abschnitt „Wie der Tester historische Daten herunterlädt“. Er fasst die wichtigsten Punkte zusammen, die zum Verständnis der Funktionsweise des Strategy Testers mit der Handelshistorie erforderlich sind. Um die Stabilität der Berechnungen zu gewährleisten, lädt der Tester immer einen „Pre-Start Puffer der Historie“:
    • D1 und darunter — ab dem Beginn des vorangegangenen Kalenderjahres. Damit steht mindestens 1 Jahr lang eine Historie zur Verfügung. Beispiel: Wenn das Startdatum des Tests der 01.03.2023 ist, lädt das Terminal die Daten vom 01.01.2022 herunter. Dies entspricht 14 Monaten vor Beginn des Tests.
    • W1 — mindestens 100 Wochen-Balken (~2 Jahre).
    • MN1 — mindestens 100 Wochen-Balken (~8 Jahre).

    Wenn die verfügbare Historie nicht ausreicht, verschiebt der Tester das tatsächliche Startdatum automatisch auf den nächstliegenden Zeitpunkt, der den Anforderungen entspricht.

    In solchen Fällen beginnt der Test später als zu dem vom Nutzer angegebenen Datum. Im Protokoll des Testers wird eine entsprechende Meldung angezeigt, z. B:

    start time changed to 2024.03.15 00:00 to provide data at beginning


MQL5

  1. Es wurden fünf neue OpenBLAS-Methoden im Abschnitt Matrix Balance hinzugefügt, die die Funktionalität für quadratische Matrizen erweitern. Der neue Satz von Funktionen bietet:
    • Matrix Balance für verbesserte Genauigkeit bei Eigenwertberechnungen.
    • Rücktransformationen von Eigenvektoren.
    • Reduktion auf die Hessenberg-Form und Schur-Zerlegung, einschließlich der Erzeugung einer orthogonalen Matrix.

    Diese Methoden bieten den Entwicklern einen vollständigen Transformationszyklus, von der Vorbereitung der Matrix bis zur präzisen und stabilen Berechnung des Spektrums.

    Die Methoden basieren auf LAPACK-Algorithmen (GEBAL, GEBAK, GEHRD, ORGHR, HSEQR), die eine hohe Leistungsfähigkeit und Zuverlässigkeit gewährleisten:

    • MatrixBalance: Saldiert eine allgemeine reelle oder komplexe Matrix durch Permutation von Zeilen und Spalten und Anwendung diagonaler Ähnlichkeitstransformationen. Der Ausgleich kann die 1-Norm der Matrix reduzieren und die Genauigkeit der berechneten Eigenwerte und/oder Eigenvektoren verbessern (LAPACK-Funktion GEBAL).
    • EigenVectorsBackward: Bildet die rechten oder linken Eigenvektoren einer reellen oder komplexen allgemeinen Matrix durch Rückwärtstransformation auf die berechneten Eigenvektoren der ausgeglichenen Matrix (LAPACK-Funktion GEBAK). 
    • ReduceToHessenbergBalanced: Reduziert eine reelle oder komplexe allgemeine symmetrische Matrix durch eine orthogonale Ähnlichkeitstransformation in die obere Hessenberg-Form (LAPACK-Funktion GEHRD).
    • ReflectHessenbergBalancedToQ: Erzeugt eine orthogonale Matrix Q, die definiert ist als das Produkt elementarer Reflektoren der Ordnung n, wie sie durch Reduktion auf die Hessenberg-Form erzeugt werden (LAPACK-Funktion ORGHR).
    • EigenHessenbergBalancedSchurQ: Berechnet die Eigenwerte einer Hessenberg-Matrix und die Matrizen T und Z aus der Schur-Zerlegung; optional wird die Schur-Faktorisierung einer auf die Hessenberg-Form reduzierten Eingabematrix berechnet (LAPACK-Funktion HSEQR).


  2. Zwei neue Methoden wurden im Abschnitt Eigenwerte hinzugefügt. Beide Funktionen berechnen auf effiziente Weise Eigenvektoren nach der Schur-Zerlegung und vervollständigen damit den vollständigen Satz an linearen Algebra-Werkzeugen in MQL5:

    • EigenVectorsTriangularZ: Berechnet Eigenvektoren einer reellen oberen quasi-dreieckigen oder komplexen oberen Dreiecksmatrix (Schur-Form). Verwendet die Zerlegung A = Q - T - Qᴴ (LAPACK-Funktion TREVC). Bietet hohe Genauigkeit.
    • EigenVectorsTriangularZBlocked: Blockversion zur Berechnung von Eigenvektoren einer reellen oberen quasi-dreieckigen oder komplexen oberen Dreiecksmatrix (LAPACK-Funktion TREVC3). Schneller, aber nicht so genau.


  3. Einführung einer wichtigen Änderung bei der Vererbung mit der neuen Regel zum Ausblenden von Methoden

    Wenn früher eine abgeleitete Klasse oder Struktur eine Methode mit demselben Namen wie in der Basisklasse definierte, wurde sie überladen: Alle Versionen (sowohl von der Eltern- als auch von der Kindklasse) waren in der abgeleiteten Klasse verfügbar. Jetzt verbergen Methoden mit demselben Namen in einer abgeleiteten Klasse die Methoden der Basisklasse (method hiding).

    Um eine verborgene Basisklassenmethode aufzurufen, müssen Sie ihren Anwendungsbereich beim Aufruf explizit angeben:
    class Base
      {
    public: 
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");    // call of Derived::Print(string)
       d.Print(10);        // ATTENTION! Calling Derived::Print(string) since Base::Print is hidden (inaccessible)
       d.Base::Print(10);  // explicit call to hidden parent method
      }
    Seit einiger Zeit gibt der MQL5-Compiler eine Warnung aus, wenn eine ausgeblendete Basismethode besser zu den Aufrufparametern passt als die verfügbare, abgeleitete Methode. Beispiel für den obigen Code d.Print(10):
    Der Aufruf wird zu 'void Derived::Print(string)' anstelle von 'void Base::Print(int)' aufgrund der neuen Regeln für das Verstecken von Methoden
       siehe Deklaration der Funktion 'Derived::Print'
       siehe Deklaration der Funktion 'Base::Print'
    implizite Umwandlung von 'int' in 'string'

  4. Der Operator using zur Wiederherstellung von Überladungen von Basisklassenmethoden wurde hinzugefügt.

    Um das neue Verhalten zu steuern, führt MQL5 den Operator 'using' ein. Damit können Sie alle Überladungen einer Methode vom Basistyp in den Geltungsbereich einer Klasse oder Struktur „ziehen“:
    class Base
      {
    protected:
       void Print(int x)   { ::Print("Base int: ", x); }
       void Print(double y){ ::Print("Base double: ", y); }
      };
    
    class Derived : public Base
      {
    public:
       void Print(string s){ ::Print("Derived string: ", s); }
       using Base::Print;  // return Print overloads from Base
      };
    
    void OnStart()
      {
       Derived d;
       d.Print("text");   // Derived::Print(string)
       d.Print(42);       // Base::Print(int)
       d.Print(3.14);     // Base::Print(double)
      }
    Wenn 'using Base::Print;' entfernt wird, sind die Aufrufe von d.Print(42) und d.Print(3.14) nicht mehr verfügbar; nur Derived::Print(string) bleibt übrig.

    Außerdem können Sie in diesem Beispiel sehen, dass geschützte Methoden der Basisklasse in der abgeleiteten Klasse zugänglich werden (ihre Sichtbarkeit ändert sich von geschützt zu öffentlich).

    Dies gibt Entwicklern eine flexiblere und vorhersehbare Kontrolle über Klassenhierarchien und ermöglicht es ihnen, genau zu definieren, welche Überladungen von Basisklassenmethoden in abgeleiteten Typen zugänglich bleiben sollen.

MetaEditor

  1. Beschleunigte SHA-1-Hash-Berechnungen für Git-Operationen in Algo Forge. Leistungsverbesserungen von über 40 % bei Massenoperationen.
  2. Die Datei-Änderungsprüfungen für Git-Operationen wurden korrigiert. Wenn sich nur die Änderungszeit ändert, der Inhalt der Datei aber gleich bleibt, wird die Datei nicht mehr als geändert behandelt. Dadurch werden falsche Erkennungen vermieden und Konflikte mit entfernten Repositories verhindert.


Algo Forge

  1. Veröffentlicht Algo Forge Benutzerhandbuch. Es hebt alle wichtigen Vorteile von Git hervor, ohne unnötige Komplexität:
    • zuverlässige Speicherung der Versionsgeschichte und Verzweigung,
    • schnelles Experimentieren und sicheres Zusammenführen von Änderungen,
    • erstellen Sie Ihr eigenes Repository oder forken Sie die Projekte anderer Entwickler mit einem Klick,
    • transparente Teamarbeit mit nachvollziehbaren Beiträgen,
    • einen Katalog offener Projekte mit der Möglichkeit, von anderen zu lernen.


    Klonen des Projekts eines anderen Entwicklers
    Öffnen Sie das Projekt, das Sie klonen möchten, auf forge.mql5.io und klicken Sie auf Fork. Geben Sie einen Namen und eine Beschreibung für den Klon ein und speichern Sie ihn.

    Klonen eines Projekts

    Führen Sie in MetaEditor unter Verwendung desselben MQL5-Kontos den Befehl Aktualisieren im Navigator aus. Ihre Fork wird im Ordner Shared Projects angezeigt. Laden Sie es von Algo Forge mit Git Clone herunter. Sie erhalten nicht nur die Projektdateien, sondern auch den vollständigen Commit-Verlauf und alle Zweige. Das bedeutet, dass Sie an dem Fork weiterarbeiten können und gleichzeitig die gesamte Historie des geklonten Projekts zur Verfügung haben.  

    Git-Klon-Befehl in Algo Forge


Web-Terminal

  1. Die Anzeige von Handels- und Quotierungssitzungen in den Spezifikationen des Symbols wurde korrigiert.
  2. Die Anzeige der Margin-Einstellungen in den Symbolspezifikationen wurde korrigiert.
  3. Die Anzeige von Handels- und Quotierungssitzungen in den Spezifikationen des Symbols wurde korrigiert.
  4. Unterstützung für den Kontotyp Wettbewerb wurde hinzugefügt. Solche Konten werden in blau angezeigt, während Demokonten in grün erscheinen.
  5. Die Genauigkeit der Berechnungen der Hebelmarge wurde unter bestimmten Bedingungen korrigiert. 
  6. Bei der Eröffnung eines neuen Kontos wurde ein Problem behoben, bei dem die Schaltfläche Weiter manchmal nicht zum nächsten Schritt führte.
  7. Es wurde ein Problem behoben, bei dem es nicht möglich war, eine Limit-Order zwischen Geld- und Briefkursen für die Ausführung von Exchange zu platzieren.
  8. Die Anzeige der Preise für die Auftragsausführung wurde korrigiert. Sobald ein Auftrag gesendet wurde, erscheint das Ergebnis der Ausführung, erfolgreich oder fehlgeschlagen. In einigen Fällen wurde der Ausführungspreis fälschlicherweise als „0“ angezeigt.
  9. Ein Problem wurde behoben, bei dem die Schaltfläche zum schnellen Schließen der Position nicht angezeigt wurde.

    Schaltfläche „Position schließen“

  10. Die Anzeige der Handelskontowährungen im Kontoauswahlfenster wurde korrigiert.
31 Juli 2025
Der neue MetaTrader 5 Build 5200: Erweiterte Unterstützung von OpenBLAS und verbesserte Kontrolle in MQL5

Terminal

  1. Es wurde die Möglichkeit hinzugefügt, das helle oder dunkle Farbschema automatisch auf der Grundlage Ihrer Windows-Einstellungen anzuwenden. Um dies zu aktivieren, wählen Sie die neue Option: Ansicht \ Farbschemata \ System. Jedes Mal, wenn die Plattform gestartet wird, erkennt sie das Farbschema Ihres Systems und passt sich entsprechend an.


    Es wurde die Möglichkeit hinzugefügt, automatisch das helle oder dunkle Farbschema auf der Grundlage Ihrer Windows-Einstellungen anzuwenden


  2. Anzeigeprobleme mit vom Hauptfenster getrennten Symbolleisten wurden behoben.
  3. Die Berechnung des Liquidationswertes des Portfolios im Abschnitt Assets wurde korrigiert. In einigen Fällen wurden die Positionen für bestimmte Instrumente nicht berücksichtigt.
  4. Die Anzeige von negativen Preisen in der Markttiefe wurde korrigiert. Diese sind nun korrekt sortiert.
  5. Der Import der Kurshistorie in Custom Symbols wurde behoben. Für Instrumente, die sich im Stammordner befinden, konnten die entsprechenden Befehle bisher nicht verfügbar sein.
  6. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. MQL5: OpenBLAS wurden neue Methoden hinzugefügt:

    Matrix-Reduktionen

    • ReduceToHessenberg - reduziert eine reelle oder komplexe allgemeine n×n-Matrix A durch eine orthogonale Ähnlichkeitstransformation in die obere Hessenberg-Form B: Q**T * A * Q = H. LAPACK-Funktion GEHRD.
    • ReflectHessenbergToQ — erzeugt eine orthogonale Matrix Q, die als Produkt von n-1 elementaren Reflektoren der Ordnung n definiert ist, wie von ReduceToHessenberg zurückgegeben: Q = H(1) H(2) . . . H(n-1). LAPACK-Funktion ORGHR.

    Eigenwerte und Eigenvektoren

    • EigenHessenbergSchurQ - berechnet die Eigenwerte einer Hessenberg-Matrix H und die Matrizen T und Z aus der Schur-Zerlegung H = Z T Z**T, wobei T eine obere Quasi-Dreiecksmatrix (die Schur-Form) und Z die orthogonale Matrix der Schur-Vektoren ist. LAPACK-Funktion HSEQR.

    Lineare Gleichungen

    • SylvesterEquationTriangular - löst die Sylvester-Gleichung für reelle quasi-dreieckige oder komplexe dreieckige Matrizen: op(A)*X + X*op(B) = scale*C oder op(A)*X - X*op(B) = scale*C, wobei op(A) = A oder A**T oder A**H ist und A und B beide obere Dreiecke sind. LAPACK-Funktion TRSYL.
    • SylvesterEquationTriangularBlocked - löst die Sylvester-Gleichung für reelle quasi-dreieckige oder komplexe Dreiecksmatrizen: op(A)*X + X*op(B) = scale*C oder op(A)*X - X*op(B) = scale*C, wobei op(A) = A oder A**T oder A**H ist und A und B beide obere Dreiecke sind. LAPACK-Funktion TRSYL3. Dies ist die Blockversion (BLAS Level 3) von TRSYL. Bis zu 5 Mal schneller, aber nicht so genau.

    Faktorisierte Berechnungen

    • SylvesterEquationSchur - löst die Sylvester-Gleichung für reelle quasi-dreieckige oder komplexe dreieckige Matrizen: A*X + X*B = C, wobei A und B beide obere Dreiecke sind. A ist m×m und B ist n mal n; die rechte Seite C und die Lösung X sind m×n. LAPACK-Funktion TRSYL.
    • SylvesterEquationSchurBlocked - löst die Sylvester-Gleichung für reelle quasi-dreieckige oder komplexe dreieckige Matrizen: A*X + X*B = C, wobei A und B beide obere Dreiecke sind. A ist m×m und B ist n mal n; die rechte Seite C und die Lösung X sind m×n. LAPACK-Funktion TRSYL3. Dies ist die Blockversion (BLAS Level 3) von TRSYL. Bis zu 5 Mal schneller, aber nicht so genau.

    Matrix-Norm-Berechnungen

    • MatrixNorm - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder den größten Absolutwert eines beliebigen Elements einer allgemeinen rechteckigen Matrix zurück. LAPACK-Funktion LANGE.
    • MatrixNormGeTrid - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder des größten Absolutwerts eines beliebigen Elements einer allgemeinen Tridiagonalmatrix zurück. LAPACK-Funktion LANGT.
    • MatrixNormHessenberg - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder den größten Absolutwert eines beliebigen Elements einer oberen Hessenberg-Matrix zurück. LAPACK-Funktion LANHS.
    • MatrixNormSy - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder den größten Absolutwert eines beliebigen Elements einer reellen symmetrischen oder komplexen hermiteschen Matrix zurück. LAPACK Funktionen LANSY, LANHE.
    • MatrixNormComplexSy - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder den größten Absolutwert eines beliebigen Elements einer komplexen symmetrischen (nicht hermiteschen) Matrix zurück. LAPACK-Funktion LANSY.
    • MatrixNormSyTrid - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder des größten Absolutwerts eines beliebigen Elements einer reellen symmetrischen oder komplexen hermiteschen tridiagonalen Matrix zurück. LAPACK-Funktionen LANST, LANHT.
    • MatrixNormTriangular - gibt den Wert der 1-Norm, der Unendlichkeitsnorm, der Frobenius-Norm oder des größten Absolutwerts eines beliebigen Elements einer trapezförmigen m×n- oder dreieckigen Matrix zurück. LAPACK-Funktion LANTR.

    Matrix-Klassifikation

    • IsSymmetric - prüft, ob eine quadratische Matrix symmetrisch ist.
    • IsHermitian - prüft, ob eine quadratische komplexe Matrix hermitisch ist.
    • IsUpperTriangular - prüft, ob eine quadratische Matrix oben dreieckig ist.
    • IsLowerTriangular - prüft, ob eine quadratische Matrix ein unteres Dreieck ist.
    • IsTrapezoidal - prüft, ob eine rechteckige (nicht quadratische) m×n-Matrix eine obere oder untere Trapezform hat.
    • IsUpperHessenberg - prüft, ob eine quadratische Matrix eine obere Hessenberg-Matrix ist.
    • IsLowerHessenberg - prüft, ob eine quadratische Matrix eine untere Hessenberg-Matrix ist.
    • IsTridiagonal - prüft, ob eine quadratische Matrix tri-diagonal ist.
    • IsUpperBidiagonal - prüft, ob eine quadratische Matrix oben bi-diagonal ist.
    • IsLowerBidiagonal - prüft, ob eine quadratische Matrix unten bi-diagonal ist.
    • IsDiagonal - prüft, ob eine quadratische Matrix diagonal ist.
    • IsScalar - prüft, ob eine quadratische Matrix eine Skalarmatrix ist.

  2. Hinzufügen der Konjugationsmethode für komplexe Matrizen und Vektoren. Diese Methode ändert das Vorzeichen des Imaginärteils einer komplexen Zahl und gibt die veränderte Matrix oder den veränderten Vektor zurück.
  3. Verschärfte Regeln zum Verbergen von Methoden. Wenn eine abgeleitete Klasse eine Methode mit demselben Namen wie eine Methode der Basisklasse enthält, wird nun standardmäßig die Version der abgeleiteten Klasse aufgerufen. Um die Methode der Basisklasse explizit aufzurufen, ist nun ein Qualifikation erforderlich:
    struct A
      {
       int y;
      
       string func(double x)
         {
          return(__FUNCSIG__);
         }
      };
      
    struct B : public A
      {
       string func(int x)   // the method hides A::func
         {
          return(__FUNCSIG__);
         }
      };
      
    void OnStart(void)
      {
       B b;
       b.func(M_PI);          // according to new rules, it is a call to B::func
       b.A::func(M_PI);       // call the hidden method A::func
      }
    Diese Änderung vereinfacht die Lesbarkeit des Codes und beseitigt Zweideutigkeiten, die bisher nur von einer Compiler-Warnung begleitet wurden.

    Zuvor hatte die Kompilierung eine Warnung ausgegeben:
    Veraltetes Verhalten, versteckter Methodenaufruf wird in einer zukünftigen MQL-Compilerversion deaktiviert werden
    Diese Änderung ist nun in Kraft getreten.

    Bei einer Reihe von Builds erscheint auch dann eine Warnung im Protokoll, wenn aufgrund der Parameter eine geeignetere versteckte Methode verfügbar ist:
    Der Aufruf wird zu 'string B::func(int)' anstelle von 'string A::func(double)' aufgrund der neuen Regeln für das Verstecken von Methoden.
       Siehe Deklaration der Funktion 'B::func'.
       Siehe Deklaration der Funktion 'A::func'.
    Das Abschneiden des konstanten Wertes von 'double(3.141592653589793)' zu 'int(3)'
  4. Doppelte Namen innerhalb desselben Bereichs sind jetzt verboten. So war es beispielsweise früher möglich, einen Eingabeparameter und eine Funktion mit demselben Namen in einer einzigen Datei zu deklarieren. Eine solche Überschneidung ist nicht mehr zulässig:
    input int somename=42;
    
    int somename(int x)
      {
       return(42);
      }
  5. MQL5: Strenge Typüberprüfung für Standardwerte in Enumerationen hinzugefügt. Bei Funktionsparametern, die eine Enumeration akzeptieren, muss nun nicht nur der Wert, sondern auch der genaue Typ übereinstimmen:
    int somename(ENUM_TIMEFRAMES TF=PERIOD_CURRENT);
    
    int somename(ENUM_TIMEFRAMES TF=0)   // error, type mismatch for the default parameter value, despite having the same value
      {
       return(42);
      }
  6. Identische Identifikatoren sind nun in verschiedenen Enumerationen verboten. Ein in einer Enumeration deklarierter Bezeichner kann in einer anderen Enumeration innerhalb desselben Bereichs nicht mehr wiederverwendet werden:
    enum A
      {
       Value
      };
      
    enum B
      {
       Value  // error, name 'Value' is already used in enumeration A
      };
      
    void OnStart(void)
      {
       enum C
         {
          Value // OK, 'Value' is not used within the OnStart scope
         };
      }
    Übereinstimmende Namen können in verschiedenen Bereichen verwendet werden.

  7. Es wurden strengere Anforderungen für Template-Initialisierungsfunktionen eingeführt. Beim Erstellen von Matrizen/Vektoren unter Verwendung von Initialisierungsfunktionen sind die folgenden Funktionen jetzt deaktiviert:

    • Automatische Ableitung von Typen in Vorlagenfunktionen
    • Standard-Parameterwerte

    Alle Template-Parameter und Argumente müssen nun explizit angegeben werden: 
    template<typename T>
    void Initializer(matrix<T>& mat,int method=0);
    
    matrix<double> A(10,10,Initializer,42);          // error, Initializer must be explicitly typed
    matrix<double> A(10,10,Initializer<double>);     // error, missing 'method' parameter (default values no longer supported)
    matrix<double> A(10,10,Initializer<double>,42);  // OK
  8. Verbesserte Unterstützung von ONNX. Implizite Konvertierung von vorzeichenbehafteten Typen bei der Übergabe von ulong-Arrays an Funktionen hinzugefügt, um die MQL5-Integration mit ONNX-Modellen zu vereinfachen.
    OnnxSetInputShape( ... , ulong_array );
    OnnxSetOutputShape( ... , ulong_array );
  9. Die Anzeige von Typen in Compiler-Warnungen im Zusammenhang mit impliziten String-Konvertierungen wurde korrigiert.
  10. Aktualisiertes Integrationspaket für Python. Um das Update zu installieren, führen Sie den Befehl aus:
    pip install --upgrade MetaTrader5

MetaEditor

  1. Der mit MQL5 Storage verwendete Befehl „Revert to Revision" wurde korrigiert. Die Bewertung von Konflikten zwischen Versionen, die während einer Rückgängigmachung auftreten können, wird jetzt vor Beginn der Operation durchgeführt. Wenn ein Rückgängigmachen nicht möglich ist, wird der Vorgang abgebrochen.
  2. Aktualisierte Übersetzungen der Nutzeroberfläche.

Tester

  1. Die Funktion OrderCalcMargin für Konten mit dem Berechnungsmodus Exchange wurde korrigiert.
  2. Der Wechsel zwischen Charts während des visuellen Tests von Expert Advisors mit mehreren Währungen wurde behoben.

Web-Terminal

  1. Die E-Mail-Überprüfung bei der Registrierung von Demo- und vorläufigen Konten wurde verbessert. In einigen Fällen wurde das Eingabefeld für den Bestätigungscode nicht angezeigt.
  2. Probleme mit der Kontoverbindung bei der Verwendung des Browsers auf Huawei-Geräten wurden behoben.
  3. Die Verbindung zu Konten bei Verwendung von Einmalpasswörtern wurde korrigiert. In einigen Fällen fehlte das Eingabefeld für das OTP beim ersten Anmeldeversuch.
27 Juni 2025
Neuer MetaTrader 5 für iPhone/iPad: Handelsbericht und zusätzliche Indikatoren

Die neuesten Versionen der mobilen App MetaTrader 5 für iOS bieten eine Reihe neuer Funktionen, die es Händlern ermöglichen, die Finanzmärkte zu verfolgen, wo immer sie sich befinden.

  1. Hinzugefügt wurden der Bericht, der die Handelsergebnisse in einem praktischen, visuellen Format darstellt. Das hilft bei der Bewertung der Handelsleistung, bei der Optimierung von Portfolios und bei der Suche nach Methoden, um geringere Risiken und eine verbesserte Handelsstabilität zu erreichen. Um Ihre Strategie zu analysieren, gehen Sie in den Bereich Historie und tippen Sie auf das Symbol zur Auswahl des Zeitraums. Wählen Sie dann den Zeitraum und tippen Sie auf „Handelsbericht erstellen“.


    Neuer Handelsbericht


    Der Bericht ist in Registerkarten unterteilt, die jeweils aggregierte Informationen enthalten:

    • Übersicht — ein Überblick über den Handel im Laufe der Zeit: allgemeine Gewinn- und Verlustkennzahlen, Beträge, die eingezahlt oder abgehoben wurden, Saldo, Wachstums- und Dividendendiagramme und andere Handelsergebnisse.
    • Gewinn/Verlust — Daten zu den Handelsgeschäften mit Gewinn und Verlust. Der Parameter ist nach Handelsarten unterteilt (manuelle, algorithmische und kopierte Handelsgeschäfte). Die Ergebnisse können in Form von Handelsgeschäfte oder Geld nach Monaten und Jahren analysiert werden.
    • Long/Short — dynamisches Verhältnis von Käufen und Verkäufen in bestimmten Zeiträumen sowie Kauf- und Verkaufsrentabilität.
    • Symbole — Analyse von Handelsgeschäften nach Finanzinstrumenten. Hier sehen Sie, mit welchen Symbolen Sie Geld verdienen oder verlieren, wie oft Sie mit ihnen handeln, sowie Charts über den Handel und das Geldvolumen für diese Symbole.
    • Risiken — die wichtigsten Risikomerkmale Ihrer Strategie: Charts zum Drawdown und der Belastung der Einlage sowie das Verhältnis von Handelsgeschäften mit Gewinn und Verlust.

  2. Hinzugefügt wurden die Indikatoren ZigZag und Market Profile, wie auch ein neuer Chart-Typ — der Heikin Ashi. Diese Instrumente werden die Marktanalyse und Trenderkennung verbessern.

    Um neue Indikatoren hinzuzufügen, öffnen Sie das Chart-Menü, tippen Sie auf Hauptfenster und wählen Sie sie aus der Liste aus. ZigZag ist unter den Trendindikatoren zu finden, während Market Profile zu den Volumenindikatoren gehört.


    Die Indikatoren Marktprofil und ZigZag


    Um den Heikin Ashi-Chart anzuzeigen, tippen Sie auf den Chart und rufen Sie die Einstellungen auf.


    Heikin Ashi Chart


  3. Hinzugefügt wurden Deal-Informationen im Datenfenster. Wenn Sie das Fadenkreuz über einen Balken mit Handelsgeschäften bewegen, zeigt das Datenfenster allgemeine Informationen über das Geschäft an: Richtung, Ticket, Volumen, Preis und finanzielles Ergebnis, zusammen mit Preisen und Indikatorwerten.


    Erweitertes Datenfenster


  4. Der Schnellmodus für die Anzeige des Datenfensters in einem Chart wurde hinzugefügt. Tippen Sie auf das Hauptchart und halten Sie es länger als eine Sekunde gedrückt, um den Fadenkreuz-Modus zusammen mit dem Datenfenster zu aktivieren. Sobald Sie den Finger loslassen, kehrt das Chart in den normalen Modus zurück. Dies ermöglicht eine schnelle Anzeige der genauen Werte von Balken, Indikatoren und Handelsgeschäften, ohne über das obere Bedienfeld in den Fadenkreuz-Modus zu wechseln.
  5. Es wurde ein separater Befehl zur Größenänderung und Neuanordnung zusätzlicher Indikatorfenster hinzugefügt. Die gleiche Aktion kann durch langes Drücken des Indikator-Unterfensters im Chart durchgeführt werden. Außerdem wurde der Bearbeitungsmodus der Unterfenster selbst durch zusätzliche Symbole verbessert, um die Übersichtlichkeit zu erhöhen.


    Neuer Befehl zur Größenänderung und Neuanordnung von Indikatorunterfenstern


  6. Optimierte Anzeige der Handelshistorie im Chart. Die Anwendung kann nun Tausende von Handelsgeschäften ohne nennenswerte Leistungseinbußen anzeigen.


Installieren Sie die neueste App-Version und schalten Sie erweiterte Handelsfunktionen frei:



12 Juni 2025
MetaTrader 5 Plattform Update Build 5120: Verbesserungen und Korrekturen

Terminal

  1. Probleme bei der Anzeige der grafischen Oberfläche unter Linux und macOS wurden behoben.
  2. Der Mechanismus zur Aktualisierung der Plattform wurde verbessert. Die MQL5-Standardbibliothek wird bei Aktualisierungen nicht mehr vollständig überschrieben - nur die Dateien, die sich tatsächlich geändert haben, werden ersetzt.
  3. Automatisches Zurücksetzen des Vollbildmodus beim Neustart der Anwendung hinzugefügt. Die vollständige Schnittstelle wird nun bei jedem Start angezeigt.

MQL5

  1. Ermöglicht wird die Übergabe von Arrays mit vorzeichenlosem/vorzeichenbehaftetem Typecasting in den folgenden Funktionen:

    • ArraySwap
    • WebRequest
    • CryptEncode
    • CryptDecode
    • StringToCharArray
    • CharArrayToString
    • StringToShortArray
    • ShortArrayToString
    • StructToCharArray
    • CharArrayToStruct

  2. Die Abfrage von Schlüsselzuständen für MQL-Programme im aktiven Chart mit der Funktion TerminalInfoInteger wurde korrigiert.
  3. Die Funktion ArrayInitialize für Enum-Arrays wurde korrigiert.

MetaEditor

  1. Die verfügbaren Modelle für AI Assistant wurden aktualisiert. Alle GPT-4.1 und 04-mini Modelle werden nun unterstützt.
  2. Strenge Überprüfung des Dateistatus in MQL5 Storage aktiviert. Datei-Hashes werden jetzt überprüft, um falsche Anzeigen zu vermeiden. Zuvor konnten Dateien ohne tatsächliche lokale Änderungen im Vergleich zur Repository-Version fälschlicherweise mit einem roten Symbol gekennzeichnet werden.
  3. Aktualisierte Übersetzungen der Nutzeroberfläche.

5 Juni 2025
Der neue MetaTrader 5 Build 5100: Wechsel zum Entwickler-Hub von Git und MQL5 Algo Forge, dunkler Farbmodus und Interface-Verbesserungen

MetaEditor

  • Wir haben den MQL5 Storage komplett überarbeitet und Subversion durch Git als Versionskontrollsystem ersetzt. Git ist der weltweite Standard für Entwickler und bietet verbesserte Zuverlässigkeit und Flexibilität bei der Codeverwaltung.

    • Flexible Verzweigung und Zusammenführung – Erstellen Sie separate Zweige für neue Funktionen oder Experimente und führen Sie diese einfach mit der Hauptversion des Projekts zusammen.
    • Schnellere Operationen im Repository – im Gegensatz zu Subversion speichert Git alle Daten lokal, wodurch Commits, Versionswechsel und Änderungsvergleiche erheblich schneller werden.
    • Offline-Arbeitsmöglichkeiten – Sie brauchen keine ständige Serververbindung: Sie können Änderungen lokal festschreiben und sie in ein Online-Repository übertragen, wann immer es Ihnen passt.
    • Erweiterte Änderungsverfolgung – Sie können die Versionshistorie einfach überprüfen, Änderungen mit Zeitstempel und Autor nachverfolgen und problemlos zu früheren Versionen zurückkehren.
    • Hervorragende Zusammenführungsfunktionen – erweiterte Vergleichs- und Zusammenführungswerkzeuge helfen, Konflikte zu minimieren und die gemeinsame Entwicklung zu optimieren.

    Eine neue Ebene der Zusammenarbeit bei der Entwicklung
    Mit dem Übergang zu Git führen wir MQL5 Algo Forge ein, ein neues Online-Portal für das Projektmanagement. Es ist mehr als nur eine Projektliste, es ist ein vollwertiges soziales Netzwerk für Entwickler – im Grunde genommen ein GitHub für algorithmische Händler. Folgen Sie interessanten Entwicklern, bilden Sie Teams und arbeiten Sie mühelos an Projekten mit.




    Projektdetails anzeigen: Struktur, Dateien, Commits, Zweige und mehr. Verfolgen Sie einzelne Beiträge, erstellen Sie Dokumentationen und tauschen Sie Projekte online aus.




    Überwachen Sie alle Codeänderungen: Erkennen Sie neue, geänderte und gelöschte Zeilen. Wenn Probleme auftreten, weisen Sie den Entwicklern direkt im Projekt die Aufgaben zu.




    Um die Nutzerfreundlichkeit von Git zu verbessern, haben wir den Navigator und das aktive Codebearbeitungsfenster umgestaltet. Wir haben auch ein spezielles Git-Menü in der MetaEditor-Symbolleiste eingeführt:




    Eine ausführliche Git-Dokumentation wird in Kürze verfügbar sein.

Terminal

  1. Unterstützung eines dunklen Farbschemas für alle Komponenten, einschließlich des Handelsterminals, des MetaEditors und des visuellen Testers, wurde hinzugefügt. Das dunkle Farbschema bietet eine komfortablere Entwicklungserfahrung bei Nacht. Verwenden Sie das Menü Ansicht, um zu wechseln:




    Bei der Anpassung der Nutzeroberfläche zur Unterstützung verschiedener Themen haben wir zahlreiche Verbesserungen an der Anzeige von Dialogen, Menüs, Bedienfeldern und Schaltflächen vorgenommen, um die Nutzerfreundlichkeit zu erhöhen. In MetaEditor werden nun Informationen zur Cursorposition und die Anzeige des Texteingabemodus (INS/OVR) in der oberen rechten Ecke angezeigt. Die untere Statusleiste wurde entfernt, um den Arbeitsbereich zu vergrößern.

  2. Hinzugefügt wurde eine 12-Monatsmiete für VPS. Wenn Sie langfristiges Hosting im Voraus kaufen, ersparen Sie sich ein Drittel der Gesamtkosten.




  3. Optimierte Speichernutzung. Das Terminal verbraucht jetzt weniger Systemressourcen, was zu einer verbesserten Leistung führt.
  4. Optimierte Anzeige der Kontohistorie. Die Plattform kann nun Millionen von Datensätzen korrekt anzeigen.
  5. Der Befehl „Auf Standard zurücksetzen“ wurde dem Menü Fenster hinzugefügt. Es setzt alle Elemente der Nutzeroberfläche, einschließlich der Charts, des Navigators, des Strategietesters und anderer, auf ihre ursprüngliche Position zurück.
  6. Behoben wurde der Fehler, der dazu führte, dass der Positionsänderungsdialog unter bestimmten Bedingungen einfror.
  7. Korrigiert wurde die Berechnung für offene Positionen mit negativen Preisen.
  8. Korrigierte Margensatzberechnungen in Handelssymbolspezifikationen mit negativen Preisen.
  9. Die Berechnung der aktuellen MFE- und MAE-Werte und die Anzeige ihrer Diagramme in den Handelsberichten wurden korrigiert.
  10. Die Skalierung der Oszillatoren in den Chart-Unterfenstern wurde korrigiert. Die vertikale Skala für Oszillatoren wird nun korrekt angezeigt.
  11. Die Sichtbarkeit von Order-Books und Optionstafeln beim Wechsel in den Vollbildmodus wurde korrigiert.
  12. Die Anzeige der Tickets von Positionen in der Handelshistorie des Kontos wurde hinzugefügt. Verwenden Sie das Kontextmenü, um die entsprechende Spalte zu aktivieren.
  13. Korrigierte Berechnung des Liquidationswertes auf der Registerkarte Exposure für Futures und Optionen.
  14. Problem mit dem Kopieren von neu erstellten Kontodaten in die Zwischenablage behoben. Im letzten Schritt der Registrierung eines Demokontos oder eines vorläufigen Kontos werden dem Nutzer die Kontodaten mitgeteilt: Login, Passwörter usw. Diese können in die Zwischenablage kopiert werden, um sie in einer separaten Datei zu speichern. Der entsprechende Befehl funktioniert nun auch unter macOS korrekt.
  15. Die Anzeige des Bereichs mit dem VPS-Log wurde korrigiert. Die Seite konnte unter bestimmten Bedingungen einen Fehler anzeigen.
  16. Berichtigt wurde die Unterstützung für HiDPI-Monitore unter Linux.
  17. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Der Matrixmultiplikationsoperator @ wurde hinzugefügt. Er folgt den Regeln der linearen Algebra und ermöglicht die Multiplikation von Matrizen und Vektoren sowie Skalarprodukte (Punktprodukte) von Vektoren.

    Matrixmultiplikation (Matrix × Matrix)
    matrix A(2, 3);
    matrix B(3, 2);
    matrix C = A @ B; // Result: Matrix C of size [2,2]
    Matrixmultiplikation (Matrix × Vektor)
    matrix M(2, 3);
    vector V(3);
    vector R = M @ V; // Result: Vector R of 2 elements
    Matrixmultiplikation (Vektor x Matrix)
    matrix M(2, 3);
    vector V(1, 2);
    vector R = V @ M; // Result: Vector R of 3 elements
    Skalarmultiplikation (Vektor × Vektor)
    vector V1(1, 3), V2(1, 3);
    double r = V1 @ V2; // Result: Scalar
  2. Parameter „ddof“ in den Methoden Std, Var und Cov hinzugefügt. Dieser Parameter gibt die Anzahl der Freiheitsgrade an, die bei der Berechnung der Standardabweichung vom Nenner abgezogen werden. Für Std und Var ist der Standardparameter 0, für Cov ist er 1.

    Wie ddof die Berechnung beeinflusst:

    • Standardmäßig ist ddof=0, d.h. es wird die Standardabweichung der Grundgesamtheit berechnet.
    • Wenn ddof=1 ist, berechnet die Funktion die Standardabweichung der Stichprobe, die den endlichen Stichprobenumfang ausgleicht, was in der Statistik häufig verwendet wird, wenn eine Teilmenge von Daten analysiert wird.

  3. OpenBLAS wurden neue Methoden hinzugefügt:

    Eigenwerte und Eigenvektoren

    • EigenTridiagonalDC – berechnet die Eigenwerte und Eigenvektoren einer symmetrischen Tridiagonalmatrix mit Hilfe des Divide-and-Conquer-Algorithmus (LAPACK-Funktion STEVD).
    • EigenTridiagonalQR – berechnet die Eigenwerte und Eigenvektoren einer symmetrischen Tridiagonalmatrix mit Hilfe des QR-Algorithmus (LAPACK-Funktion STEV).
    • EigenTridiagonalRobust – berechnet Eigenwerte und Eigenvektoren einer symmetrischen Tridiagonalmatrix unter Verwendung des MRRR-Algorithmus (Multiple Relatively Robust Representations) (LAPACK-Funktion STEVR).
    • EigenTridiagonalBisect – berechnet die Eigenwerte und Eigenvektoren einer symmetrischen Tridiagonalmatrix mit Hilfe des Bisektionsalgorithmus (LAPACK-Funktion STEVX).
    • ReduceToBidiagonal – reduziert eine allgemeine reelle oder komplexe m-mal-n-Matrix A in die obere oder untere bidiagonale Form B durch eine orthogonale Transformation: Q**T * A * P = B. Wenn m≥n, ist B eine obere bidiagonale Matrix; andernfalls ist B untere bidiagonal. (LAPACK-Funktion GEBRD).
    • ReflectBidiagonalToQP – erzeugt orthogonale Matrizen Q und P**T (oder P**H für komplexe Typen), die durch die Methode ReduceToBidiagonal bestimmt werden, wenn eine reelle oder komplexe Matrix A in eine bidiagonale Form reduziert wird: A = Q * B * P**T. Q und P**T sind als Produkte der Elementarreflektoren H(i) bzw. G(i) definiert. (LAPACK-Funktionen ORGBR, UNGBR).
    • ReduceSymmetricToTridiagonal – reduziert eine reelle symmetrische oder komplexe hermitsche Matrix A durch eine orthogonale Ähnlichkeitstransformation in die tridiagonale Form B: Q**T * A * Q = B. (Lapack-Funktionen SYTRD, HETRD).
    • ReflectTridiagonalToQ – erzeugt eine orthogonale Matrix Q, die als Produkt von n-1 elementaren Reflektoren der Ordnung n definiert ist, wie von ReduceSymmetricToTridiagonal zurückgegeben.

    • LinearEquationsSolution – berechnet die Lösung des linearen Gleichungssystems mit einer quadratischen Koeffizientenmatrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionTriangular – berechnet die Lösung des linearen Gleichungssystems mit einer quadratischen, dreieckigen Koeffizientenmatrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionSy – berechnet die Lösung des Systems linearer Gleichungen mit einer symmetrischen oder hermiteschen konjugierten Matrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionComplexSy – berechnet die Lösung des Systems linearer Gleichungen mit einer komplexen symmetrischen Matrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionGeTrid – berechnet die Lösung des linearen Gleichungssystems mit einer symmetrischen oder hermiteschen konjugierten positiv-definiten Matrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionSyPD – berechnet die Lösung des linearen Gleichungssystems mit einer allgemeinen (unsymmetrischen) tridiagonalen Koeffizientenmatrix A und mehreren rechten Seiten.
    • LinearEquationsSolutionSyTridPD – berechnet die Lösung des Systems linearer Gleichungen mit einer symmetrischen tridiagonalen positiv-definiten Koeffizientenmatrix A und mehreren rechten Seiten.
    • FactorizationQR – Berechnet die QR-Faktorisierung einer allgemeinen m-mal-n-Matrix: A = Q * R (LAPACK-Funktion GEQRF).
    • FactorizationQRNonNeg – Berechnet die QR-Faktorisierung einer allgemeinen m-mal-n-Matrix: A = Q * R, wobei R eine obere Dreiecksmatrix mit nichtnegativen Diagonaleinträgen ist (LAPACK-Funktion GEQRFP).
    • FactorizationQRPivot – berechnet die QR-Faktorisierung einer allgemeinen m-mal-n-Matrix mit Spaltenpivotierung: A * P = Q * R (LAPACK-Funktion GEQP3).
    • FactorizationLQ – Berechnet die LQ-Faktorisierung einer allgemeinen m-mal-n-Matrix: A = L * Q (LAPACK-Funktion GELQF).
    • FactorizationQL – Berechnet die QL-Faktorisierung einer allgemeinen m-mal-n-Matrix: A = Q * L (LAPACK-Funktion GEQLF).
    • FactorizationRQ – Berechnet die RQ-Faktorisierung einer allgemeinen m-mal-n-Matrix: A = R * Q (LAPACK-Funktion GERQF).
    • FactorizationPLU – berechnet eine LU-Faktorisierung einer allgemeinen M-mal-N-Matrix A unter Verwendung partieller Pivotierung mit Zeilenvertauschungen (LAPACK-Funktion GETRF).
    • FactorizationPLUGeTrid – berechnet eine LU-Faktorisierung einer allgemeinen (unsymmetrischen) tridiagonalen N-mal-N-Matrix A unter Verwendung von Eliminierung mit partiellem Pivoting und Zeilenvertauschungen (LAPACK-Funktion GTTRF).
    • FactorizationLDL – berechnet die Faktorisierung einer reellen symmetrischen oder komplexen hermiteschen Matrix A mit der Bunch-Kaufman-Methode der diagonalen Pivotierung (LAPACK-Funktionen SYTRF und HETRF).
    • FactorizationLDLSyTridPD – berechnet die Faktorisierung einer symmetrischen positiv-definiten oder, für komplexe Daten, hermiteschen positiv-definiten Tridiagonalmatrix A (LAPACK-Funktion PTTRF).
    • FactorizationCholesky – berechnet die Faktorisierung einer reellen symmetrischen oder komplexen hermiteschen positiv-definiten Matrix A (LAPACK-Funktion POTRF).
    • FactorizationCholeskySyPS – berechnet die Cholesky-Faktorisierung mit vollständiger Pivotisierung einer reellen symmetrischen (komplexen hermiteschen) positiv semidefiniten n-mal-n Matrix (LAPACK-Funktion PSTRF).

  4. Hinzugefügt wurde die Funktion Random und Methode zum Füllen von Vektoren und Matrizen mit Zufallswerten. Die Zufallswerte werden gleichmäßig innerhalb des angegebenen Bereichs erzeugt.
    static vector vector::Random(
      const ulong   size,       // vector length
      const double  min=0.0,    // min value
      const double  max=1.0     // max value
       );
    
    static matrix matrix::Random(
      const ulong   rows,       // number of rows
      const ulong   cols        // number of columns
      const float   min=0.0,    // min value
      const float   max=1.0     // max value
       );
  5. Hinzugefügt wurde die Unterstützung von zusätzlichen Aliasnamen für ganzzahligen Typen. Dies wird die Portierung von Code aus anderen Sprachen wie C und C++ vereinfachen.

    Diese Aliase führen keine neuen Typen ein, sondern bieten alternative Namen für bestehende Typen in MQL5. Sie können in allen Kontexten verwendet werden, in denen die Basistypen anwendbar sind.

    • int8_t
    • uint8_t
    • int16_t
    • uint16_t
    • int32_t
    • uint32_t
    • int64_t
    • uint64_t

  6. Neue Funktionen zur Erkennung des Farbschemas des Terminals hinzugefügt:

    • Der Enumeration ENUM_TERMINAL_INFO_STRING wurde eine neue Eigenschaft TERMINAL_COLORTHEME_NAME hinzugefügt. Verwenden Sie diese Eigenschaft mit der Funktion TerminalInfoString, um das Farbschema des Terminals abzufragen. Mögliche Werte: Light und Dark.
    • Der Enumeration ENUM_TERMINAL_INFO_INTEGER wurden neue Eigenschaften THEME_COLOR_* hinzugefügt. Verwenden Sie diese mit der Funktion TerminalInfoInteger, um die Farben bestimmter UI-Elemente abzurufen.

    Um eine Änderung des Farbschemas zu erkennen, verwenden Sie die Ereignisbehandlung durch OnChartEvent. Wenn sich das Thema ändert, wird das Ereignis CHARTEVENT_CHART_CHANGE zweimal ausgelöst.

  7. Es wurde ein Fehler behoben, der zum Absturz des MetaEditors führte, wenn Code kompiliert wurde, der die Methode Array::Reserve enthielt. Die Methode „Reserve“ ändert nicht die Größe des Arrays, sondern reserviert Platz für die angegebene Anzahl von Elementen, um eine Neuzuweisung von Speicherplatz zu verhindern, wenn neue Elemente hinzugefügt werden.
  8. Das Verhalten der Methode Array::Push, die neue Elemente an das Ende eines Arrays anfügt, wurde korrigiert. Das Problem trat in Arrays mit vorab zugewiesenem Pufferspeicher auf.
  9. Behebung von Problemen in Funktionen für die Arbeit mit OpenCL.

MetaTester

  1. Die Optimierung von Handelsstrategien wurde beschleunigt.
  2. Es wurde ein Fehler behoben, der in bestimmten Fällen zu einer übermäßigen Speichernutzung durch Tester-Agenten bei der Ausführung von Aufgaben aus dem MQL5 Cloud Network führte.

Web-Terminal

  1. Die Option zum Speichern von Passwörtern im Kontoverbindungsdialog wurde korrigiert.
  2. Die Schaltflächen für die Bewegung des Charts wurden korrigiert. In einigen Fällen führte die Verwendung dieser Schaltflächen dazu, dass das Chart nicht mehr angezeigt wurde.
  3. Die Validierung des Feldes „Mittlerer Name“ im Registrierungsformular für echte Konten wurde korrigiert. Es ist jetzt optional.
  4. Ein Fehler bei der Eröffnung von Demo-Konten wurden behoben. In einigen Fällen wurden die Nutzer fälschlicherweise auf die Website des Maklers umgeleitet.
  5. Die Sichtbarkeit der Schaltflächen für die Eröffnung von Demo- und Echtgeldkonten wurde verbessert. Diese Schaltflächen werden nun ausgeblendet, wenn die entsprechende Funktion vom Makler deaktiviert wurde.
  6. Das Verhalten des Feldes „Einzahlung“ im Formular zur Eröffnung eines Demokontos wurde korrigiert.
  7. Die Anzeige des Feldes „Handel“ in der Vertragsspezifikation wurde korrigiert.
  8. Das Symbol-Suchfeld im Fenster „Marktübersicht“ wurde korrigiert. Die Schaltfläche „X“ wird nun korrekt angezeigt, um den Suchmodus zu verlassen.
  9. Die Anzeige eines Tooltips für das Feld des E-Mail-Bestätigungscodes im Kontoeröffnungsformular wurde korrigiert.
18 März 2025
MetaTrader 5 für iPhone/iPad: Lineal, Textobjekte für Charts und Timer für Balken

Die neuesten Versionen der MetaTrader 5 Mobile App für iOS bieten eine Reihe praktischer Chart-Funktionen sowie wichtige Stabilitätsverbesserungen für eine reibungslosere Nutzererfahrung.

  1. Textobjekt zum Erstellen von nutzerdefinierten Beschriftungen in Charts hinzugefügt. Öffnen Sie das Menü der Chartobjekte und tippen Sie auf „Text hinzufügen“. Geben Sie dann den gewünschten Text ein und wählen Sie einen Punkt im Chart aus, an dem die Beschriftung platziert werden soll. Ein Objekt hat zwei Punkte: einen zum Bewegen und einen zum Einstellen der Richtung.



    Textobjekt zum Erstellen von nutzerdefinierten Beschriftungen in Charts



    Wir haben auch ein kleines Menü für Chartobjekte hinzugefügt, das unmittelbar nach dem Erstellen eines Objekts am unteren Rand des Bildschirms erscheint. Sie können jetzt Schlüsseleigenschaften ändern, ohne zum vollständigen Objektmenü zu navigieren.

  2. Es wurde ein Countdown-Timer hinzugefügt, der die verbleibende Zeit bis zum Schließen des aktuellen Balkens anzeigt. Es funktioniert in allen Zeitrahmen, von Minuten- bis zu Tagescharts. Diese Funktion hilft besonders den Händler, deren Strategien vom Eröffnen und Schließen der Balken abhängen.

    Um den Timer zu aktivieren, gehen Sie zu den Charteinstellungen. Der Countdown wird auf der vertikalen Skala unterhalb des aktuellen Kurses angezeigt.


    Countdown-Timer, der die verbleibende Zeit bis zur Schließung des aktuellen Balkens anzeigt



  3. Verbesserter Modus des Fadenkreuzes – es kann jetzt als Lineal verwendet werden. Aktivieren Sie das Fadenkreuz und setzen Sie es auf den gewünschten Startpunkt. Tippen Sie dann auf den Endpunkt, um die Entfernung zu messen. Die QuickInfo zeigt die Preisdifferenz, den Prozentsatz und die Anzahl der Balken an.


    Verbesserter Modes des Fadenkreuzes – es kann jetzt als Lineal verwendet werden



  4. Anzeige von Positionstickets in der Handelshistorie hinzugefügt.


    Anzeige von Positionstickets in der Handelshistorie hinzugefügt



  5. Verbesserte Anzeige der Kursverzögerung, wenn eine solche Verzögerung für ein Handelsinstrument verwendet wird. Diese Informationen werden nun auf dem Chart angezeigt, und das Symbol im Bereich Marktbeobachtung ist nun deutlicher zu erkennen.



    Verbesserte Anzeige von Kursverzögerungen



  6. Unterstützung für neue Anbieter im integrierten Zahlungssystem wurde hinzugefügt.
  7. Das Feld zur Eingabe des Geburtsdatums bei der Eröffnung von Demokonten hinzugefügt.
  8. Verbesserte Chats: Probleme bei der Anzeige von Avataren wurden behoben, ein Dokumentenbetrachter hinzugefügt, die Unterstützung für *.webp-Bilder aktiviert und die Suchfunktionalität verbessert.

Laden Sie die neueste Version der App herunter und verbessern Sie Ihr Handelserlebnis:

MetaTrader 5 im App Store
13 Dezember 2024
MetaTrader 5 Build 4755: Allgemeine Verbesserungen
Dieses Update behebt einen Fehler bei der Berechnung von Dreifach-Swaps im Strategietester, der unter bestimmten Kombinationen von Testbedingungen auftrat. Darüber hinaus wurden eine Reihe kleinerer Verbesserungen und Korrekturen vorgenommen, um die Stabilität der Plattform weiter zu verbessern.
6 Dezember 2024
MetaTrader 5 Build 4730: Erweiterte Unterstützung von OpenBLAS und eine allgemeine Leistungsoptimierung

Terminal

  1. Geänderte Berechnungen für die Werte von Positionen, Aufträge und Deals. Der Wert wird nun in der Kontowährung und nicht mehr in der Basiswährung des Handelssymbols angezeigt:

    Der Wert von Positionen, Aufträgen und Handelsgeschäften wird jetzt in der Kontowährung angezeigt

  2. Das Feld zur Eingabe des Geburtsdatums bei der Eröffnung von Demokonten hinzugefügt.

    Das Feld für die Eingabe des Geburtsdatums bei der Eröffnung von Demokonten wurde hinzugefügt


  3. Die Skalierung der Indikatoren, die im Unterfenster des Charts angezeigt werden, wurde korrigiert. Bei einigen Oszillatoren konnten bisher die minimalen und maximalen Skalenwerte falsch gewählt werden.
  4. Optimiertes und beschleunigtes Entpacken von Tickdaten und Kursverläufen, was die Ladegeschwindigkeit des Charts erhöht.
  5. Die Bearbeitung der Textfarbe im E-Mail-Erstellungsfenster wurde korrigiert.
  6. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Es wurden neue Methoden von OpenBLAS hinzugefügt:

    • EigenSolver2 – Berechnung von verallgemeinerten Eigenwerten und Eigenvektoren für ein Paar gewöhnlicher, quadratischer Matrizen (Lapack-Funktion GGEV).
    • EigenSolverX – berechnet Eigenwerte und Eigenvektoren einer regulären quadratischen Matrix im Expertenmodus, d.h. mit der Möglichkeit, den Berechnungsalgorithmus zu beeinflussen, und der Möglichkeit, begleitende Berechnungsdaten zu erhalten (Lapack-Funktion GEEVX).
    • EigenSolver2X – berechnet Eigenwerte und Eigenvektoren für ein Paar regulärer quadratischer Matrizen im Expertenmodus, d.h. mit der Möglichkeit, den Berechnungsalgorithmus zu beeinflussen, und der Möglichkeit, begleitende Berechnungsdaten zu erhalten (Lapack-Funktion GGEVX).
    • EigenSolverShur – Berechnung von Eigenwerten, der oberen Dreiecksmatrix in Schur-Form und der Matrix der Schur-Vektoren (Lapack-Funktion GEES).
    • EigenSolver2Shur – Berechnung von Eigenwerten, verallgemeinerten Eigenvektoren, verallgemeinerten Schur-Formen sowie linken und rechten Schur-Vektoren für ein Paar regulärer quadratischer Matrizen (Lapack-Funktion GGES).
    • EigenSolver2Blocked – Berechnung von verallgemeinerten Eigenwerten und Eigenvektoren für ein Paar regulärer quadratischer Matrizen unter Verwendung eines Blockalgorithmus (Lapack-Funktion GGEV3).
    • EigenSolver2ShurBlocked – berechnet für ein Paar regulärer quadratischer Matrizen Eigenwerte, verallgemeinerte Eigenvektoren, verallgemeinerte Schur-Formen sowie linke und rechte Schur-Vektoren unter Verwendung eines Blockalgorithmus (Lapack-Funktion GGES3).
    • EigenSymmetricRobust – Berechnung von Eigenwerten und Eigenvektoren einer symmetrischen oder hermiteschen (komplex konjugierten) Matrix unter Verwendung des MRRR-Algorithmus (Multiple Relatively Robust Representations, MRRR) (Lapack-Funktionen SYEVR, HEEVR).
    • EigenSymmetricBisect – Berechnung von Eigenwerten und Eigenvektoren einer symmetrischen oder hermiteschen (komplex konjugierten) Matrix unter Verwendung des Bisektionsalgorithmus (Lapack-Funktionen SYEVX, HEEVX).

  2. Es wurden neue Methoden für komplexe Matrizen hinzugefügt:

    • TransposeConjugate – erstellt eine konjugiert-transponierte Matrix.
      matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;
      Die Methode gibt eine neue konjugiert-transponierte Matrix zurück, in der die Elemente der ursprünglichen Matrix transponiert und in ihre komplexen Konjugierten umgewandelt werden.

      Wenn ein Fehler auftritt, wird eine leere Matrix zurückgegeben. Verwenden Sie die Funktion GetLastError, um den Fehlercode zu ermitteln.

    • CompareEqual – absoluter Vergleich von zwei Matrizen.
      int matrix<T>::CompareEqual(const matrix<T>& mat) const
      Die Rückgabewerte sind:

      • -1 – wenn das Element der Matrix A kleiner ist als das entsprechende Element der Matrix B.
      • 0 – wenn alle Elemente der Matrizen A und B identisch sind.
      • 1 – wenn das Element der Matrix A größer ist als das entsprechende Element der Matrix B.

      Die Methode kann auch Fehler zurückgeben, wenn die Eingabedaten ungültig sind. Um den Fehlercode zu erhalten, verwenden Sie die Funktion GetLastError.

  3. Es wurde die Python-Unterstützung bis zur Version 3.13 für das entsprechende Integrationspaket hinzugefügt. Um das Paket zu aktualisieren, führen Sie den folgenden Befehl aus:

    pip install --upgrade MetaTrader5

  4. Das Überspringen des ersten Timer-Ereignisses wurde behoben. Ein Fehler trat auf, wenn ein Timer innerhalb des OnTimer-Handlers gestartet wurde.

MetaEditor

  • Die Berechnung von Werten für Eingabevariablen im Debugger-Modus wurde korrigiert. In einigen Fällen wurde anstelle des Wertes die Meldung „unbekannter Bezeichner“ (unknown identifier) angezeigt.

Tester

  • Die Suche nach den erforderlichen Kreuzkursen für die Währungsumrechnung beim Testen von Anwendungen mit Deviseninstrumenten wurde korrigiert.

Web-Terminal

  1. Unterstützung für die Ausführungsart Request für großvolumige Aufträge wurde hinzugefügt.
  2. Es wurde die Unterstützung für eine erweiterte Beschreibung der Ursache für von einem Makler abgelehnte Anfragen hinzugefügt.
  3. Korrigiert wurde das Formular zur Eröffnung eines Kontos. Es werden nun die Informationen entsprechend den Maklereinstellungen angefordert.
  4. Die Ländererkennung bei der Registrierung von Demokonten wurde korrigiert.
  5. Die Ausrichtung des Dialogs, der die Warnung zum Ein-Klick-Handel anzeigt, wurde korrigiert.
11 Oktober 2024
MetaTrader 5 Build 4620: MQL5 Fehlerbehebungen und neue OpenBLAS-Methoden

Terminal

  1. Es wurde ein Fehler behoben, der unter bestimmten Bedingungen dazu führte, dass ein unvollständiger Tickverlauf zurückgegeben wurde.
  2. Die automatische Vervollständigung bei der Auswahl von Symbolen in anderen Sprachen als Englisch wurde korrigiert. Wenn Sie einen Symbolnamen in das Suchfeld eingeben, schlägt das System automatisch relevante Optionen auf der Grundlage der eingegebenen Zeichen vor. Die Suchfunktion funktioniert nun korrekt und unterscheidet Groß- und Kleinschreibung in allen Sprachumgebungen.

MQL5

  1. Die Beschreibungen der neuen Methoden von OpenBLAS wurden der MQL5-Dokumentation hinzugefügt. Derzeit stehen 15 neue Methoden für Matrizen und Vektoren zur Verfügung, weitere werden in Kürze hinzugefügt.
    OpenBLAS ist eine effiziente Open-Source-Lösung für High-Performance-Computing, insbesondere bei der Arbeit mit großen Datensätzen.

    Funktion

    Aktion

    SingularValueDecompositionDC

    Singulärwertzerlegung, Divide-and-Conquer-Algorithmus; er gilt als der schnellste unter den anderen SVD-Algorithmen (Lapack-Funktion GESDD).

    SingularValueDecompositionQR

    Singulärwertzerlegung, QR-Algorithmus; er gilt als klassischer SVD-Algorithmus (Lapack-Funktion GESVD).

    SingularValueDecompositionQRPivot

    Singulärwertzerlegung, QR mit Pivoting-Algorithmus (Lapack-Funktion GESVDQ).

    SingularValueDecompositionBisect

    Singulärwertzerlegung, Bisektionsalgorithmus (Lapack-Funktion GESVDX).

    SingularValueDecompositionJacobiHigh

    Singulärwertzerlegung, Jacobi-Algorithmus auf hohem Niveau (Lapack-Funktion GEJSV).

    SingularValueDecompositionJacobiLow

    Singulärwertzerlegung, Jacobi-Low-Level-Algorithmus (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

    Singulärwertzerlegung, Divide-and-Conquer-Algorithmus für bidiagonale Matrizen (Lapack-Funktion BDSVDX).

    SingularValueDecompositionBidiagBisect

    Singulärwertzerlegung, Bisektionsalgorithmus für bidiagonale Matrizen (Lapack-Funktion BDSVDX).

    EigenSolver

    Berechnung von Eigenwerten und Eigenvektoren einer regelmäßigen quadratischen Matrix mit dem klassischen Algorithmus (Lapack-Funktion GEEV).

    EigenSymmetricDC

    Berechnung von Eigenwerten und Eigenvektoren einer symmetrischen oder hermiteschen (komplex konjugierten) Matrix mit Hilfe des Divide-and-Conquer-Algorithmus (Lapack-Funktionen SYEVD, HEEVD).

    SingularSpectrumAnalysisSpectrum

    Eine Methodenfunktion zur Berechnung der relativen Beiträge von Spektralkomponenten auf der Grundlage ihrer Eigenwerte

    SingularSpectrumAnalysisForecast

    Eine Methodenfunktion zur Berechnung rekonstruierter und vorhergesagter Daten unter Verwendung von Spektralkomponenten der Eingangszeitreihen.

    SingularSpectrumAnalysisReconstructComponents

    Eine Methodenfunktion zur Berechnung der rekonstruierten Komponenten der Eingangszeitreihe und ihrer Beiträge.

    SingularSpectrumAnalysisReconstructSeries

    Eine Methodenfunktion zur Berechnung der rekonstruierten Zeitreihe unter Verwendung der ersten component_count-Komponenten.

  2. Fehler bei der Ausführung älterer Versionen von ausführbaren MQL5-Programmdateien (.ex5), die matrix::CopyRates-Methoden verwenden, wurden behoben. Diese Fehler traten in Dateien, die unter neuen Versionen kompiliert wurden, nicht auf.
  3. Die Typenprüfung in union für zulässige Aufträge wurde korrigiert.

MetaTester

  • Abstürze, die unter bestimmten Bedingungen bei der Deinitialisierung von nutzerdefinierten Indikatoren auftreten konnten, wurden behoben.

4 Oktober 2024
MetaTrader 5 Build 4585: Leistungsverbesserungen

Terminal

  • Es wurden Abstürze behoben, die unter bestimmten Bedingungen beim Beenden der Profiling von MQL5-Programmen auftreten konnten.

MetaEditor

MetaTester

  • Abstürze, die unter bestimmten Bedingungen bei der Wiederholung von Einzeldurchgangstests auftraten, wurden behoben.
27 September 2024
MetaTrader 5 Build 4570: Verbesserungen der Web-Version und die Integration von OpenBLAS in MQL5

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.
21 Juni 2024
MetaTrader 5 Build 4410: Leistungsverbesserungen
MetaTrader 5 Build 4410: Leistungsverbesserungen

Terminal

  • Behoben wurden Abstürze des Terminals, die unter bestimmten Bedingungen beim Teststart auftreten konnte.

MQL5

  • Die Funktion der Eigenschaft MQL_PROGRAM_NAME für Dienstanwendungen wurde korrigiert. Die Eigenschaft hat eine u. U. eine falsche Serviceinstanz zurückgegeben.

MetaTrader 5 Web-Terminal

  1. Die Überprüfung der Browserkompatibilität für das Webterminal wurde korrigiert. In einigen Fällen haben die Nutzer fälschlicherweise eine Meldung erhalten, dass ihr Browser nicht unterstützt wird.
  2. Fehler bei der Eröffnung von Demo-Konten wurden behoben.
  3. Kleinere Korrekturen und Verbesserungen.

Die Aktualisierung wird über das Live-Update-System verfügbar sein.

MetaTrader 5 Android

  1. Völlig neu gestaltete Oberfläche für die Tablet-Versionen. Sie verfügt nun über ein modernes Design, das sich bereits in den iOS- und Webversionen der Plattform bewährt hat. Die Hauptabschnitte befinden sich nun am unteren Rand des Bildschirms, und die Befehle für den Kartenbetrieb sind auf der linken Seite zu finden.




  2. Hinzugefügt wurde ein Kontextmenü im Bereich der Positionshistorie, das einen schnellen Zugriff auf den Handelsdialog oder den Chart des entsprechenden Symbols ermöglicht.
  3. Versteckter Befehl zum Umschalten auf den Handelsdialog für nicht handelbare Symbole.
  4. Der Betrieb mit dem MetaQuotes-Demo-Server wurde korrigiert.

Aktualisieren Sie Ihre mobilen Anwendungen über Google Play, Huawei AppGallery oder durch das Herunterladen der APK-Datei.

7 Juni 2024
MetaTrader 5 Build 4380: Leistungsverbesserungen

Terminal

  1. Es wurden Fehler behoben, die unter bestimmten Bedingungen zu einem fehlerhaften Betrieb des Live-Update-Systems führen konnten.
  2. Die neue Tastenkombination, Alt+X, öffnet die Liste von Expert Advisors.
  3. Behoben wurde ein Fehler in den Absturzprotokollen.

MetaTester

  1. Fehler bei der Einstellung bestimmter Eigenschaften des Bitmap-Grafikobjekts behoben.
  2. Die Verbindung von Testagenten mit dem MQL5-Cloud-Netzwerk ist jetzt verboten, wenn sie in virtuellen Umgebungen arbeiten und wenn der Prozessor den AVX-Befehlssatz nicht unterstützt.

Web-Terminal

  1. Fehler bei der Bedienung des One-Click-Trading-Panels auf dem Chart behoben.
  2. Der Warndialog, der sich öffnet, wenn Sie das One-Click-Trading-Panel im Chart aktivieren, wurde behoben.
31 Mai 2024
MetaTrader 5 Build 4350: Weitere analytische Objekte in der Webplattform und die neue Willkommensseite in MetaEditor

MetaEditor

  1. Willkommensseite hinzugefügt, um Nutzern den Einstieg in den algorithmischen Handel und die Anwendungsentwicklung zu erleichtern.



    Materialien für Anfänger
    Der Abschnitt „Einführung“ stellt das auf MQL5.com verfügbare Lehrmaterial vor: Sprachdokumentation, Bücher, Artikel, Entwicklerforen und die Codebasis-Bibliothek. Es werden auch Dienste vorgestellt, bei denen Sie Ihr Wissen anwenden und zu Geld machen können: der Markt für Anwendungen, Freiberufler und Handelssignale.

    In den Abschnitten Dokumentation und Bücher finden Sie eine ausführlichere Beschreibung der verfügbaren Lernmaterialien.

    Nützliche Funktionen für Entwickler
    Der Abschnitt „What's New“ bietet eine Sammlung wichtiger Informationen, um Entwickler auf dem Laufenden zu halten:


    Außerdem finden Sie hier eine Liste der zuletzt geöffneten Dateien für den schnellen Zugriff.



    Für Nutzer, die ihre Anwendungen aktiv auf dem Markt verkaufen, bietet der Bericht „Meine Verkäufe“ ein unschätzbares Instrument zur Bewertung ihrer Leistung. Sie ermöglicht den Zugang zu:

    • Umfassende Verkaufs- und Download-Statistiken im Zeitverlauf.
    • Verkaufsgeografie, die Aufschluss über die Regionen gibt, in denen sich Ihre Produkte der größten Beliebtheit erfreuen. Daraus können sich Ideen für die weitere Projektausweitung ergeben, wie etwa die Lokalisierung in bestimmte Sprachen oder gezielte Werbekampagnen in bestimmten Regionen.
    • Daten zu den umsatzstärksten Produkten auf der Grundlage von Verkaufsvolumen und erzieltem Umsatz. Das Diagramm kann nach dem Lizenztyp gefiltert werden: Vollversion oder Abonnement für eine bestimmte Dauer. Außerdem sehen Sie hier ein Diagramm mit Produktpreisänderungen. All dies wird Ihnen helfen, Ihre Kunden zu verstehen.
    • Detaillierte Download- und Verkaufsstatistiken für jedes Produkt.


  2. Verbesserte integrierte Suche. Die obere Suchleiste wird jetzt ausschließlich für die Suche nach Text im aktuellen Dokument oder in lokalen Dateien verwendet. Für eine globale Suche nach Bildungsmaterialien und Codes steht ein separater Bereich in der Toolbox zur Verfügung.


  3. Hinzugefügt wurde die Unterstützung von GPT-4o, dem neuesten ChatGPT-Modell, in AI Assistant. Es kann verwendet werden, um automatisch Code zu vervollständigen und Hinweise zu erhalten. Sie können das neue Modell in den MetaEditor-Einstellungen auswählen.


  4. Aktualisierte Übersetzungen der Nutzeroberfläche.

Terminal

  1. Erhöhte Genauigkeit bei der Anzeige des Kalkulationspreises in der Spezifikation des Handelsinstruments.
  2. Feste MFE- und MAE-Berechnungen im Handelsbericht.
  3. Das Speichern und Wiederherstellen der Filtereinstellungen für den Wirtschaftskalender nach Land und Währung wurde korrigiert.
  4. Die Anwendung von Vorlagen auf Charts wurde korrigiert. Wenn die Anzeige der Handelshistorie für das Chart aktiviert ist, verschwinden die entsprechenden Objekte jetzt nicht mehr, nachdem eine Vorlage angewendet wurde.
  5. Fehler in der Optionentafel behoben. Die Hinzufügung von Symbolen auf der Tafel konnte unter bestimmten Bedingungen zum Einfrieren der Plattform führen.
  6. Fehler im Positionsbearbeitungsdialog behoben. In einigen Fällen konnten anstelle der aktuellen Stop-Loss- und Take-Profit-Werte falsche Werte eingegeben werden.
  7. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Die Funktion ArrayResize wurde optimiert und beschleunigt. Die Funktion kann unter bestimmten Bedingungen bis zu 40 % schneller ausgeführt werden.
  2. Aktualisierte Unterstützung für ONNX.
  3. MessageBox-Funktionsaufrufe in Dienstanwendungen wurden korrigiert. Unabhängig von der Schaltfläche, die der Nutzer im Dialogfeld gedrückt hat, gab die Funktion einen Nullwert zurück.
  4. Fehler behoben, der in manchen Fällen zu einer unvollständigen Initialisierung von MQL5-Programmen führte.
  5. Fehler beim Parsen einiger Makros wurde behoben. Der Fehler trat bei der Verwendung einer großen Anzahl von Konstanten auf.


MetaTrader 5 Web-Terminal

  1. Erweiterte Liste der verfügbaren analytischen Objekte. Mit dem Lineal können Sie nun Zeit und Preise messen, Formen zeichnen (Rechteck, Ellipse, Dreieck und Kreis) und Beschriftungen Ihrem Chart hinzufügen. Alle Objekte sind in der linken Leiste zu finden:


  2. Es wurde die Möglichkeit hinzugefügt, Objekte umzubenennen.
  3. Bessere Integration mit dem Wirtschaftskalender. Optimierte und beschleunigte Datenabfragen.
  4. Beschleunigte Chart-Operationen.
  5. Beschleunigter Start der Anwendung und Verbindung mit einem Handelskonto.
  6. Korrigierte Einstellung, die die Anzeige von Handelsoperationen auf dem Chart steuert.
  7. Korrigierte Anzeige der Einschussanforderungen in den Kontraktspezifikationen.
  8. Die Anzeige des Kontostatus im Abschnitt „Historie“ wurde korrigiert. Auf Geräten mit schmalen Bildschirmen konnte es zu Problemen kommen.
  9. Die Anzeige der Änderungen der Markttiefe wurde korrigiert.
22 März 2024
MetaTrader 5 Build 4260: Allgemeine Verbesserungen

Terminal

  1. Behoben wurde ein Fehler beim Abonnieren von kostenlosen Produkten im Abonnement-Service. Unter bestimmten Umständen wird die entsprechende Schaltfläche im Dialogfeld nicht angezeigt.
  2. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Erweiterte Unterstützung für Tastaturereignisse:

    • Das Ereignis CHARTEVENT_KEYUP für die Ereignisbehandlung in OnChartEvent hinzugefügt. Das ermöglicht die Verfolgung von Ereignissen im Zusammenhang mit dem Loslassen von Tasten.
    • Verarbeitung von Tottasten hinzugefügt. Dies sind die Tasten, die das Aussehen des Zeichens verändern, das durch die unmittelbar danach angeschlagene Taste erzeugt wird. Im griechischen Layout kann zum Beispiel ein betonter Vokal ά, έ, ύ usw. erzeugt werden, indem zuerst ";" und dann der Vokal gedrückt wird. Das Drücken solcher Tasten kann mit der Funktion TranslateKey nachverfolgt werden.
    • Verbesserte Funktionen TranslateKey und TerminalInfoInteger. Jetzt können Sie beim Empfang von CHARTEVENT_KEYUP- oder CHARTEVENT_KEYDOWN-Ereignissen in OnChartEvent den vollständigen Tastaturstatus zum Zeitpunkt des Ereignisses abrufen. Wenn der Nutzer z. B. die Taste Z gedrückt hat, können Sie feststellen, ob in diesem Moment die Strg- oder die Umschalttaste gedrückt wurde. Bei anderen Ereignissen arbeiten die Funktionen weiter wie bisher und geben den aktuellen Zustand der Tastatur zurück.

  2. Die Alglib-Bibliothek wurde aktualisiert. Nach der Aktualisierung wurden die folgenden Methoden in den Klassen CMatrixDouble und CMatrixComplex geändert:
    vector<double/complex> operator[](const int i) const;
    vector<double/complex> operator[](const ulong i) const;
    Sie wurden durch eine einzige Methode mit einem konstanten Rückgabewert ersetzt:
    const vector<double/complex> operator[](const ulong i) const;
    Diese Änderung wird dazu beitragen, die falsche Verwendung des Ergebnisses an Ort und Stelle zu erfassen, da in der neuen Alglib-Version der Code mat[row][col]=x anders funktioniert als in der alten Version. Zuvor war damit das Schreiben in eine Matrix gemeint. Jetzt wird der Wert in ein temporäres Objekt vector<double/complex> geschrieben, das nach der Aufzeichnung sofort zerstört wird.

    Durch Hinzufügen von const zum Rückgabewert wird die Verwendung von mat[row][col]=x ermöglicht. Da mat[row] jetzt einen konstanten Vektor zurückgibt, führt der Versuch, sein Element mit mat[row][col] zu überschreiben, zu einem Kompilierungsfehler.

  3. Es wurde ein Fehler behoben, der unter bestimmten Bedingungen zur fehlerhaften Ausführung der Funktion ChartGet* führen konnte.

MetaEditor

  1. Zusätzliche Suche durch den Inhalt des Buches Neural Networks for Algorithmic Trading in MQL5. Die neue Option erscheint in demselben Abschnitt wie das zuvor veröffentlichte Buch MQL5 Programming for Traders.



Tester

  1. Die Fehler bei einer Optimierung, die einer großen Anzahl von Remote-Agenten verwendete, wurde korrigiert. In einigen Fällen kann der Fehler eine übermäßige CPU-Auslastung verursachen.


MetaTrader 5 Web-Terminal

  1. Die Einstellung von Limit-Orders für Instrumente mit dem Ausführungsmodus Börse wurde korrigiert. Wenn sich nun der Preis des erteilten Auftrags im Verhältnis zum aktuellen Preis ändert (höher oder niedriger wird), wechselt der Auftragstyp nicht von Buy Limit zu Sell Limit und umgekehrt, wie es bei anderen Instrumenten der Fall ist. So können die Nutzer Buy-Limit-Aufträge oberhalb des Marktes und Sell-Limit-Aufträge unterhalb des Marktes platzieren und so sicherstellen, dass der Transaktionspreis garantiert begrenzt ist.
  2. Die Anzeige ausgewählter Symbolzähler im Market Watch wurde korrigiert.
7 März 2024
MetaTrader 5 build 4230: Mehr integrierte Anwendungen und erweiterte ONNX-Unterstützung

Terminal

  1. 28 neue Expert Advisors und 12 neue Indikatoren wurden zum Standardpaket der Plattform hinzugefügt. Die Anwendungen sind im Navigator unter Expert Advisors\Free Robots und Indicators\Free Indicators verfügbar. Jedes Programm existiert dort als Quellcode mit ausführlichen Kommentaren, um Sie beim Erlernen der MQL5-Sprache zu unterstützen.

    Die Roboter setzen Handelsstrategien um, die auf technischen Indikatoren und Kerzenmustern basieren, wie z. B. 3 Black Crows – 3 White Soldiers, Bullish Engulfing – Bearish Engulfing, Bullish Harami – Bearish Harami und andere. Neue Indikatoren sind Implementierungen beliebter Kanäle: Camarilla, DeMark, Donchian, Fibonacci und Keltner, um nur einige zu nennen.



  2. Die Vorbereitungen für die Einführung von Nasdaq-Marktdaten-Abonnements sind im Gange. Direkt von der Plattform aus können Händler auf Echtzeit-Kurse und umfassende Kursverläufe für Hunderte von Finanzinstrumenten von einer der größten Börsen zugreifen. Abonnements sind für jeden Nutzer mit einem Demo-Konto auf dem MetaQuotes-Demo-Server und einem MQL5.community-Konto verfügbar.



    Um loszulegen, müssen Sie nur ein Abonnement abschließen und die entsprechenden Symbole Ihrem Market Watch hinzufügen. Sie können diese Symbole wie normale Instrumente verwenden: Öffnen der Charts, Analyse mit Objekten und Indikatoren und Ausführen von Expert Advisors im Strategietester. Der Zugang zu allen Informationen erfolgt wie bei gewöhnlichen Finanzinstrumenten, mit denen Sie bei einem Broker arbeiten.

  3. Der Abschnitt über die Marge in der Spezifikation des Instruments wurde verbessert. Der Abschnitt enthält nun Margensätze und berechnete Werte für jedes Instrument.



    Behoben wurde Fehler in der Margenanzeige für bestimmte Arten von Symbolen.

  4. Link zum MQL5 Telegram-Kanal im Hilfe-Menü hinzugefügt. Auf dem Kanal werden regelmäßig interessante Inhalte für Entwickler geteilt, darunter Rezensionen neuer Programmierartikel sowie kostenlose Roboter und Indikatoren aus der Code Base. Abonnieren Sie diesen Kanal, um auf dem Laufenden zu bleiben und keine wichtigen Informationen zu verpassen.



  5. Unterstützung für den Parameter ShutdownTerminal im [StartUp]-Abschnitt der nutzerdefinierten Konfigurationsdateien hinzugefügt. Verwenden Sie diesen Parameter, um die Plattform zur Ausführung einmaliger Aufgaben mithilfe von Skripten zu starten. Sie haben zum Beispiel ein Skript, das einen Screenshot des Charts erstellt. Sie können eine Konfigurationsdatei erstellen, die dieses Skript zusammen mit der Plattform startet. Wenn Sie in dieser Datei ShutdownTerminal auf „Yes“ setzen, wird die Plattform sofort nach Beendigung des Skripts automatisch heruntergefahren.
  6. Verbesserter Schutz von Netzwerkprotokollen und Marktprodukten.
  7. Die Unterstützung von Signalen auf Demokonten wurde deaktiviert. Mit dem neuen Handelsbericht haben Sie Zugriff auf erweiterte Statistiken Ihrer Demokonten. Er bietet eine Fülle von Metriken, die die Rentabilität und die Risiken Ihrer Strategie charakterisieren, darunter Wachstums-, Salden- und Kapitalkurven, Diagramme der Handelsverteilung nach Richtung und Instrumenten und vieles mehr.
  8. Die Anzeige von Links zu Maklerverträgen im Hilfemenü wurde korrigiert.
  9. Verbesserte Auswahl des besten Servers bei der Miete von VPS.
  10. Die Aktualisierung der Abonnementseite beim Wechsel zwischen den Abschnitten im Navigator wurde korrigiert.
  11. Die Aktualisierung der Liste der Vereinbarungen bei der Eröffnung eines Kontos wurde korrigiert.
  12. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Die Eigenschaft MQL_STARTED_FROM_CONFIG wurde in der Enumeration ENUM_MQL_INFO_INTEGER hinzugefügt. Gibt „true“ zurück, wenn das Skript/der Expert Advisor über den Abschnitt „StartUp“ der Konfigurationsdatei gestartet wurde. Dies bedeutet, dass das Skript bzw. der Expert Advisor in der Konfigurationsdatei, mit der das Terminal gestartet wurde, angegeben wurde.
  2. Wir bauen die Unterstützung für ONNX-Modelle weiter aus.

    Aufgaben des maschinellen Lernens erfordern nicht immer eine höhere Rechengenauigkeit. Um Berechnungen zu beschleunigen, verwenden einige Modelle Datentypen mit geringerer Genauigkeit wie Float16 und sogar Float8. Damit die Nutzer die entsprechenden Daten in die Modelle eingeben können, wurden die folgenden Funktionen zu MQL5 hinzugefügt:
    bool ArrayToFP16(ushort &dst_array[],const float &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP16(ushort &dst_array[],const double &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const float &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayToFP8(uchar &dst_array[],const double &src_array[],ENUM_FLOAT8_FORMAT fmt);
    
    bool ArrayFromFP16(float &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP16(double &dst_array[],const ushort &src_array[],ENUM_FLOAT16_FORMAT fmt);
    bool ArrayFromFP8(float &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    bool ArrayFromFP8(double &dst_array[],const uchar &src_array[],ENUM_FLOAT8_FORMAT fmt);
    Da sich die realen Zahlenformate für 16 und 8 Bit unterscheiden können, muss der Parameter „fmt“ in den Konvertierungsfunktionen angeben, welches Zahlenformat verarbeitet werden muss. Für 16-Bit-Versionen wird die neue Enumeration NUM_FLOAT16_FORMAT verwendet, die derzeit folgende Werte hat:


    Für 8-Bit-Versionen wird die neue Enumeration ENUM_FLOAT8_FORMAT verwendet, die derzeit folgende Werte hat:

    • FLOAT_FP8_E4M3FN – 8-Bit-Gleitkommazahl, 4 Bits für den Exponenten und 3 Bits für die Mantisse, in der Regel als Koeffizienten verwendet.
    • FLOAT_FP8_E4M3FNUZ — 8-Bit-Gleitkommazahl, 4 Bits für den Exponenten und 3 Bits für die Mantisse. Unterstützt NaN, aber nicht die negative Null und Inf. Werden in der Regel als Koeffizienten verwendet.
    • FLOAT_FP8_E5M2FN – 8-Bit-Gleitkommazahl, 5 Bits für den Exponenten und 2 Bits für die Mantisse. Unterstützt NaN und Inf. Wird in der Regel für Gradienten verwendet.
    • FLOAT_FP8_E5M2FNUZ — 8-Bit-Gleitkommazahl, 5 Bits für den Exponenten und 2 Bits für die Mantisse. Unterstützt NaN, aber nicht die negative Null und Inf. Wird auch für Gradienten verwendet.

  3. Neue Matrix- und Vektormethoden für das maschinelle Lernen hinzugefügt:

    • PrecisionRecall berechnet Werte, um eine Precision-Recall-Kurve zu konstruieren. Ähnlich wie ClassificationScore wird diese Methode auf einen Vektor von wahren Werten angewendet.
    • ReceiverOperatingCharacteristic — berechnet Werte zur Erstellung der ROC-Kurve (Receiver Operating Characteristic). Ähnlich wie ClassificationScore wird diese Methode auf einen Vektor von wahren Werten angewendet.

  4. ONNX Runtime wurde auf Version 1.17 aktualisiert. Details zur Veröffentlichung finden Sie auf GitHub.
  5. Python-Integrationspaket auf Version 5.0.4200 aktualisiert, Unterstützung für Python 3.12 hinzugefügt. Aktualisieren Sie Ihr Paket mit dem Befehl "pip install --upgrade MetaTrader5", um die neuesten Änderungen zu erhalten.
  6. Die Funktion OrderCalcMargin wurde für einige Fälle korrigiert.
  7. Die Eigenschaft DEAL_REASON_CORPORATE_ACTION wurde in die Enumeration ENUM_DEAL_REASON hinzugefügt. Es handelt sich um eine Transaktion, das aufgrund einer Unternehmensmaßnahme durchgeführt wurde: Zusammenlegung oder Umbenennung eines Wertpapiers, Übertragung eines Kunden auf ein anderes Konto usw.
  8. Unterstützung für den Vergleich komplexer Vektoren und Matrizen für die Compare-Methode hinzugefügt. Bei dem Vergleich geht es darum, den Abstand zwischen komplexen Zahlen abzuschätzen. Der Abstand wird berechnet als sqrt(pow(r1-r2, 2) + pow(i1-i2, 2)) und ist eine reelle Zahl, die bereits mit epsilon verglichen werden kann.
  9. Die Umwandlung von Farbtypvariablen in Text im RGB-Format wurde korrigiert.
  10. Feste Wiederkehr des Ergebnisses der Ermittlung von Eigenvektoren in der Methode Eig im Falle eines komplexen Eigenwertes. Methodenüberladung für komplexe Auswertung hinzugefügt.

MetaEditor

  1. Link zum kürzlich veröffentlichten Buch „MQL5 Programming for Traders“ im Menü Help\MQL5.community wurde hinzugefügt. Das Buch wurde auch in das Suchsystem aufgenommen, sodass Sie die benötigten Informationen direkt von MetaEditor aus finden können:




  2. Verbesserungen bei der integrierten Suche:

    • Der Bereich der Suchergebnisse im Toolbox-Fenster wurde in zwei Registerkarten unterteilt: „Suche“ für Online-Suchergebnisse (Dokumentation, Artikel, Buch usw.) und „Suche in Dateien“ für lokale Ergebnisse.
    • Der Ergebnisbereich wurde um einen separaten Suchbegriff ergänzt. Sie können sie anstelle der Suchleiste in der Hauptsymbolleiste von MetaEditor verwenden.

  3. Hinzugefügt wurde die Unterstützung der Modi AVX, AVX2 und AVX512 beim Kompilieren von Befehlen von der Kommandozeile aus. Dazu fügen Sie einen der folgenden Schlüssel in Ihren Kompilierungsbefehl ein: /avx, /avx2 oder /avx512.
  4. SQLite-Engine für Datenbankoperationen auf Version 3.45 aktualisiert.
  5. Deaktivierte Unterstützung für Internet Explorer. Jetzt wird nur noch Microsoft Edge WebView2 zur Anzeige von HTML-Seiten verwendet. Im Vergleich zum veralteten MSHTML erweitert die neue Komponente die Möglichkeiten zur Darstellung von Inhalten erheblich, indem sie Zugang zu den neuesten Technologien bietet. Die Verwendung von WebView2 verbessert das Erscheinungsbild einiger MetaEditor-Abschnitte, erhöht die Leistung und schafft eine reaktionsschnellere Schnittstelle.
  6. Das Einfrieren, das in seltenen Fällen bei der automatischen Funktionsvervollständigung auftrat, wurde behoben.
  7. Behoben wurde ein Fehler in den Absturzprotokollen.

Tester

  1. Die Berechnungen von Triple-Swaps wurden korrigiert, wenn der Starttag des Tests auf den Tag des Triple-Swaps fällt.


MetaTrader 5 Web-Terminal

Verbesserte Anzeige der Margenbedingungen in den Kontrakspezifikationen. Neben den Kennzahlen und den Ausgangsparametern für die Berechnungen werden in den Spezifikationen nun auch die endgültigen Margenwerte angezeigt. Wenn die Höhe der Marge vom Positionsvolumen abhängt, werden die entsprechenden Stufen im Dialog angezeigt.



Die Marge wird auf der Grundlage des Kurses des Finanzinstruments zum Zeitpunkt des Öffnens des Spezifikationsfensters berechnet und nicht in Echtzeit aktualisiert. Daher sollten die Werte nur als Richtwerte betrachtet werden. Um die Werte auf der Grundlage der aktuellen Preise zu aktualisieren, öffnen Sie einfach erneut die Kontraktspezifikationen.
18 Januar 2024
MetaTrader 5 Build 4150: Export von Handelsberichten und neue Methoden des Machine Learning in MQL5

Terminal

  1. Der Export von Handelsberichten als HTML- und PDF-Dateien hinzugefügt. Mit dieser Option können Sie Ihre Handelserfolge problemlos mit Kollegen und Investoren teilen. Neue Exportbefehle sind im Menü Datei und im Menü Bericht verfügbar.




  2. Es wurde die Möglichkeit hinzugefügt, den aktuellen Status des Fensters der Marktübersicht in einer CSV-Datei zu speichern. Wählen Sie dazu im Kontextmenü Export. Die Datei speichert die Metriken, die zum Zeitpunkt des Exports ausgewählt sind. Um mehr Daten zu speichern, aktivieren Sie zusätzliche Spalten über das Kontextmenü.




  3. Verbesserte Anzeige der Margenbedingungen in den Kontrakspezifikationen. Anstelle von Verhältnissen und Anfangsparametern für die Berechnungen werden in den Spezifikationen nun die endgültigen Werte für die Marge angezeigt. Wenn die Höhe der Marge vom Positionsvolumen abhängt, werden die entsprechenden Stufen im Dialog angezeigt.



    Die Marge wird auf der Grundlage des Instrumentenkurses zum Zeitpunkt des Öffnens des Spezifikationsfensters berechnet und nicht in Echtzeit aktualisiert. Daher sollten die Werte als Richtwerte betrachtet werden. Um die Werte auf der Grundlage der aktuellen Preise neu zu berechnen, öffnen Sie die Instrumentenspezifikation erneut.

  4. Die Unterstützung von Signalen auf Demokonten wurde deaktiviert. Mit dem neuen Handelsbericht haben Sie Zugriff auf erweiterte Statistiken Ihrer Demokonten. Er bietet eine Fülle von Metriken, die die Rentabilität und die Risiken Ihrer Strategie charakterisieren, darunter Wachstums-, Salden- und Kapitalkurven, Diagramme der Handelsverteilung nach Richtung und Instrumenten und vieles mehr.
  5. Die Darstellung des potentiellen Gewinn bzw. Verlustes bei der Bearbeitung von Take-Profit und Stop-Loss für Stop-Limit-Aufträge wurde korrigiert.
  6. Korrekturen und Verbesserungen im Zusammenhang mit dem Betrieb des Zahlungssystems.
  7. Die doppelte Überprüfungen beim Laden einer Gruppe von Symbolen im Market Watch aus einer *.set-Datei wurden behoben.
  8. Der Web-Installer für Parallels wurde korrigiert. Wenn Sie nun dieses Virtualisierungssystem auf macOS mit M1/M2/M3 verwenden, wird die Plattform korrekt installiert.
  9. Aktualisierte Übersetzungen der Nutzeroberfläche.
  10. Behoben wurde ein Fehler in den Absturzprotokollen.

MQL5

  1. Es wurden neue Methoden für Operationen mit Matrizen und Vektoren hinzugefügt, die beim maschinellen Lernen verwendet werden.

    • ConfusionMatrix: Berechnet die Fehlermatrix. Die Methode wird auf den Vektor der vorhergesagten Werte angewendet.
    • ConfusionMatrixMultilabel: Berechnet die Fehlermatrix für jeden Labelwert. Die Methode wird auf den Vektor der vorhergesagten Werte angewendet.
    • KlassifizierungMetrik: Berechnet die Klassifizierungsmetrik, um die Qualität der vorhergesagten Daten im Vergleich zu den wirklichen Daten zu bewerten. Die Methode wird auf den Vektor der vorhergesagten Werte angewendet.
    • ClassificationScore: Berechnet die Klassifizierungsmetrik, um die Qualität der vorhergesagten Daten im Vergleich zu den wirklichen Daten zu bewerten. Die Methode wird auf den Vektor der wirklichen (true) Werte angewendet.
     
  2. Das Speichern von Daten in eine Textdatei im UTF-8-Format mit der Funktion FileWrite wurde korrigiert.
  3. Deaktivierte und veraltete Signal*-Funktionen. Sie werden nun leere Signalsätze zurückgeben.

MetaEditor

  1. Erhöhte Abtastrate für die Profilierung. Der Profiler erfasst die Anwendungszustände jetzt 10.000 Mal pro Sekunde, was eine genauere Messung der Funktionsausführungsraten ermöglicht.
  2. Aktualisierung der verfügbaren Modelle im automatischen Codierassistenten AI Assistant. ChatGPT-4 Turbo Modell hinzugefügt, veraltete Implementierungen entfernt.
  3. Fehler beim Ersetzen von Wörtern in einem ausgewählten Textfragment behoben.

Tester

  1. Das Einfrieren von Vorwärtstests, das im generischen Optimierungsmodus auftreten konnte, wurde behoben.
  2. Optimierte und beschleunigte Operationen mit der Handelsgeschichte von MQL5-Programmen.
  3. Korrigierte Gewinnberechnungen für Close By Operationen. Bei Handelsinstrumenten, die nicht mit dem Hauptsymbol des Tests übereinstimmen, konnte ein Fehler auftreten.

Web-Terminal

  1. Die Aktualisierung der Eigenschaften von Handelssymbolen bei Änderungen der relevanten Eigenschaften auf der Seite des Brokers wurde behoben.
  2. Die Darstellung von Kerzenkörpern im Chart wurde korrigiert. Das Chart konnte kleine Körperhöhen nicht korrekt anzeigen.
  3. Die Funktion des Feldes Land (Country) im Kontoeröffnungsformular wurde korrigiert.
20 Oktober 2023
MetaTrader 5 build 4040: Verbesserungen und Korrekturen

Terminal

  1. Verbesserter Handelsbericht. Die Anzeige des ersten Wertes im Wachstumsdiagramm und in der Drawdown-Berechnung wurde korrigiert.



  2. Bei der Kontoeröffnung erhalten die Händler über das interne E-Mail-System mehrere Nachrichten. Sie enthalten Anmeldeinformationen und nützliche Informationen über die Fähigkeiten der Plattform und die integrierten Dienste. Wir haben diese E-Mails aktualisiert und verbessert, sie in 50 Sprachen übersetzt und das Design komplett überarbeitet.
  3. Optimierte Seiten für Kontoeinzahlungen und -auszahlungen.
  4. Der Fehler bei der Volumenänderung beim Aufgeben eines neuen Auftrags behoben. Bei einigen Kombinationen von Einstellungen für Handelsinstrumente war das Feld nicht zur Bearbeitung verfügbar.
  5. Die Anzeige der Links zu Maklerverträgen im Dialog bei der Eröffnung eines Demokontos wurde korrigiert.
  6. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Es wurde ein Fehler behoben, der unter bestimmten Bedingungen zum Absturz des MQL5-Programms beim Start führen konnte.

MetaTrader 5 Web-Terminal

  1. Die Anzeige der Stop-Loss- und Take-Profit-Werte in der Handelshistorie wurde korrigiert.
  2. Verbesserte Protokollierung. Neue Protokollmeldungen zeigen Informationen über erfolgreiche und fehlgeschlagene Verbindungen an.
  3. Die Bedienung des Kontextmenüs in der Marktübersicht wurde korrigiert.
  4. Die Anzeige von Benachrichtigungen über Operationsergebnisse beim Handel über die Markttiefe wurde korrigiert.
  5. Der Fehler, der dazu führte, dass das Indikator-Unterfenster beim Aufruf des Handelsdialogs aus dem Diagramm entfernt wurde, wurde behoben.
  6. Das Ziehen von Handelsstufen, die über analytischen Objekten angezeigt werden, auf dem Chart wurde korrigiert.
29 September 2023
MetaTrader 5 build 4000: Handelsbericht und Webterminal sind verbessert

Terminal

  1. Die Anzeige des monatlichen Geldzuwachses in den neuen Handelsberichten wurde hinzugefügt. Um die Metriken anzuzeigen, gehen Sie zum Übersichtsbericht und wählen Sie den Saldenmodus.


    Monatliches Geldwachstum im neuen Handelsbericht


  2. Die Anzeige des neuen Handelsberichts wurde korrigiert und verbessert.
  3. ONNX Runtime wurde auf Version 1.16 aktualisiert. Details zur Veröffentlichung finden Sie auf GitHub.
  4. Aktualisierte Übersetzungen der Nutzeroberfläche.

MetaTrader 5 Web-Terminal

  1. Die Anzeige der Dialoge zum Ändern von Passwörtern und zum Öffnen von Konten wurde korrigiert.
  2. Die Anzeige der Stop-Loss- und Take-Profit-Werte in der Historie wurde korrigiert. Nach der Änderung der betreffenden Preise konnten Fehler auftreten.
  3. Scrollen im Risikowarnungsdialog hinzugefügt.
  4. Aktualisierte Übersetzungen der Nutzeroberfläche.
  5. Verbesserungen und Korrekturen
21 September 2023
MetaTrader 5 build 3980: Verbesserungen und Korrekturen

Terminal

  1. Neue Verbesserungen im Handelsbericht. Die Anzeige des Gesamtwerts der Swaps und des Gewinndiagramms nach Symbolen wurde korrigiert.
  2. Optimierte Ein- und Auszahlungsseiten. Weitere Einzelheiten über die Integration von Zahlungssystemen in der neue Plattform finden Sie in den Versionshinweisen zu Build 3950.
  3. Optimierte Neuberechnungen von Finanzoperationen auf der gesamten Plattform, einschließlich des Strategieprüfers. Jetzt werden Gewinn, Margen und viele andere Parameter schneller berechnet.
  4. Aktualisierte Übersetzungen der Nutzeroberfläche.

MQL5

  1. Konjugierte Methoden für komplexe, vector<complex> und matrix<complex> Typen wurden hinzugefügt. Es können Konjugationen komplexer Zahlen durchgeführt werden.
    //+------------------------------------------------------------------+
    //| Skript Programm Start Funktion                                   |
    //+------------------------------------------------------------------+
    void OnStart()
      {
       complex a=1+1i;
       complex b=a.Conjugate();
       Print(a, "  ", b);
       /*
       (1,1)  (1,-1)
       */
    
       vectorc va= {0.1+0.1i, 0.2+0.2i, 0.3+0.3i};
       vectorc vb=va.Conjugate();
       Print(va, "  ", vb);
       /*
       [(0.1,0.1),(0.2,0.2),(0.3,0.3)]  [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
       */
    
       matrixc ma(2, 3);
       ma.Row(va, 0);
       ma.Row(vb, 1);
       matrixc mb=ma.Conjugate();
       Print(ma);
       Print(mb);
       /*
       [[(0.1,0.1),(0.2,0.2),(0.3,0.3)]
        [(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]]
    
       [[(0.1,-0.1),(0.2,-0.2),(0.3,-0.3)]
        [(0.1,0.1),(0.2,0.2),(0.3,0.3)]]
       */
       
       ma=mb.Transpose().Conjugate();
       Print(ma);
       /*
       [[(0.1,0.1),(0.1,-0.1)]
        [(0.2,0.2),(0.2,-0.2)]
        [(0.3,0.3),(0.3,-0.3)]]
       */
      }
  2. Die Übergabe der Ausgaben von ONNX-Modellen des Typs ‚Sequence of maps‘ wurde hinzugefügt.

    Für ONNX-Modelle, die Map-Sequenzen in der Ausgabeschicht bereitstellen (ONNX_TYPE_SEQUENCE von ONNX_TYPE_MAP), sollte ein dynamisches oder festes Array von Strukturen als Ausgabeparameter übergeben werden. Die ersten beiden Felder dieser Struktur müssen den Schlüssel- und Werttypen ONNX_TYPE_MAP entsprechen und feste oder dynamische Arrays sein.

    Betrachten Sie das Modell iris.onnx, das mit dem folgenden Python-Skript erstellt wurde:
    from sys import argv
    data_path=argv[0]
    last_index=data_path.rfind("\\")+1
    data_path=data_path[0:last_index]
    
    from sklearn.datasets import load_iris
    iris_dataset = load_iris()
    from sklearn.model_selection import train_test_split
    X_train, X_test, y_train, y_test = train_test_split(iris_dataset['data'], iris_dataset['target'], random_state=0)
    from sklearn.neighbors import KNeighborsClassifier
    knn = KNeighborsClassifier(n_neighbors=1)
    knn.fit(X_train, y_train)
    
    # Konvertierung ins ONNX-Format
    from skl2onnx import convert_sklearn
    from skl2onnx.common.data_types import FloatTensorType
    initial_type = [('float_input', FloatTensorType([None, 4]))]
    onx = convert_sklearn(knn, initial_types=initial_type)
    path = data_path+"iris.onnx"
    with open(path, "wb") as f:
        f.write(onx.SerializeToString())
    Öffnen Sie die erstellte onnx-Datei in MetaEditor:

    Ansicht des ONNX-Modells in MetaEditor


    Die Map-Sequenz wird als "output_probability" übergeben. Sie verfügt über einen Schlüssel vom Typ INT64 (entspricht long in MQL5) und den Wert vom Typ float. Um Daten von diesem Ausgang zu erhalten, deklarieren Sie die folgende Struktur:
    struct MyMap
      {
       long              key[];
       float             value[];
      };
    Hier haben wir dynamische Arrays mit entsprechenden Typen verwendet. In diesem Fall können wir feste Arrays verwenden, da die Map für dieses Modell immer 3 Schlüssel/Wertpaare enthält.

    Da die Map-Sequenz zurückgegeben wird, sollte ein Array solcher Strukturen als Parameter für den Empfang von Daten von output_probability output übergeben werden. Diese Anordnung kann dynamisch oder fest sein, je nach den Eigenschaften eines bestimmten Modells. Beispiel:
    //--- ein Array deklarieren, um Daten von der Ausgabeschicht output_probability zu erhalten
    MyMap output_probability[];
    
    ...
    
    //--- Modell läuft
    OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);

MetaEditor

  1. Die Anzeige der Ausgabetypen im ONNX-Modellbetrachter wurde korrigiert.



MetaTrader 5 Web Terminal build 3980

  1. Im Hauptmenü des Web-Terminals wurde der Abschnitt „Contact Broker“ hinzugefügt.
  2. Fehlerbehandlung für SSL-Authentifizierungen hinzugefügt. Diese Authentifizierungsart wird im Webterminal nicht unterstützt. Stattdessen können Einmal-Passwörter verwendet werden.
  3. Der Download-Link für die Desktop-Plattform im Hauptmenü wurde korrigiert.
  4. Der Dialog zur Kontoverwaltung wurde korrigiert. Wenn der Broker die Option zur Eröffnung eines Demo- oder Realkontos nicht anbietet, wird der entsprechende Menüpunkt ausgeblendet.
Zurück1234567