Programar um robô de suporte e resistência no MQL5 não é só copiar código‑base; quem tenta na prática logo esbarra em ajustes finos que o mercado impõe. O usuário típico já tem a ideia de “comprar na zona de suporte, vender na resistência”, mas falta clareza sobre como transformar esses níveis em gatilhos confiáveis, lidar com gaps e evitar execuções em slippage. O objetivo real é criar um algoritmo que reconheça dinamicamente os níveis, valide o sinal com filtros de volatilidade e gerencie a posição sem precisar de intervenções manuais.
Como o código identifica suportes e resistências?
- Barra de preço: usa o ponto médio (high+low)/2 de cada vela para gerar pivôs.
- Filtros de confirmação: exige que o preço rompa o nível por, no mínimo, duas velas consecutivas.
- Amplitude mínima: descarta níveis que estejam a menos de 0,5 % do preço atual, evitando ruído.
Critérios de entrada – o ponto de ruptura
O robô só abre posição se, além da ruptura, o indicador ATR (Average True Range) indicar volatilidade acima da média dos últimos 14 períodos. Essa dupla condição reduz falsos positivos em mercados laterais.
Gestão de risco integrada
- Stop‑loss automático: colocado logo abaixo (ou acima) do último suporte/resistência, com margem de 1,5 × ATR.
- Take‑profit escalonado: 50 % do lote fecha na primeira meta (2 × Risco), o restante na segunda (4 × Risco).
- Trailing stop: ativado ao atingir 3 × Risco, seguindo 1,2 × ATR.
Limitações e cenários de falha
Em mercados de alta frequência, o atraso na atualização dos níveis pode gerar entradas tardias, sobretudo durante notícias de impacto. Além disso, em pares com spreads amplos (ex.: commodities exóticas), o cálculo de ATR pode subestimar a real volatilidade, levando a stops prematuros.
Exemplo prático de código
| Linha | Descrição |
|---|---|
| int OnInit() | Inicializa buffers de suporte/resistência. |
| double GetPivot(int shift) | Retorna (High[shift]+Low[shift])/2. |
| bool Breakout() | Verifica ruptura + ATR>media14. |
| void ManageOrder() | Aplica SL, TP e trailing. |
FAQ rápido
- Posso usar outro timeframe? Sim, mas a consistência do filtro ATR deve ser recalibrada.
- O robô funciona em contas demo? Funciona, porém o deslizamento real só aparece em conta viva.
- Como otimizar parâmetros? Rode um teste de 6 meses com variação de 0,2 % a 1 % para a margem mínima.
Se quiser aprofundar a implementação, veja o guia completo de MQL5 com exemplos práticos. O próximo passo é testar o script em um ambiente sandbox, ajustar os thresholds de ATR e observar como o robô reage a um breakout real. Só assim você evita a armadilha de “robô perfeito no back‑test, desastre ao vivo”.
Primeiros passos após a compra
- Baixe o arquivo .mq5 e salve na pasta
MetaEditor\Experts. - Abra o MetaEditor, pressione F7 e compile. Corrija eventuais erros de caminho.
- Instale o indicador de suporte/resistência incluído (arquivo .ex5) na seção
Indicators. - Reinicie o MetaTrader 5 para que o Expert Advisor (EA) apareça na aba Navigator.
Configuração inicial – parâmetros críticos
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
| LookBackBars | Quantidade de velas analisadas para detectar pivôs. | 120 |
| LevelTolerance | Desvio aceitável (pips) entre preço atual e zona de S/R. | 5 |
| RiskPerTrade | % do capital arriscado por operação. | 1.5 |
| MaxTradesDay | Limiar máximo de ordens abertas no mesmo dia. | 3 |
Altere apenas RiskPerTrade e MaxTradesDay nas primeiras duas sessões de teste. Os demais valores são calibrados para a maioria dos pares EUR/USD, GBP/USD e USD/JPY.
Checklist operacional – rotina recomendada
- Verifique a integridade do histórico: Tools → History Center → Download.
- Execute o EA em modo Strategy Tester (dados de 1‑mes). Confirme que o número de sinais está dentro da faixa esperada (3‑7 por dia).
- Observe o Journal para mensagens de
LEVEL_NOT_FOUND– indica que a tolerância está muito estreita. - Se tudo OK, abra o gráfico 1‑min e habilite o EA. Anote a hora do primeiro trade.
- Ao final do dia, registre:
- Trades vencedores / perdedores.
- Desvio médio da zona de S/R (pips).
- Tempo médio de permanência da posição.
Fluxograma simplificado – decisão de entrada
1️⃣ Detectar pivô → 2️⃣ Definir zona S/R → 3️⃣ Verificar preço dentro da tolerância → 4️⃣ Confirmar breakout ou rebote com volume > média → 5️⃣ Enviar ordem (Buy acima da resistência ou Sell abaixo do suporte).
Esse fluxo evita ordens baseadas apenas em toques superficiais, reduzindo falsos sinais em mercados voláteis.
Erros comuns e como evitá‑los
- Over‑optimization: ajustar
LookBackBarspara cada par gera resultados enganosos. Mantenha o padrão e teste em múltiplos símbolos. - Negligenciar o spread: em contas ECN o spread pode superar a
LevelTolerance. Aumente a tolerância ou use filtros de spread no código. - Desligar o gerenciamento de risco: nunca altere
RiskPerTradepara valores superiores a 2 % sem reavaliar o drawdown.
Mini‑dashboard de progresso (texto)
| Dia | Trades | Win % | Δ P/L (pips) |
|---|---|---|---|
| Seg | 3 | 66 | +28 |
| Ter | 2 | 50 | -12 |
| Qua | 4 | 75 | +45 |
Atualize a tabela ao final de cada sessão. Quando a Win % cair abaixo de 40 % por três dias consecutivos, revise a tolerância ou reduza o risco.
Como acelerar resultados
- Combine o EA com um filtro de tendência (ex.: EMA 50). Só opere na direção da tendência dominante.
- Use o recurso “Trailing Stop” integrado ao EA para proteger lucros após 20 pips.
- Execute o EA em duas contas simultâneas (demo + real) para validar a consistência sem comprometer capital.
Seguindo esse roteiro, a curva de aprendizado se estabiliza em uma a duas semanas, e a taxa de acertos costuma se aproximar de 65 % nos pares testados.
Quem realmente tira proveito desse robô?
Trader semi‑profissional que já domina leitura de price action e tem familiaridade com MQL5. Ele busca automatizar entradas em zonas de suporte e resistência sem abrir mão de ajustes manuais.
Investidor iniciante que ainda não entende o conceito de “zona de confluência” vai se perder entre falsos sinais e stop‑loss apertados.
Perfil ideal
- Tempo disponível para monitorar parâmetros – ao menos 2 h por dia.
- Conta com margem suficiente: 1 % a 2 % do capital por operação.
- Conhecimento básico de VBA ou C++ para ajustes finos.
- Estratégia de diversificação: usa o robô como parte de um portfólio maior, não como única fonte.
Quem provavelmente não terá bom aproveitamento
- Scalpers que operam em prazos menores que 1 minuto.
- Quem depende exclusivamente de indicadores de impulso (RSI, MACD) para confirmar entradas.
- Quem opera em mercados extremamente voláteis sem usar filtros de volatilidade.
Limitações práticas
O algoritmo não filtra eventos macro‑econômicos importantes – um “corte” de taxa de juros ainda pode gerar slippage inesperado. Também não reconhece “gaps” de abertura em ativos de futuros, o que pode transformar um suporte aparente em armadilha.
Checklist rápido antes de ativar
| Item | Condição mínima |
|---|---|
| Backtest de 6 meses | Sharpe > 1,0 |
| Desvio padrão do drawdown | < 15 % |
| Spread médio | < 2 pips (FX) ou < 0,5 ticks (futuros) |
| Latência de execução | < 50 ms na VPS dedicada |
FAQ contextual
- Posso usar em contas de 0,01 lot? Sim, mas o stop‑loss pode ser limitado pelo spread.
- Funciona em cripto? O código foi desenvolvido para mercados de Forex e futuros; adaptar para cripto exige reescrita de funções de horário.
- Preciso de VPS? Não obrigatório, mas recomendável para evitar perdas de ping.
Mini cenários reais
Um trader de EUR/USD, 10 k, usa 0,5 % por operação. Em 30 dias o robô gerou +3,2 % de lucro, com 2 trades perdedores que fecharam antes da zona de suporte se confirmar.
Já um day‑trader de ações US, 5 k, tentou aplicar o mesmo script em 1‑minuto. O algoritmo disparou 12 ordens em 5 min, resultando em -7 % de capital devido a slippage.
Parecer editorial equilibrado
Se você tem disciplina para validar cada zona e tolera ajustes técnicos, o robô pode ser uma ferramenta de “auto‑filtragem” valiosa. Para quem busca “set‑and‑forget” absoluto, a realidade é que o modelo ainda depende de um operador que entende a psicologia do mercado e está pronto para suspender o EA quando notícias de alto impacto são divulgadas.
Decida: teste em conta demo, avalie métricas acima e só migre quando o drawdown ficar dentro dos limites estabelecidos. Experimente agora



