DEV Community

Abraão Moreira
Abraão Moreira

Posted on • Edited on

Robôs de investimento - Regressão linear

Fundamentação teórica

Regressão Linear Simples

Trata-se de um método de aproximação de um conjunto de dados a uma reta, ou seja, dado um conjunto de dados organizados em duas dimensões como pontos, o método traça uma reta com a menor distância possível entre todos os pontos. É utilizado para modelar uma aproximação a fim de visualizar a tendência de um grupo de dados e até mesmo para projeções de tendências futuras.

A regressão linear recebe este nome por relacionar os dados em uma função linear:

Y=α+βX+e Y = \alpha + \beta X + e

Considerando o conjunto de nn dados:

yi=α+βxi+ei,i=1,...,n y_i = \alpha + \beta x_i + e_i, i = 1, ..., n

Serão geradas nn equações e n+2n+2 . Com essas equações será necessário encontrar α\alpha e β\beta que minimizam a soma dos quadrados dos erros, tal que:

ei=yi(α+βxi),i=1,...,n e_i = y_i - (\alpha + \beta x_i), i = 1, ..., n

Obtemos então a soma dos quadrados dos erros:

SQ(α,β)=ni=1ei2=ni=1yi(α+βxi)2 SQ(\alpha, \beta) = \sum^{n}{i = 1} e^2_i = \sum^{n}{i = 1} {y_i - (\alpha + \beta x_i)}^2

Derivando em relação a α\alpha e β\beta :

SQ(α,β)α=0    α=yˉβxˉ \frac{\partial SQ(\alpha, \beta)}{\partial \alpha} = 0 \iff \alpha = \bar{y} - \beta \bar{x}

SQ(α,β)β=0    β=ni=1xiyinxˉyˉni=1xi2nxˉ2 \frac{\partial SQ(\alpha, \beta)}{\partial \beta} = 0 \iff \beta = \frac{\sum^{n}{i=1}x_iy_i - n \bar{x} \bar{y}}{\sum^{n}{i=1} x_i^2 - n \bar{x}^2}

Onde xˉ=i=1nxin\bar{x} = \frac{\sum_{i=1}^{n} x_i}{n} e yˉ=i=1nyin\bar{y} = \frac{\sum_{i=1}^{n} y_i}{n}

Estratégia

A linha de regressão traçada aproxima os preços de fechamento dos candles do gráfico corrente indicando a tendência, as máximas acima e mínimas abaixo da linha de regressão indicam os pontos de compra e de venda respectivamente [2].

As linhas de offset superior e inferior é uma estratégia para aproximar e facilitar a visualização das máximas e mínimas.

Exemplo da estratégia

Metodologia

Indicador

O usuário deve configurar alguns parâmetros para a execução do indicador:

  • Tamanho da janela: número de candles que serão considerados para o cálculo da regressão linear;
  • Cor das linhas superior, de regressão e inferior;
  • Estilo da linha superior, de regressão e inferior;
  • Espessura da linha superior, de regressão e inferior;
  • Distância da linha superior à linha de regressão;
  • Distância da linha inferior à linha de regressão.

Exemplo de entradas Indicador

Este indicador traça três linhas paralelas, a central é uma linha de regressão com n definido pelo tamanho da janela configurada pelo usuário, as linhas superior e inferior são cópias da linha de regressão com um offset configurado pelo usuário.

Exemplo funcionamento

Expert Advisor

O expert advisor (EA) é baseado no indicador supracitado, entretanto não desenha o indicador no gráfico, apenas executa uma estratégia com base na linha de regressão traçada.

O usuário deve inserir:

  • Tamanho da janela: número de candles que serão considerados para o cálculo da regressão linear;
  • A quantidade de candles a serem considerados no cálculo da regressão linear;
  • A distância para a linha superior;
  • A distância para a linha inferior; Stop Loss.

Exemplo de estradas EA

O EA executa ordens de compra e de venda a mercado quando o valor de uma das linhas, superior ou inferior, é atingida pelo preço corrente, sendo que quando a linha inferior é atingida é executada uma ordem de compra e quando a linha superior é atingida uma ordem de venda é executada.

Resultados

Foram executadas otimizações genéticas utilizando o testador de estratégias do Metatrader 5 na versão 5.00 build 2470, para otimizar o saldo máximo.

Teste 1

Parâmetros:

  • Ativo: WINM20
  • Período gráfico: 5 minutos;
  • Data: 01/05/2020 a 01/06/2020;
  • Modelagem: OHLC por 1 minuto;
  • Depósito inicial demonstrativo: R$10.000,00;
  • Volume de negociação fixado em 1 contrato.

Melhor retorno:

  • Lucro: R$2.739,00;
  • Lucro bruto: R$4.889,00;
  • Perda máxima: -R$2.160,00;
  • Número de operações: 186;
  • Tamanho da janela otimizado: 40 candles;
  • Limite superior otimizado: 26 pontos;
  • Limite inferior otimizado: 100 pontos;
  • Stop loss otimizado: 100.

Teste 2

Parâmetros:

  • Ativo: WINM20
  • Período gráfico: 5 minutos;
  • Data: 01/05/2020 a 01/06/2020;
  • Modelagem: OHLC por 1 minuto;
  • Depósito inicial demonstrativo: R$10.000,00;
  • Volume de negociação fixado em 1 contrato;
  • Stop loss fixado em 200 pontos.

Melhor retorno:

  • Lucro: R$3.141,00;
  • Lucro bruto: R$4.781,00;
  • Perda máxima: -R$1.640,00;
  • Número de operações: 83;
  • Tamanho da janela otimizado: 110 candles;
  • Limite superior otimizado: 136 pontos;
  • Limite inferior otimizado: 114 pontos;

Referências

Regressão Linear Simples. In: MORETTIN, Pedro; BUSSAB, Wilton. Estatística Básica. 6. ed. São Paulo - SP: Saraiva, 2010. cap. 16, p. 449-453.

Regressão Linear. In: LEMOS, Flávio. Análise Técnica dos Mercados Financeiros: Um Guia Completo e Definitivo dos Mercados de Negociação de Ativos. São Paulo - SP: Saraiva, 2016. cap. 8.4, p. 215-217.

MQL market - Indicador
MQL market - Expert Advisor

Top comments (0)