Ideia de: josef strauss.
Código MQL5 por: Vladimir Karputov.
O EA utiliza o indicador Heiken Ashi Smoothed Oscillator:

Sinais exemplares para "Abrir Compra" e "Abrir Venda":


Os sinais para abertura de posições são recebidos apenas quando uma nova barra aparece, enquanto o acompanhamento das posições é checado a cada tick.
Neste EA, todo o código relacionado à definição de parâmetros de entrada para a Média Móvel, à criação de um indicador e à recepção dos valores do indicador é fornecido com comentários - optei por não remover completamente esse código: talvez alguém encontre uma solução para aplicá-lo.
Em vez disso, os seguintes parâmetros foram adicionados: Trailing, reversão de sinal e fechamento da posição oposta quando um sinal aparece.
Trailing
Acompanhamento de posições. Quando o Trailing Stop é definido como zero, o trailing será desativado.
Reversão
A flag Reverter sinal inverte completamente o valor do sinal para abertura de uma posição.
Fechamento da posição oposta quando um sinal aparece
A flag Fechar a posição oposta com um sinal com o valor true:
- Permite abrir VÁRIAS posições;
- Quando o sinal "Abrir Compra" é recebido, ele fechará as posições de Venda; quando o sinal "Abrir Venda" é recebido, fechará as posições de Compra.
Com o valor false, o EA terá APENAS UMA posição no mercado e, portanto, não fechará a posição oposta.
Recomendações para Otimização
Parâmetros exemplares, como valor inicial, passo e valor final, para símbolos no H1:

Comentário 0