Tipos de matrices y vectores

matrix y vector son tipos de datos especiales en MQL5, diseñados para realizar operaciones de álgebra lineal. Existen los siguientes tipos de datos:

  • matrix – matriz que contiene elementos de tipo double
  • matrixf – matriz que contiene elementos del tipo float
  • matrix – matriz que contiene elementos del tipo complex
  • vector – vector que contiene elementos del tipo double
  • vectorf – vector que contiene elementos del tipo float
  • vectorc – vector que contiene elementos del tipo complex

Para su uso en funciones de plantilla, podemos utilizar la entrada matrix<double>, matrix<float>, matrix<complex>, vector<double>, vector<float>, vector<complex> en lugar de los tipos correspondientes.

MQL5 admite la transmisión de matrices y vectores a DLL. Esto permite que las funciones que usan este tipo de datos se importen desde bibliotecas externas.

Las matrices y vectores se transmiten a la DLL como el puntero a un búfer. Por ejemplo, para transmitir una matriz de tipo float, el parámetro correspondiente de la función DLL exportada deberá adoptar el puntero a un búfer de tipo float.

MQL5

#import "mmlib.dll"
bool sgemm(uint flagsmatrix<float> &Cconst matrix<float> &Aconst 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)

Para procesar correctamente las matrices y vectores, además de sus búferes, es necesario transmitir sus tamaños.

Métodos de inicialización de matrices y vectores

Función

Acción

Assign

Copia una matriz, vector o array con transformación automática

CopyRates

Obtiene las series históricas de la estructura MqlRates en una matriz o vector del símbolo-periodo especificado en la cantidad especificada.

Eye

Retorna una matriz con unidades a lo largo de la diagonal y ceros en el resto

Identity

Crea una matriz unitaria con el tamaño especificado

Ones

Crea y retorna una nueva matriz rellenada con unidades

Zeros

Crea y retorna una nueva matriz rellenada con ceros

Full

Crea y retorna una nueva matriz rellenada con los valores dados

Tri

Crea una matriz con unidades en la diagonal indicada y por debajo de la misma, y ceros en el resto.

Init

Inicializa una matriz o vector

Fill

Rellena una matriz o vector existente con el valor dado