Como colocar no papel a ideia de cruzamento de médias no MetaTrader 5
Você tem a estratégia na cabeça: duas médias, um sinal de compra quando a rápida ultrapassa a lenta, e o inverso para venda. O grande obstáculo está na transposição desse pensamento para código MQL5 que execute exatamente o que o trader imagina, sem atrasos nem falsos disparos.
Primeiro, a coleta de dados. Muitos iniciantes usam iClose dentro de um loop e esquecem que o preço de fechamento só está disponível após o fechamento da barra. Resultado: o robô gera sinais “prematuros”, compra antes da confirmação e vê o preço recuar. A solução prática é usar CopyBuffer com ENUM_TIMEFRAMES alinhado ao timeframe do gráfico, garantindo que o buffer contenha valores já consolidados.
Segundo, a lógica de cruzamento. O erro clássico é comparar apenas o último valor das duas médias. Se a média rápida oscila acima e abaixo da lenta dentro da mesma barra, o algoritmo perde o cruzamento porque a verificação ocorre só no final da barra. O truque consiste em armazenar o valor da média rápida na barra anterior (prevFast) e compará‑lo ao valor atual (currFast) em relação à média lenta (slow). O padrão de código fica assim:
- Obter
prevFast = fastBuffer[i+1]ecurrFast = fastBuffer[i]. - Se
prevFast <= slowBuffer[i+1]ecurrFast > slowBuffer[i], disparar compra. - O inverso gera venda.
Terceiro, a gestão de risco. Um robô que ignora stop‑loss e tamanho de lote adequado transforma um cruzamento “limpo” em uma série de perdas quando o mercado entra em regime lateral. Um cálculo simples de risco percentual (ex.: 1 % do capital por operação) integrado ao OrderSend impede que o “teste de conceito” exploda a conta.
Quarto, o teste em ambiente real. Backtests no Strategy Tester podem parecer perfeitos porque operam com dados históricos limpos, mas a latência de execução no mercado ao vivo costuma reduzir a taxa de acerto em até 15 %. Por isso, teste primeiro em uma conta demo, ajuste o parâmetro Slippage para refletir a realidade do seu broker e só então migre para o real.
Com esses quatro pontos – buffer consolidado, verificação de cruzamento de duas barras, controle de risco e teste de latência – o tutorial de MQL5 para automatizar estratégias de médias móveis deixa de ser um conjunto de snippets desconexos e se torna um workflow reproduzível. O objetivo final é simples: gerar sinais consistentes, limitar perdas e transformar a ideia de cruzamento em lucro mensurável.
Para quem quer aprofundar cada passo, incluindo exemplos de código pronto e análises de desempenho, vale conferir o curso abc do trader. Clique aqui e explore o material complementar.
Primeiros passos depois da compra
Abra o arquivo .mq5 que veio no zip e arraste para a pasta Experts do MetaEditor. Não deixe o IDE aberto antes de copiar; ele pode travar ao recarregar scripts.
Feche e reinicie o MetaTrader 5. Na janela Navigator, clique duas vezes no nome do robô – “MM_CrossBot”. Se aparecer o aviso de símbolos não reconhecidos, abra o Assistente de Símbolos e marque apenas o par que usará (EURUSD, GBPJPY etc.).
Configuração inicial
Na aba Inputs do tester, ajuste os parâmetros críticos:
- FastPeriod: 9 – suficiente para capturar curto prazo sem ruído excessivo.
- SlowPeriod: 21 – padrão clássico, mas teste 34 ou 55 para mercados trending.
- StopLoss: 30 pips – evite buffers maiores que 50 pips em pares voláteis.
- TakeProfit: 60 pips – a razão 1:2 garante expectativa positiva.
Marque UseTrailingStop apenas se quiser eliminar a manutenção manual; ele entra em ação após 30 pips de lucro. Dependendo da corretora, o trailing pode ser bloqueado por políticas de hedge.
Workflow operacional semanal
| Dia | Tarefa | Tempo estimado |
|---|---|---|
| Segunda | Revisar backtest 7‑dias + validar drawdown | 15 min |
| Quarta | Ajustar FastPeriod – busca de “sweet spot” via otimização genérica | 20 min |
| Sexta | Gerar relatório de performance e atualizar checklist | 10 min |
Se algum dia falhar – por exemplo, o teste gerar “max‑drawdown > 20%” – pausa a rodada e analise o Spread. Spreads altos costumam inflar perdas em estratégias de cruzamento.
Checklist de produtividade
- ✅ Verificar horário da sessão (London/NY) antes de ativar o bot.
- ✅ Confirmar que o filtro de horário (
TradeTimeFrom/To) está alinhado ao seu plano. - ✅ Checar logs de erro (arquivo
Experts.log) após cada 50 trades. - ✅ Atualizar variáveis de risco ao mudar o saldo (recalc
LotSize). - ✅ Desligar o auto‑lot “martingale” se o Equity cair abaixo de 90% do Balance.
Erros comuns e como evitá‑los
1. Sobre‑otimização: usar a mesma janela de 1000 velas para calibrar Fast/Slow e, em seguida, aplicar no mesmo período. Resultado: performance inflada que desmorona ao vivo.
2. Negligenciar o slippage: o script assume execução a preço de fechamento; na prática, a diferença pode ser de 2‑3 pips em alta liquidez, subtraindo ganho da estratégia.
3. Deixar o “MagicNumber” padrão: múltiplos robôs podem interferir, gerando ordens cruzadas. Defina um número exclusivo (ex.: 13579).
Habitos complementares para não abandonar a rotina
Reserve 5 minutos ao final de cada sessão para registrar, num bloco de notas, a maior variável que “surpreendeu”. Esse micro‑ritual cria um gatilho psicológico que impede a mesmice e mantém o aprendizado ativo.
Observação: desempenho consistente costuma aparecer após 200 trades – não se iluda com “primeiro lucro” como sinal de sucesso.
Pronto para avançar? O próximo módulo do curso aprofunda estratégias de filtragem por volatilidade e inclui um dashboard de monitoramento em tempo real. Conheça o curso abc do trader.
Para quem é este material (e quem deve passar longe)
Automatizar médias móveis não é a "fórmula mágica" que vendedores de curso costumam vender. Se você busca enriquecimento rápido, pare agora. O MQL5 é uma ferramenta de engenharia, não de apostas. Este material foi desenhado para o investidor que já entende a lógica de um trade, mas que está exausto de sentar em frente ao monitor monitorando cruzamentos manuais que, invariavelmente, você perde por dois segundos de hesitação humana.
O perfil ideal é o do executor sistemático. Você não precisa ser um gênio da computação, mas precisa ter paciência para lidar com erros de sintaxe e o comportamento, por vezes caótico, dos backtests. Se você se frustra quando o código não compila na primeira tentativa, o desenvolvimento de robôs vai testar seu limite de sanidade.
A dura realidade da automação
- Sua estratégia é sua culpa: Um robô não corrige uma estratégia ruim; ele apenas a executa com precisão cirúrgica, acelerando a quebra da sua conta.
- Custos invisíveis: Spread e slippage destroem estratégias de médias móveis em tempo real. O backtest que parece lucrativo no histórico pode sangrar sua margem na prática.
- Manutenção contínua: O mercado muda. O parâmetro de média que funcionou em 2023 pode ser um desastre em 2025.
Checklist de sobrevivência antes de rodar um EA
| Critério | Status |
|---|---|
| Backtest em dados reais (99% de qualidade) | Obrigatório |
| Gestão de risco codificada (Stop loss rígido) | Inegociável |
| Teste em conta Demo por 30 dias | Essencial |
Muitos traders chegam ao MQL5 achando que o código é o destino final. O código é apenas o veículo. A estrada é o mercado, e ele não perdoa amadores que delegam o controle sem entender o que está por baixo do capô. Se você ainda tem dúvidas sobre como o mercado se move ou o que realmente é um *drawdown*, automatizar vai apenas mascarar sua falta de base teórica.
Para quem deseja pular a fase de "tentativa e erro" e encurtar o caminho com uma base estruturada sobre o funcionamento do mercado antes de entrar na parte técnica de codificação, recomendo avaliar o curso ABC do Trader. Ele preenche as lacunas de conhecimento que, se ignoradas, transformam qualquer robô em um destruidor de capital.
Conheça o curso ABC do Trader aqui
A decisão editorial é simples: automatize apenas o que você consegue explicar em uma folha de papel. Se você não consegue descrever sua estratégia de médias móveis para uma criança, você não está pronto para o MQL5. O resto é apenas ruído estatístico.



