Você cria um Expert Advisor de MACD no MT5 sem programar colocando um nó Start, dois blocos de MACD — um lendo a linha principal, outro lendo a linha de sinal —, uma condição Cross entre eles e um bloco de ordem. O servidor gera e compila o MQL5 e te entrega um .ex5 de verdade. Quinze minutos, nenhuma sintaxe.
Depois vem a parte que decide se o arquivo vale alguma coisa. Esta receita tem um registro medido, e o número mais lisonjeiro dela é justamente aquele em que você menos deveria acreditar.
O que você vai montar
Um EA de posição única em um par, que compra quando a linha do MACD cruza acima da linha de sinal e vende quando ela cruza abaixo, com stop e alvo fixos, compilado para um .ex5 de verdade. Oito blocos.
Dois blocos dessa conta existem por um único motivo: o bloco indicador MACD devolve uma linha de cada vez.
Antes de começar: o que o MACD informa, e qual linha você está lendo
Você precisa de uma conta gratuita com endereço de e-mail verificado (projetar é gratuito e não exige login; compilar para .ex5 exige), cerca de quinze minutos, e um terminal MetaTrader 5.
O MACD subtrai uma média móvel lenta de uma rápida e depois tira de novo uma média dessa diferença. Então a linha principal mede o quanto duas médias se afastaram, e a linha de sinal é essa medição suavizada. Tudo o que uma regra de MACD consegue dizer é uma afirmação sobre a distância entre duas médias — o que significa que ele é uma ferramenta de tendência vestida de oscilador, e herda o atraso das duas médias que o construíram.
O bloco de MACD do Builder expõe estes ajustes:
| Ajuste do bloco | Padrão | O que ele controla |
|---|---|---|
fast_ema | 12 | A média mais rápida. Faixa de 1 a 999 |
slow_ema | 26 | A mais lenta. A distância entre as duas é o sinal inteiro |
signal_period | 9 | O quanto a diferença é suavizada antes de você compará-la |
line | MODE_MAIN | Qual linha este bloco emite — MODE_MAIN ou MODE_SIGNAL |
applied_price | PRICE_CLOSE | Qual preço alimenta o cálculo |
shift | 0 | 0 é a barra em formação; 1 é a última fechada |
timeframe | gráfico atual | Qualquer um de M1 até MN1, lido independentemente do gráfico |
line é a linha que muda o formato do seu fluxo. É um seletor de dois valores, então um bloco te dá uma linha. Um cruzamento da linha de sinal precisa, portanto, de dois blocos de MACD; um cruzamento da linha zero precisa de um, mais uma comparação contra uma constante.
Passo a passo: monte o EA de MACD no Builder
- Abra o EA Builder e carregue o modelo
macd_signalda galeria, ou comece de uma tela em branco para montar a fiação você mesmo. - Coloque um nó Start da paleta Utility. Sem ele, a validação interrompe a construção com
EAB-E202. - Adicione um bloco MACD e deixe
lineemMODE_MAIN. Deixe 12/26/9 como estão na primeira montagem, para que o seu resultado continue comparável à linha de base abaixo. - Adicione um segundo bloco MACD com períodos idênticos e defina
linecomoMODE_SIGNAL. Mesmo indicador, mesmos ajustes, saída diferente — este é o passo que as pessoas pulam, e pulá-lo é o motivo de o fluxo delas comparar uma linha com ela mesma. - Ligue os dois em uma condição Cross. O Cross recebe duas entradas e pergunta se uma cruzou a outra nesta barra; o
cross_typedele écrossoveroucrossunder, então o lado da compra e o lado da venda são duas condições separadas, e não uma invertida. - Ligue cada condição no seu próprio bloco Open Buy / Open Sell. Ligar um indicador direto em uma ordem é rejeitado com
EAB-E205— um valor bruto não é uma decisão. - Defina o risco na aba Settings. Os padrões compartilhados são um stop de 50 pips, um alvo de 100 pips e um lote fixo de
0.01; um fluxo sem stop válido levanta um diagnósticoCRITICALno preflight antes que ele construa. - Pressione Measure e leia o resultado contra a barra que o painel imprime: fator de lucro de pelo menos 1,2, no mínimo 60 operações, drawdown não pior que 20%.
- Pressione Compile .ex5, mova o arquivo para
MQL5/Expertspor File > Open Data Folder, atualize o Navigator e teste-o no Strategy Tester antes que ele encoste em uma conta.
- Nó Start
- Bloco MACD, line = MODE_MAIN
- Bloco MACD, line = MODE_SIGNAL
- Cross — crossover para a compra, crossunder para a venda
- Open Buy e Open Sell
- Stop-loss e take-profit
- Compilar para .ex5
Se em vez disso você quiser a versão da linha zero, apague o segundo bloco de MACD e troque o Cross pelo Compare, cujos operadores são > < >= <= == != e cujo offset tem 0 como padrão. “MACD principal acima de zero” é uma afirmação de que a média rápida está acima da lenta, e nada além disso — um evento muito mais raro e muito mais tardio do que as duas linhas se tocando. A paleta também traz o OsMA, que emite a diferença principal-menos-sinal diretamente como um único valor, então uma regra de histograma precisa de um bloco em vez de dois.
Ajustes de entrada, saída e parâmetros do MACD
| Ajuste | Valor do modelo | O que mexer nele faz |
|---|---|---|
fast_ema | 12 | Mais baixo reage antes e cruza muito mais vezes; a contagem de operações se mexe antes da taxa de acerto |
slow_ema | 26 | Aumentá-lo alarga a distância que a linha rápida precisa percorrer, então os sinais chegam mais tarde e mais raros |
signal_period | 9 | A suavização da linha de comparação. Mais curto significa mais cruzamentos, a maioria deles ruído |
line | MODE_MAIN | Não é um botão de ajuste — ele decide qual regra você montou |
shift | 0 | Defina 1 para decidir apenas em barras fechadas |
| Stop-loss | 50 pips (padrão compartilhado) | A faixa buscada foi de 30 a 80 |
| Take-profit | 100 pips (padrão compartilhado) | A faixa buscada foi de 60 a 250 |
Sobre o atraso, que é a crítica honesta a este indicador. Todo valor aqui é a saída de duas médias empilhadas sobre uma terceira. Um cruzamento é, portanto, um relato de que um movimento já aconteceu — a única pergunta é o quão tarde. Encurtar o fast_ema compra antecipação e paga por ela em cruzamentos falsos; alongar o slow_ema compra confiabilidade e paga por ela em entradas que chegam depois do movimento. O próprio registro do modelo sugere onde ele foi parar: 698 operações em um ano, a segunda maior contagem dos treze modelos de tendência e momentum medidos sob condições idênticas. Isso é um projeto disparando o tempo todo, e disparar o tempo todo é o que um atraso curto custa.
O que a busca mexeu e o que ela não mexeu. A busca de parâmetros registrada mexeu apenas no stop e no alvo — SL30-80 × TP60-250, 12 combinações em três janelas no H1. Ela nunca variou fast_ema, slow_ema nem signal_period. Então nada nesta página sustenta a afirmação de que 12/26/9 esteja certo, errado ou seja melhorável. O que ela sustenta é uma afirmação bem mais estreita e bem mais útil: nenhuma combinação de stop e alvo resgatou o projeto.
Faça o backtest do EA de MACD
Este é o registro medido do próprio Builder, e não uma reexecução, e todo modelo da comparação compartilha o único bloco de condições abaixo. Como testamos descreve o padrão a que esses registros são submetidos.
Linha de base do macd_signal | Valor |
|---|---|
| Fator de lucro | 0,93 |
| Operações | 698 |
| Drawdown máximo | -1,05% |
| Líquido | -93,93 |
| Posição na vizinhança por fator de lucro | 8º de 13 |
| Posição na vizinhança por contagem de operações | 2º de 13 |
| Passa na própria barra de aprovação do painel Measure | não |
| Condições do teste | |
|---|---|
| ID do experimento | EXP-MACD-RECIPE-BASELINE-001 |
| Experimento pai | EXP-BUILDER-TEMPLATE-BASELINE-001 |
| Símbolo / tempo gráfico | USDJPYm M5 |
| Período | 2025-06-01 – 2026-06-09 |
| Modelo | M1 OHLC (Model=1) |
| Depósito | 10,000 |
| Ambiente | Exness MT5 |
| Linha de base medida | 2026-06-18 |
| Última verificação | 2026-08-25 |
O resultado da busca merece mais do que uma linha. Oito modelos da galeria carregam uma busca de parâmetros registrada, e os oito terminaram em no_robust_edge. Mas eles falharam de duas formas diferentes, e a diferença importa mais do que o veredito comum. Dois deles nunca produziram ajuste vencedor algum, nem no período em que a busca foi ajustada. O macd_signal é o único que produziu um ajuste que passou de 1,0 fora da amostra — 1,14 a 1,15 no alvo mais largo — e que depois marcou 0,74 a 0,77 na janela anterior a ela. A palavra que o próprio manifesto usa para isso é regime-dependent, ou seja, dependente do regime.
Leia o que isso implica sobre teste. Se você tivesse dividido os seus dados uma vez, ajustado na primeira metade e conferido na segunda, este modelo teria te entregado um resultado aprovado. A única coisa que o pegou foi conferir um terceiro período que a busca nunca viu. Esse é o argumento a favor da análise walk-forward em um caso concreto, e ele vale mais do que qualquer aviso genérico sobre sobreajuste.
Onde o MACD fica entre os vizinhos, todos medidos sob o único bloco de condições acima:
| Modelo | Blocos | Fator de lucro | Drawdown | Operações |
|---|---|---|---|---|
ma_perfect_order_trend | 10 | 1,07 | -0,36% | 305 |
mtf_osc_filter | 27 | 1,04 | -0,64% | 187 |
consecutive_bars_momentum | 7 | 1,03 | -0,36% | 377 |
ao_ama_trend | 14 | 0,97 | -0,95% | 239 |
adx_trend | 12 | 0,96 | -0,76% | 534 |
multi_tf_trend | 15 | 0,96 | -0,51% | 247 |
ma_crossover | 9 | 0,95 | -0,84% | 420 |
macd_signal | 8 | 0,93 | -1,05% | 698 |
ma_slope_trend | 7 | 0,92 | -1,00% | 478 |
mtf_adx_filter | 14 | 0,92 | -0,84% | 343 |
elder_ray | 9 | 0,90 | -1,34% | 529 |
pitch_trail_trend | 9 | 0,77 | -1,61% | 467 |
dynamic_sl_trend | 9 | 0,68 | -1,62% | 708 |
Divida esses treze na própria mediana de contagem de operações, 420, e as metades se separam com clareza. Os seis que operaram menos tiveram fator de lucro médio de 1,00 em 283 operações, com drawdown de -0,61%. Os seis que operaram mais tiveram média de 0,86 em 569 operações, com -1,23% — resultados piores e o dobro da profundidade. Os três projetos acima de 1,0 estão todos na metade mais quieta. O MACD está na mais agitada.
Isso é a descrição de treze projetos sob uma única configuração, e não uma lei: a lógica de entrada, a contagem de nós e as saídas também diferem, então a frequência não fica estabelecida como a causa. Mas é o padrão que está diante de você, e o modelo de MACD que vem pronto está do lado errado dele.
Erros comuns a evitar
Acreditar em uma aprovação fora da amostra. Este é o erro que este modelo existe para demonstrar. Um único período reservado é uma única amostra, e uma regra de momentum pode vencer uma única amostra porque o mercado teve tendência durante ela. Teste uma terceira janela que a busca nunca viu antes de acreditar em um número.
Comparar uma linha com ela mesma. Se os dois blocos de MACD ficarem em MODE_MAIN, a condição Cross compara valores idênticos e nunca dispara — ou dispara por arredondamento. Confira o ajuste line nos dois blocos antes de se perguntar por que a contagem de operações está zerada.
Ler um cruzamento como uma previsão. O MACD são duas médias de uma média. Um cruzamento informa que um movimento já está em curso há algumas barras. A escolha de projeto é o quanto de atraso você aceita, e não se você aceita algum.
Ajustar o stop e o alvo até a curva de capital ficar bonita. A busca registrada já fez isso de forma sistemática, em 12 combinações e três janelas, e reportou no_robust_edge. Se o seu ajuste manual superar uma busca sistemática, desconfie do ajuste.
Empilhar filtros de momentum. A composição acima é a versão medida desse instinto: 3,76 vezes o drawdown por um fator de lucro um pouco pior.
Rodá-lo ao lado de outro EA sem separar os dois. Cada EA em uma mesma conta precisa do próprio número mágico, ou as saídas de um EA fecham as posições do outro.
Próximos passos e variações
Quando não usar o MACD. Em um mercado lateral, duas médias se cruzam repetidamente e todo cruzamento é ruído — e um padrão que dispara rápido é exatamente o que um mercado lateral pune. Se você não consegue enunciar uma condição que desligue a regra durante períodos sem direção, ou adicione uma, ou use uma ideia que não dependa da separação entre as duas médias.
As variações que valem a tentativa, em ordem de evidência. Tente primeiro a versão da linha zero: ela é um bloco mais simples e dispara muito menos vezes, e a metade mais quieta da vizinhança é onde fica todo resultado acima de 1,0. Depois experimente a mesma regra em um timeframe mais alto dentro do bloco de MACD, o que desacelera o sinal sem tocar no gráfico. Só depois disso mexa nos períodos — e mude um de cada vez.
Depois teste direito. O painel Measure é de nível de barra e aproximado; ele é um filtro, não um veredito. Como fazer backtest no MT5 percorre uma execução real de ponta a ponta, inclusive em qual dos dois números de drawdown do relatório acreditar. Como criar um EA de RSI é a receita irmã, com o modo de falha oposto — a busca dela nunca venceu nada, o que a torna mais fácil de rejeitar e menos instrutiva do que esta. Como criar um EA MT5 sem programar cobre o vocabulário de blocos mais amplo, e os guias de backtesting aprofundam a etapa de walk-forward que esta página defende.
E para calibrar como é um registro documentado, cada um dos EAs publicados traz uma lista completa de operações fechadas e um manifesto de execução. Compare um deles com a tabela acima antes de confiar em qualquer estratégia, inclusive em uma que você mesmo montou.