Robôs de investimento - Curva de Coppock
Published: 2021-06-29 16:36:14

#Fundamentação teórica
##Rate of Change - taxa de mudança (ROC)
O ROC é um oscilador que flutua acima e abaixo de uma linha de zero, medindo a variação percentual de preços ao longo de determinado período.
O ROC de 20 períodos mede a variação percentual de preços ao longo de 20 períodos, quanto maior a diferença entre o preço atual e o de 20 períodos atrás, maior o valor do ROC. Quando o indicador está acima de zero, a variação percentual é positiva indicando tendência bullish, se o indicador está abaixo de zero, analogamente, há indício de tendência bearish. [1]

{% katex %} 
  ROC = \frac{C - C_n}{C_n} * 100
{% endkatex %}

{% katex inline %} C {% endkatex %} = Preço de fechamento atual;

{% katex inline %} C_n {% endkatex %} = = Preço de fechamento de n períodos atrás.

##Curva de Coppock
A Curva de Coppock é um método desenvolvido pelo economista Edwin Coppock, em 1965. O objetivo do indicador é identificar oportunidades de longo prazo de compra no S&P500 e Dow Industrials. Coppock usava o método apenas para indicar sinais de compra, mas também é possível aplicar a técnica de análise analogamente para vendas, assim como muitos analista utilizam.
Quando a linha do indicador cruza do território negativo para o positivo, há um sinal de compra, analogamente, um sinal de venda. [2]

O indicador original, projetada para uso em escala mensal, utilizando duas ROC de 14 e 11 meses, e uma média ponderada de 10 períodos:

{% katex %} 
MMP = \frac{\displaystyle\sum_{i=0}^n close(i)*i}{\displaystyle\sum_{i=0}^n n}
{% endkatex %}

{% katex %} 
Coppock = MMP10 [ROC14 + ROC11]
{% endkatex %}

#Metodologia
##Indicador
![Exemplo de visualização do indicador](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/7ewpfp46gufvsxp9eyri.png)

**Inputs:**
- Número de períodos utilizados no cálculo da MMP, por padrão 10;
- Número de períodos utilizados no cálculo da ROC "menor", por padrão 11;
- Número de períodos utilizados no cálculo da ROC "maior", por padrão 14.

São utilizados os preços de fechamento para o cálculo das ROCs, percorrendo o array de preços do início ao fim, exibindo cálculos para todos os dados disponibilizados no gráfico.
O indicador é exibido em uma janela separada do gráfico em forma de histograma tal que, acima da linha de zero o indicador é colorido de verde e abaixo colorido de vermelho, facilitando a visualização.

##Expert Advisor
![Exemplo do expert](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/lbqfv8448idrb4yxvut6.png)

O expert é baseado no indicador anteriormente descrito, é possível configurar o volume envolvido nas negociações, os limitadores, que ainda serão detalhados, e as configurações que serão aplicadas ao indicador.

###Estratégia de negociação
Todas as vezes que a curva de Coppock cruza a linha de zero para cima, há um sinal de compra, quando a curva cruza a linha de zero para baixo, há um sinal de venda.

###Limitadores
####Stop Loss (SL) e Take Profit (TP)
Todas as posições abertas são configuradas com SL e TP caso ele seja configurado diferente de zero ao iniciar o EA. A base para a operação, e consequentemente para a colocação dos stops, são os níveis de ask para as compras e bid para as vendas.

####Volume
Todas as posições abertas são configuradas com SL e TP caso ele seja configurado diferente de zero ao iniciar o EA. A base para a operação, e consequentemente para a colocação dos stops, são os níveis de ask para as compras e bid para as vendas.

####Intervalo de tempo
Todas as posições abertas são configuradas com SL e TP caso ele seja configurado diferente de zero ao iniciar o EA. A base para a operação, e consequentemente para a colocação dos stops, são os níveis de ask para as compras e bid para as vendas.

####Limite de ganhos e perdas diário
Caso o limite de ganhos ou perdas financeiros diários configurado pelo usuário seja atingido, uma mensagem é exibida informando o limite atingido, todas as posições abertas são finalizadas e não serão abertas novas posições no dia.

![Exemplo de entradas do EA](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/bj6gswfkjubwkybzjw84.png)


#Resultados
Os testes foram realizados utilizando a otimização genética disponível no Metatrader 5. Os stops (SL e TP) foram exagerados para análise pura da estratégia em daytrade, com negociações seguindo o movimento do indicador e ao fim do dia. A otimização se dá nas três configurações possíveis para o indicador, sendo que o indicador não é exibido para poupar processamento desnecessário.

![Entradas utilizadas no teste](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/o48lla8oai55a5lwofkr.png)

O melhor resultado em termos de retorno financeiro se dá com uma MMP de 52 períodos, a ROC menor com 25 períodos e a ROC maior com 38 períodos como é possível ver na imagem a seguir, que também trás alguns dos melhores resultados.

![Resultados da otimização](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/9o8ietaojml3mbp1dxh3.png)

#Referências
[1] Rate of Change - taxa de mudança (ROC). 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. 9.3.4, p. 251-252.

[2] Curva de Coppock. 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. 9.4, p.

[MQL Market](https://www.mql5.com/pt/market/product/51926)