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"
|
C++
extern "C" __declspec(dllexport) bool sgemm(UINT flags, float *C, const float *A, const float *B, UINT64 M, UINT64 N, UINT64 K, float alpha, float 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 |
---|---|
Copia una matriz, vector o array con transformación automática |
|
Obtiene las series históricas de la estructura MqlRates en una matriz o vector del símbolo-periodo especificado en la cantidad especificada. |
|
Retorna una matriz con unidades a lo largo de la diagonal y ceros en el resto |
|
Crea una matriz unitaria con el tamaño especificado |
|
Crea y retorna una nueva matriz rellenada con unidades |
|
Crea y retorna una nueva matriz rellenada con ceros |
|
Crea y retorna una nueva matriz rellenada con los valores dados |
|
Crea una matriz con unidades en la diagonal indicada y por debajo de la misma, y ceros en el resto. |
|
Inicializa una matriz o vector |
|
Rellena una matriz o vector existente con el valor dado |