Discussão do artigo "LibMatrix: Biblioteca de Álgebra Matricial (Parte I)"

 

Novo artigo LibMatrix: Biblioteca de Álgebra Matricial (Parte I) foi publicado:

O autor familiariza os leitores com uma simples biblioteca de álgebra matricial e fornece descrições e peculiaridades das principais funções.

As aplicações de vários ramos da matemática são essenciais para escrever sistemas complexos de negociação automatizada. Um desses ramos é álgebra linear.

Atualmente não existem extensas bibliotecas acessíveis ao público em MQL4 que implementam vários métodos de álgebra linear (particularmente, a teoria de matrizes e determinantes).

Este artigo descreve a biblioteca LibMatrix em MQL4 que inclui a execução das operações mais comuns com matrizes.

"Matriz" é um array retangular finito e preenchido com alguns objetos matemáticos (por exemplo, números).

Quatro meses depois de escrever todo o código em C++, reescrevi em MQL4 com algumas modificações.


3. Exemplo de Uso

Vamos dar uma olhada num exemplo para criação de uma regressão polinomial sobre uma série de valores dos preços usando a biblioteca proposta.

O processo para criação de uma regressão polinomial consiste em encontrar coeficientes polinomiais: f(x)=a[0]+a[1]*x+...+a[degree]*x^degree. Isto é realizado através da resolução de um sistema de equações algébricas lineares, onde os elementos da matriz de sistema, A[degree+1][degree+1], são definidos da seguinte fórmula: A[i][j]=(x[0]^(i+j)+x[1]^(i+j)+...+x[numPoints]^(i+j))/numPoints. Enquanto os elementos do vetor lateral direito, B[degree+1][1], são definidos usando a seguinte fórmula: B[i]=(y[0]*x[0]^i+y[1]*x[1]^i+...+y[numPoints]*x[numPoints]^i)/numPoints.

Para resolver a tarefa em mãos, nós temos um script (o arquivo LibMatrixEx.mq4 anexado no artigo) que cria um polinômio e exibe no intervalo inicial e à sua direita (ou seja, extrapolação). Valores polinomiais no intervalo de extrapolação podem ser utilizados para prever a direção do movimento preço.


Exemplo de operação do Script

Autor: Evgeniy Logunov