Terminal
- Neue Verbesserungen im Handelsbericht. Die Anzeige des Gesamtwerts der Swaps und des Gewinndiagramms nach Symbolen wurde korrigiert.
- Optimierte Ein- und Auszahlungsseiten. Weitere Einzelheiten über die Integration von Zahlungssystemen in der neue Plattform finden Sie in den Versionshinweisen zu Build 3950.
- Optimierte Neuberechnungen von Finanzoperationen auf der gesamten Plattform, einschließlich des Strategieprüfers. Jetzt werden Gewinn, Margen und viele andere Parameter schneller berechnet.
- Aktualisierte Übersetzungen der Nutzeroberfläche.
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)]] */ }
- 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:
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
- Die Anzeige der Ausgabetypen im ONNX-Modellbetrachter wurde korrigiert.
MetaTrader 5 Web Terminal build 3980
- Im Hauptmenü des Web-Terminals wurde der Abschnitt „Contact Broker“ hinzugefügt.
- Fehlerbehandlung für SSL-Authentifizierungen hinzugefügt. Diese Authentifizierungsart wird im Webterminal nicht unterstützt. Stattdessen können Einmal-Passwörter verwendet werden.
- Der Download-Link für die Desktop-Plattform im Hauptmenü wurde korrigiert.
- 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.
Lesen Sie die vorige Nachricht:
- MetaTrader 5 Plattform Build 3950: Einzahlungen/Abhebungen im Terminal und aktualisierter Handelsbericht
- MetaTrader 5 Build 3800: Der Auftrag Book or Cancel (BOC), KI-Programmierassistent und erweiterte ONNX-Unterstützung
- MetaTrader 5 Build 3660: Verbesserungen und Korrekturen
- MetaTrader 5 Build 3640: Web-Terminal in 11 Sprachen
- MetaTrader 5 Build 3620: Verbesserungen am Web-Terminal, ONNX-Unterstützung und schnelle Matrix-Multiplikationen in MQL5