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"
|
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 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 |
---|---|
Copia uma matriz, vetor ou array com conversão automática |
|
Obtém em uma matriz ou vetor a série histórica da estrutura MqlRates do período-símbolo especificado na quantidade especificada |
|
Retorna uma matriz com uns na diagonal principal e zeros em todas as outras posições. |
|
Cria uma matriz de identidade do tamanho especificado |
|
Cria e retorna uma nova matriz preenchida com uns |
|
Cria e retorna uma nova matriz preenchida com zeros |
|
Cria e retorna uma nova matriz preenchida com os valores fornecidos |
|
Cria uma matriz com uns na diagonal indicada e abaixo e zeros em todas as outras posições |
|
Inicializa uma matriz ou vetor |
|
Preenche uma matriz ou vetor existente com o valor fornecido |