Ajout d'une option de location de
VPS pour 12 mois.
matrix A(2, 3); matrix B(3, 2); matrix C = A @ B; // Result: Matrix C of size [2,2]Multiplication matricielle (matrice × vecteur)
matrix M(2, 3); vector V(3); vector R = M @ V; // Result: Vector R of 2 elementsMultiplication matricielle (vecteur x matrice)
matrix M(2, 3); vector V(1, 2); vector R = V @ M; // Result: Vector R of 3 elementsMultiplication scalaire (vecteur × vecteur)
vector V1(1, 3), V2(1, 3); double r = V1 @ V2; // Result: Scalar
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 );
Les dernières versions de l'application mobile MetaTrader 5 pour iOS introduisent une série de fonctionnalités graphiques pratiques, ainsi que d'importantes améliorations de la stabilité pour une expérience utilisateur plus fluide.
Téléchargez la dernière version de l'application et améliorez votre expérience de trading :
![]() |
![]() |
matrix<complex<T>> matrix<complex<T>>::TransposeConjugate(void) const;La méthode renvoie une nouvelle matrice conjuguée-transposée dans laquelle les éléments de la matrice originale sont transposés et convertis en leurs conjugués complexes.
int matrix<T>::CompareEqual(const matrix<T>& mat) constLes valeurs de retour sont les suivantes :
pip install --upgrade MetaTrader5
Fonction |
Action |
---|---|
Décomposition en valeurs singulières, algorithme de division et de conquête ; considéré comme le plus rapide parmi les autres algorithmes SVD (fonction lapack GESDD). |
|
Décomposition en valeurs singulières, algorithme QR ; considéré comme un algorithme SVD classique (fonction lapack GESVD). |
|
Décomposition en valeurs singulières, QR avec algorithme de pivotement (fonction lapack GESVDQ). |
|
Décomposition en valeurs singulières, algorithme de bissection (fonction lapack GESVDX). |
|
Décomposition en valeurs singulières, algorithme de Jacobi de haut niveau (fonction lapack GEJSV). |
|
Décomposition en valeurs singulières, algorithme de Jacobi de bas niveau (fonction lapack GESVJ). La méthode calcule les petites valeurs singulières et leurs vecteurs singuliers avec beaucoup plus de précision que les autres routines SVD dans certains cas. |
|
Décomposition en valeurs singulières, algorithme de division et de conquête pour les matrices bi-diagonales (fonction lapack BDSVDX). |
|
Décomposition en valeurs singulières, algorithme de bissection pour les matrices bi-diagonales (fonction lapack BDSVDX). |
|
Calcul des valeurs propres et des vecteurs propres d'une matrice carrée régulière à l'aide de l'algorithme classique (fonction lapack GEEV). |
|
Calcul des valeurs propres et des vecteurs propres d'une matrice symétrique ou hermitienne (conjuguée complexe) en utilisant l'algorithme de division et de conquête (fonctions lapack SYEVD, HEEVD). |
|
Calcul des contributions relatives des composantes spectrales sur la base de leurs valeurs propres |
|
Calcul des données reconstruites et prédites en utilisant les composantes spectrales de la série temporelle d'entrée. |
|
Calcul des composantes reconstruites de la série temporelle d'entrée et leurs contributions. |
|
Une fonction de méthode pour calculer la série temporelle reconstruite à l'aide des component_count premiers composants. |
.
Terminal
MQL5
Terminal Web
La mise à jour sera disponible via le système Live Update.
MetaTrader 5 Android
Mettez à jour vos applications mobiles via Google Play, Huawei AppGallery ou en téléchargeant le fichier APK.
Terminal
MetaTester
Terminal Web
MetaEditor
Terminal
MQL5
Terminal Web MetaTrader 5
vector<double/complex> operator[](const int i) const; vector<double/complex> operator[](const ulong i) const;Elles ont été remplacées par une méthode unique avec une valeur de retour constante :
const vector<double/complex> operator[](const ulong i) const;Cette modification aidera à capturer une utilisation incorrecte du résultat en place car dans la nouvelle version d'Alglib, le code mat[row][col]=x fonctionne différemment de l'ancienne version. Auparavant, cela signifiait écrire dans une matrice. Désormais, la valeur est écrite dans un vecteur d'objet temporaire<double/complex>, qui est immédiatement détruit après l'enregistrement.
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);Étant donné que les formats de nombres réels pour 16 et 8 bits peuvent être différents, le paramètre "fmt" des fonctions de conversion doit indiquer quel format de nombres doit être traité. Pour les versions 16 bits, la nouvelle énumération NUM_FLOAT16_FORMAT est utilisée, avec les valeurs suivantes :
Correction des erreurs rapportées dans les journaux de crash.
Terminal
MQL5
MetaEditor
Testeur
Terminal Web
Terminal
MQL5
Terminal Web MetaTrader 5
Terminal
Terminal Web MetaTrader 5
Terminal
MQL5
//+------------------------------------------------------------------+ //| Fonction de démarrage du programme de script | //+------------------------------------------------------------------+ 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)]] */ }
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) # Conversion en format ONNX 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())Ouvre le fichier onnx créé dans MetaEditor :
struct MyMap { long key[]; float value[]; };Nous avons utilisé ici des tableaux dynamiques avec les types correspondants. Dans ce cas, nous pouvons utiliser des tableaux fixes car la carte de ce modèle contient toujours 3 paires clé+valeur.
//--- déclaration du tableau pour récupérer les données de la couche de sortie output_probability MyMap output_probability[] ; ... //--- modèle en cours d'exécution OnnxRun(model,ONNX_DEBUG_LOGS,float_input,output_label,output_probability);
MetaEditor
Terminal Web
Terminal
The report is divided into four tabs, each containing aggregated information:
De nouveaux rapports vous permettent d'évaluer visuellement les résultats des transactions sous divers aspects en cliquant simplement sur les onglets. Les histogrammes, les graphiques et les diagrammes sont interactifs et fournissent des informations supplémentaires au passage du curseur de la souris. Nos concepteurs se sont efforcés de rendre les rapports aussi simples et clairs que possible. Essayez-les !
Terminal MetaTrader 5 x64 build 3914 started for MetaQuotes Software Corp.
Terminal Windows 10 build 19045, 20 x Intel Xeon E5-2630 v4 @ 2.20GHz, AVX, 41 / 63 Gb memory, 58 / 280 Gb disk, UAC, GMT+2
VPS Hosting
MQL5
#define MACRO1 /* #define MACRO2 */ void OnStart() { #ifdef MACRO2 Print( 2 ); #else Print( 1 ); #endif }
void OnStart() { Print("CPU name: ",TerminalInfoString(TERMINAL_CPU_NAME)); Print("CPU cores: ",TerminalInfoInteger(TERMINAL_CPU_CORES)); Print("CPU architecture: ",TerminalInfoString(TERMINAL_CPU_ARCHITECTURE)); Print(""); Print("EX5 architecture: ",__CPU_ARCHITECTURE__); } CPU name: 12th Gen Intel Core i9-12900K CPU cores: 24 CPU architecture: AVX2 + FMA3 EX5 architecture: AVX
extern int X=0; void OnStart() { }
extern int X; void OnStart() { }
extern int X; int Y=X; void OnStart(void) { Print("Y=",Y," X=",X); } int X=_Digits;
MetaEditor
Tester
Updated user interface translations.
Fixed errors reported in crash logs.
MetaTrader 5 Web Terminal build 3950
Terminal
MQL5
double vector::RegressionMetric( const vector& vector_true, // valeurs vraies const ENUM_REGRESSION_METRIC metric // métrique ); double matrix::RegressionMetric( const matrix& matrix_true, // valeurs vraies const ENUM_REGRESSION_METRIC metric // métrique ); vector matrix::RegressionMetric( const matrix& matrix_true, // valeurs vraies const ENUM_REGRESSION_METRIC metric, // métrique const int axis // axe );
vector::LinearRegression(); matrice matrix::LinearRegression( ENUM_MATRIX_AXIS axis=AXIS_NONE // axe le long duquel la régression est calculéeExemple :
vecteur vector_a; //--- remplit le vecteur avec les prix vector_a.CopyRates(_Symbol, _Period, COPY_RATES_CLOSE,1, 100); //--- obtient une régression linéaire vecteur vector_r=vecteur_a.LinearRegression();Les résultats sont visualisés dans un graphique :
ulong vector::HasNan(); ulong matrix::HasNan();Lors de la comparaison d’une paire d'éléments ayant des valeurs NaN, les méthodes Compare et CompareByDigits considèrent ces éléments comme égaux, alors que dans le cas d'une comparaison habituelle de nombres à virgule flottante, NaN != NaN.
Modification de la structure OnnxTypeInfo utilisée pour les opérations avec les modèles ONNX (Open Neural Network Exchange) :
struct OnnxTypeInfo { ENUM_ONNX_TYPE type; // type du paramètre OnnxTensorTypeInfo tensor; // description du tenseur OnnxMapTypeInfo map; // description de la carte OnnxSequenceTypeInfo sequence; // description de la séquence };
Le type de données est spécifié dans la structure à l'aide de nouvelles sous-structures :
struct OnnxTensorTypeInfo { ENUM_ONNX_DATATYPE data_type; // type de données dans le tenseur long dimensions[]; // nombre d'éléments }; struct OnnxMapTypeInfo { ENUM_ONNX_DATA_TYPE key_type; // type de la clé OnnxTypeInfo type_info; // type de la valeur }; struct OnnxSequenceTypeInfo { OnnxTypeInfo type_info; // type de données dans la séquence };En fonction de OnnxTypeInfo::type (ONNX_TYPE_TENSOR, ONNX_TYPE_MAP ou ONNX_TYPE_SEQUENCE), la sous-structure concernée est remplie.
bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,ulong start_pos,ulong count); bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,ulong count); bool vector<T>::CopyIndicatorBuffer(long indicator_handle,ulong buffer_index,datetime start_time,datetime stop_time);
MetaEditor
Tester
Correction des erreurs rapportées dans les journaux de crash.
Terminal Web
MQL5.community
Terminal
MQL5
Terminal Web