Tipos de matrizes e vetores

matrix и vector – são tipos de dados especiais em MQL5 projetados para realizar operações a partir de álgebra linear. Existem os seguintes tipos de dados:

  • matrix – matriz contendo elementos do tipo double
  • matrixf – matriz contendo elementos do tipo float
  • matrixc – matriz contendo elementos do tipo complex.
  • vector – vetor contendo elementos do tipo double
  • vectorf – vetor contendo elementos do tipo float
  • vectorc – vetor contendo elementos do tipo complex

Para uso em funções de modelo, é possível usar a entrada matrix<double>, matrix<float>, matrix<complex>, vector<double>, vector<float>, vector<complex> em vez dos tipos correspondentes.

MQL5 suporta a passagem de matrizes e vetores para DLLs. Assim, funções que usam esse tipo de dados são importadas a partir de bibliotecas externas.

Matrizes e vetores são passados para DLL como um ponteiro para um buffer. Por exemplo, para passar uma matriz do tipo float, o parâmetro correspondente da função DLL exportada deve levar um ponteiro para um buffer do 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 um processamento adequado de matrizes e vetores, além de seus buffers, devem ser passados seus tamanhos.

Métodos de inicialização de matrizes e vetores

Função

Ação

Assign

Copia uma matriz, vetor ou array com conversão automática

CopyRates

Obtém em uma matriz ou vetor a série histórica da estrutura MqlRates do período-símbolo especificado na quantidade especificada

Eye

Retorna uma matriz com uns na diagonal principal e zeros em todas as outras posições.

Identity

Cria uma matriz de identidade do tamanho especificado

Ones

Cria e retorna uma nova matriz preenchida com uns

Zeros

Cria e retorna uma nova matriz preenchida com zeros

Full

Cria e retorna uma nova matriz preenchida com os valores fornecidos

Tri

Cria uma matriz com uns na diagonal indicada e abaixo e zeros em todas as outras posições

Init

Inicializa uma matriz ou vetor

Fill

Preenche uma matriz ou vetor existente com o valor fornecido