Matrices et vecteurs

Une matrice est un tableau à 2 dimensions d'éléments doubles, flottants ou complexes.

Un vecteur est un tableau à 1 dimension d'éléments doubles, flottants ou complexes. Le vecteur n'a aucune indication sur le fait qu'il soit vertical ou horizontal. Cela est déterminé à partir du contexte d'utilisation. Par exemple, l'utilisation du vecteur Dot assume que le vecteur de gauche est horizontal et que le vecteur de droite est vertical. Si l'indication du type est requise, une matrice à 1 ligne ou à 1 colonne peut être utilisée. Cependant, ce n'est généralement pas nécessaire.

Les matrices et les vecteurs allouent dynamiquement de la mémoire pour les données. En fait, les matrices et les vecteurs sont des objets qui ont certaines propriétés, telles que le type de données qu'ils contiennent et les dimensions. Les propriétés de matrice et de vecteur peuvent être obtenues à l'aide de méthodes telles que vector_a.Size(), matrix_b.Rows(), vector_c.Norm(), matrix_d.Cond() et autres. Toutes les dimensions peuvent être modifiées.

Lors de la création et de l'initialisation des matrices, des méthodes dites statiques sont utilisées (elles sont comme les méthodes statiques d'une classe). Par exemple : matrix::Eye(), matrix::Identity(), matrix::Ones(), vector::Ones(), matrix::Zeros(), vector::Zeros(), matrix::Full( ), vector::Full(), matrix::Tri().

Pour le moment, les opérations matricielles et vectorielles n'impliquent pas l'utilisation du type de données complexe, car cette direction de développement n'est pas encore terminée.

MQL5 prend en charge le passage de matrices et de vecteurs aux DLL. Cela permet l'importation de fonctions utilisant les types pertinents, à partir de variables externes.

Les matrices et les vecteurs sont transmis à une DLL en tant que pointeur vers un buffer. Par exemple, pour passer une matrice de type float, le paramètre correspondant de la fonction exportée depuis la DLL doit prendre un pointeur de buffer de type float.

MQL5

#import "mmlib.dll"
bool sgemm(uint flagsmatrix<float> &C, const matrix<float> &A, const matrix<float> &Bulong Mulong Nulong Kfloat alphafloat beta);
#import

C++

extern "C" __declspec(dllexportbool sgemm(UINT flagsfloat *Cconst float *Aconst float *BUINT64 MUINT64 NUINT64 Kfloat alphafloat beta)

En plus des buffers, vous devez transmettre des tailles de matrice et de vecteur pour un traitement correct.

Toutes les méthodes matricielles et vectorielles sont répertoriées ci-dessous par ordre alphabétique.

Fonction

Action

Catégorie

Activation

Calcule les valeurs de la fonction d'activation et les écrit dans le vecteur/matrice passé

Machine learning

ArgMax

Renvoie l'indice de la valeur maximale

Statistiques

ArgMin

Renvoie l'indice de la valeur minimale

Statistiques

ArgSort

Renvoie l'index trié

Manipulations

Assign

Copie une matrice, un vecteur ou un tableau avec une distribution automatique

Initialisation

Average

Calcule la moyenne pondérée des valeurs de matrice/vecteur

Statistiques

Cholesky

Calcule la décomposition de Cholesky

Transformations

Clip

Limite les éléments d'une matrice/vecteur à une plage donnée de valeurs valides

Manipulations

Col

Renvoie un vecteur colonne. Ecrit un vecteur dans la colonne spécifiée.

Manipulations

Cols

Retourne le nombre de colonnes d'une matrice

Fonctionnalités

Compare

Compare les éléments de deux matrices/vecteurs avec la précision spécifiée

Manipulations

CompareByDigits

Compare les éléments de deux matrices/vecteurs avec la précision des chiffres significatifs

Manipulations

Cond

Calcule le conditionnement d'une matrice

Fonctionnalités

Convolve

Renvoie la convolution discrète et linéaire de deux vecteurs

Opérations

Copy

Renvoie une copie de la matrice/du vecteur donné

Manipulations

CopyIndicatorBuffer

Retourne la quantité spécifiée de données du buffer spécifié de l'indicateur vers un vecteur

Initialisation

CopyRates

Récupère la série historique de la structure MqlRates pour le symbole et la période spécifiés, avec le nombre spécifié d'éléments dans une matrice ou un vecteur

Initialisation

CopyTicks

Récupère les ticks d'une structure MqlTick dans une matrice ou un vecteur

Initialisation

CopyTicksRange

Récupère les ticks d'une structure MqlTick dans une matrice ou un vecteur dans la plage de dates spécifiée

Initialisation

CorrCoef

Calcul du coefficient de corrélation de Pearson (coefficient de corrélation linéaire)

Opérations

Correlate

Calcul de la corrélation croisée de deux vecteurs

Opérations

Cov

Calcul de la matrice de covariance

Opérations

CumProd

Renvoie le produit cumulé des éléments de matrice/vecteur, y compris ceux le long de l'axe donné

Statistiques

CumSum

Renvoie la somme cumulée des éléments de matrice/vecteur, y compris ceux le long de l'axe donné

Statistiques

Derivative

Calcule les valeurs dérivées de la fonction d'activation et les écrit dans le vecteur/matrice passé

Machine learning

Det

Calcule le déterminant d'une matrice carrée inversible

Fonctionnalités

Diag

Extrait une diagonale ou construit une matrice diagonale

Manipulations

Dot

Produit scalaire de deux vecteurs

Opérations

Eig

Calcule les valeurs propres et les vecteurs propres droits d'une matrice carrée

Transformations

EigVals

Calcule les valeurs propres d'une matrice générale

Transformations

Eye

Renvoie une matrice avec des 1 sur la diagonale et des 0 ailleurs

Initialisation

Fill

Remplit une matrice ou un vecteur existant avec la valeur spécifiée

Initialisation

Flat

Accès à un élément de la matrice via un index au lieu de deux

Manipulations

Full

Crée et retourne une nouvelle matrice remplie avec la valeur donnée

Initialisation

GeMM

La méthode GeMM (General Matrix Multiply) implémente la multiplication générale de deux matrices

Opérations

HasNan

Retourne le nombre de valeurs NaN dans une matrice/un vecteur

Manipulations

Hsplit

Divise une matrice horizontalement en plusieurs sous-matrices. Similaire à Split avec axis=0

Manipulations

Identity

Crée une matrice d'identité de la taille spécifiée

Initialisation

Init

Initialisation matricielle ou vectorielle

Initialisation

Inner

Produit interne de deux matrices

Opérations

Inv

Calcule l'inverse multiplicatif d'une matrice carrée inversible par la méthode de Jordan-Gauss

Solutions

Kron

Calcul du produit de Kronecker de deux matrices, matrice et vecteur, vecteur et matrice ou deux vecteurs

Opérations

LinearRegression

Calcule un vecteur/une matrice avec des valeurs de régression linéaire calculées

Statistiques

Loss

Calcule les valeurs de la fonction de perte et les écrit dans le vecteur/matrice passé

Machine learning

LstSq

Renvoie la solution des moindres carrés des équations algébriques linéaires (pour les matrices non carrées ou dégénérées)

Solutions

LU

Implémente une décomposition LU d'une matrice : le produit d'une matrice triangulaire inférieure et d'une matrice triangulaire supérieure

Transformations

LUP

Implémente une factorisation LUP avec permutation partielle, qui fait référence à la décomposition LU avec permutations de lignes uniquement : PA=LU

Transformations

MatMul

Produit matriciel de deux matrices

Opérations

Max

Renvoie la valeur maximale dans une matrice/vecteur

Statistiques

Mean

Calcule la moyenne arithmétique des valeurs des éléments

Statistiques

Median

Calcule la médiane des éléments matrice/vecteur

Statistiques

Min

Renvoie la valeur minimale dans une matrice/vecteur

Statistiques

Norm

Retourne la norme d'une matrice ou d'un vecteur

Fonctionnalités

Ones

Crée et renvoit une nouvelle matrice remplie de 1

Initialisation

Outer

Produit extérieur de deux matrices ou de deux vecteurs

Opérations

Percentile

Renvoie le centile spécifié des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié

Statistiques

PInv

Calcule la pseudo-inverse d'une matrice par la méthode de Moore-Penrose

Solutions

Power

Élevation d'une matrice carrée à une puissance entière

Opérations

Prod

Renvoie le produit des éléments matrice/vecteur, qui peut également être exécuté pour l'axe donné

Statistiques

Ptp

Renvoie la plage de valeurs d'une matrice/vecteur ou de l'axe de matrice donné

Statistiques

QR

Calcule la factorisation qr d'une matrice

Transformations

Quantile

Renvoie le quantile spécifié des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié

Statistiques

Rank

Renvoie le rang de la matrice à l'aide de la méthode Gaussienne

Fonctionnalités

RegressionMetric

Calculer la métrique de régression en tant qu'erreur d'écart par rapport à la ligne de régression construite sur le tableau de données spécifié

Statistiques

Reshape

Modifie la forme d'une matrice sans modifier ses données

Manipulations

Resize

Renvoie une nouvelle matrice avec une forme et une taille modifiées

Manipulations

Row

Renvoie un vecteur ligne. Ecrit le vecteur dans la ligne spécifiée

Manipulations

Rows

Retourne le nombre de lignes d'une matrice

Fonctionnalités

Set

Définit la valeur de l'élément d'un vecteur en spécifiant son indice

Manipulations

Size

Retourne la taille d'un vecteur

Fonctionnalités

SLogDet

Calcule le signe et le logarithme du déterminant d'une matrice

Fonctionnalités

Solve

Résout une équation matricielle linéaire ou un système d'équations algébriques linéaires

Solutions

Sort

Trier en place

Manipulations

Spectrum

Calcule le spectre d'une matrice comme l'ensemble de ses valeurs propres du produit AT*A

Fonctionnalités

Split

Divise une matrice en plusieurs sous-matrices

Manipulations

Std

Renvoie l'écart type des valeurs des éléments matriciels/vectoriels ou des éléments le long de l'axe spécifié

Statistiques

Sum

Renvoie la somme des éléments de matrice/vecteur, qui peuvent également être exécutés pour l'axe (les axes) donné(s)

Statistiques

SVD

Décomposition en valeurs singulières

Transformations

SwapCols

Echange des colonnes dans une matrice

Manipulations

SwapRows

Échange des lignes dans une matrice

Manipulations

Trace

Retourne la somme des diagonales d'une matrice

Fonctionnalités

Transpose

Transpose (échanger les axes) et renvoit la matrice modifiée

Manipulations

Tri

Construit une matrice avec des 1 sur une diagonale spécifiée et en dessous, et des 0 ailleurs

Initialisation

TriL

Renvoie une copie d'une matrice avec des éléments au-dessus de la k-ième diagonale mis à 0. Matrice triangulaire inférieure

Manipulations

TriU

Renvoie une copie d'une matrice avec les éléments sous la k-ième diagonale mis à 0. Matrice triangulaire supérieure

Manipulations

Var

Calcule la variance des valeurs des éléments de matrice/vecteur

Statistiques

Vsplit

Divise verticalement une matrice en plusieurs sous-matrices. Identique à Split avec axis=1

Manipulations

Zeros

Crée et renvoit une nouvelle matrice remplie de 0

Initialisation