Robôs de investimento -MACD simples
Published: 2021-06-29 16:20:08

#Fundamentação teórica
O MACD utiliza duas médias móveis, subtraindo a média móvel maior da menor, é traçada uma linha de referência em zero, o MACD oscila acima e abaixo da linha de zero sendo que:

- Maior que zero: médias convergem;
- Igual a zero: médias atravessando;
- Menor que zero: médias divergem.

No indicador clássico são utilizadas médias móveis de 12 e 26 períodos, como médias maior e menor para o cálculo do indicador, e uma média de 9 períodos é utilizada junto com o MACD como uma linha de sinal que indica viradas de tendência. Todas as médias são calculadas com base em preços de fechamento de candles. Podem ser utilizadas médias móveis diferentes a depender da situação.

Quando o MACD cruzar a linha de zero para cima, há um sinal de compra, quando o MACD cruzar a linha de zero para baixo , há um sinal de venda. [1]

#Metodologia
##Indicador MACD
O robô de negociação, ou Expert Advisor (EA), foi escrito na linguagem mql5 tem como base o indicador MACD disponibilizado na biblioteca nativa da linguagem, esse indicador utiliza três médias aritméticas com a quantidade períodos programáveis pelo usuário, utilizando sempre os preços de fechamento do período (candles) para a os cálculos, a duração de cada período é sempre igual a corrente no gráfico onde o EA está aplicado.

##Estratégia de negociação MACD
O cálculo do MACD é executado uma vez a cada tick, e são considerados para fim de cálculo os três últimos resultados, para analisar o cruzamento da linha de zero, ou seja quando o último resultado for maior que 0 e o antepenúltimo não então há um cruzamento para cima e analogamente para baixo, quando um cruzamento é constatado o estado de uma variável de controle é alterado de "false" para "true", permitindo o abertura de uma posição caso a média de sinal também cruze a linha de zero, a medida do cruzamento é feita pelo mesmo método do cruzamento do MACD.

##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
Caso o volume de contratos a serem negociados configurado pelo usuário não esteja de acordo com o necessário para o ativo do gráfico, uma mensagem de advertência é exibida informando o erro e como corrigi-lo. Será executado ao inserir o EA no gráfico e tentar realizar uma negociação, que será impedida.

###Intervalo de tempo
É possível configurar os horários de início e fim da possibilidade de abertura de posições pelo EA, caso o controle esteja habilitado ao se inserir o EA no gráfico fora do horário definido uma mensagem de advertência é exibida informando o horário configurado.

###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.

#Resultados
##WINQ20
![Entradas teste WINQ20](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/91njyvw4hn2q602a7mkz.png)

![Resultado teste WINQ20](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/8l40e22mc8vrc2q1trds.png)

##EURUSD
![Entradas teste EURUSD](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/h1elya87xau4xayon6qh.png)

![Resultado teste EURUSD](https://dev-to-uploads.s3.amazonaws.com/uploads/articles/qbpzu4wtbrw1ez60b3rp.png)

#Referências
[1] Moving Average Convergence/Divergence (MACD). 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.2, p. 245-249.