Die neue MetaTrader 5 Plattform Build 3980: Verbesserungen und Korrekturen

 

Die aktualisierte Version der MetaTrader 5-Plattform wird am Donnerstag, den 21. September 2023, veröffentlicht. Es enthält eine Reihe von Korrekturen und Verbesserungen für die Plattform.

Die neue MetaTrader 5 Plattform Build 3980: Verbesserungen und Korrekturen


MetaTrader 5 Client Terminal Build 3980

  1. Terminal: Neue Verbesserungen im Handelsbericht. Die Anzeige des Gesamtwerts der Swaps und des Gewinndiagramms nach Symbolen wurde korrigiert.
  2. Terminal: Optimierte Ein- und Auszahlungsseiten. Weitere Einzelheiten über die Integration von Zahlungssystemen in der neue Plattform finden Sie in den Versionshinweisen zu Build 3950.
  3. Terminal: Optimierte Neuberechnungen von Finanzoperationen auf der gesamten Plattform, einschließlich des Strategieprüfers. Jetzt werden Gewinn, Margen und viele andere Parameter schneller berechnet.
  4. Terminal: Aktualisierte Übersetzungen der Nutzeroberfläche.
  5. MQL5: 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)]]
       */
      }
  6. MQL5: 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);
  7. MetaEditor: 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.


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