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

 

Am Freitag, den 6. Juni 2025, wird eine aktualisierte Version der MetaTrader 5-Plattform veröffentlicht.

In dieser Version haben wir den MetaEditor-Quellcode-Editor erheblich überarbeitet. Das integrierte Versionskontrollsystem, MQL5 Storage, wurde von Subversion auf Git, den weltweiten Standard für Entwickler, migriert und bietet damit mehr Zuverlässigkeit und Flexibilität bei der Codeverwaltung. Mit der Umstellung auf Git führen wir MQL5 Algo Forge ein, ein neues Online-Portal für das Projektmanagement. Es handelt sich nicht nur um eine Projektliste, sondern um ein vollwertiges soziales Netzwerk für Entwickler. Folgen Sie interessanten Entwicklern, bilden Sie Teams und arbeiten Sie mühelos an Projekten mit.

Darüber hinaus unterstützen alle Komponenten der Plattform jetzt einen Dunkelmodus, der eine komfortablere Nutzererfahrung während der Nachtstunden ermöglicht.


Wir haben auch die Option einer 12-Monatsmiete der VPS hinzugefügt. Wenn Sie langfristiges Hosting im Voraus kaufen, ersparen Sie sich ein Drittel der Gesamtkosten.

Darüber hinaus haben wir die Unterstützung für die Bibliotheken der linearen Algebra OpenBLAS in MQL5 erheblich erweitert und fast dreißig neue Funktionen hinzugefügt.

Das Update beinhaltet die folgenden Änderungen:


MetaTrader 5 Client-Terminal

  1. 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.

  2. Terminal: 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.

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




  4. Terminal: Optimierte Speichernutzung. Das Terminal verbraucht jetzt weniger Systemressourcen, was zu einer verbesserten Leistung führt.
  5. Terminal: Optimierte Anzeige der Kontohistorie. Die Plattform kann nun Millionen von Datensätzen korrekt anzeigen.
  6. Terminal: 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.
  7. Terminal: Behoben wurde der Fehler, der dazu führte, dass der Positionsänderungsdialog unter bestimmten Bedingungen einfror.
  8. Terminal: Korrigiert wurde die Berechnung für offene Positionen mit negativen Preisen.
  9. Terminal: Korrigierte Margensatzberechnungen in Handelssymbolspezifikationen mit negativen Preisen.
  10. Terminal: Die Berechnung der aktuellen MFE- und MAE-Werte und die Anzeige ihrer Diagramme in den Handelsberichten wurden korrigiert.
  11. Terminal: Die Skalierung der Oszillatoren in den Chart-Unterfenstern wurde korrigiert. Die vertikale Skala für Oszillatoren wird nun korrekt angezeigt.
  12. Terminal: Die Sichtbarkeit von Order-Books und Optionstafeln beim Wechsel in den Vollbildmodus wurde korrigiert.
  13. Terminal: Die Anzeige der Tickets von Positionen in der Handelshistorie des Kontos wurde hinzugefügt. Verwenden Sie das Kontextmenü, um die entsprechende Spalte zu aktivieren.
  14. Terminal: Korrigierte Berechnung des Liquidationswertes auf der Registerkarte Exposure für Futures und Optionen.
  15. Terminal: 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.
  16. Terminal: Die Anzeige des Bereichs mit dem VPS-Log wurde korrigiert. Die Seite konnte unter bestimmten Bedingungen einen Fehler anzeigen.
  17. Terminal: Berichtigt wurde die Unterstützung für HiDPI-Monitore unter Linux.
  18. Terminal: Aktualisierte Übersetzungen der Nutzeroberfläche.
  19. MQL5: 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
  20. MQL5: 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.

  21. MQL5: 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).

  22. MQL5: 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
       );
  23. MQL5: 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

  24. MQL5: 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.

  25. MQL5: 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.
  26. MQL5: 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.
  27. MQL5: Behebung von Problemen in Funktionen für die Arbeit mit OpenCL.
  28. MetaTester: Die Optimierung von Handelsstrategien wurde beschleunigt.
  29. MetaTester: 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.

MetaTrader 5 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.


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