Na prática, quem programa em MQL5 sente o peso de analisar manualmente cada pico e vale de um gráfico. A rotina de copiar‑colar valores, marcar pontos e depois validar sinais consome tempo e ainda deixa margem para erro humano. O objetivo aqui é mostrar como automatizar a detecção de topos e fundos, transformar esses marcadores em gatilhos de estratégia e, sobretudo, entender onde o algoritmo pode tropeçar.
Como o código identifica topos e fundos
- Critério de reversão: o script verifica se o preço atual é maior (ou menor) que os N candles anteriores e posteriores. Esse “window” costuma ser 3‑5 períodos, mas pode ser ajustado conforme a volatilidade.
- Filtragem por amplitude: para evitar ruídos, só aceita picos que superem um delta percentual mínimo (ex.: 0,3%).
- Confirmação de volume: opcional, inclui o volume médio dos candles ao redor; picos com volume abaixo da média são descartados.
Exemplo de implementação
O trecho abaixo ilustra a lógica básica em MQL5:
| Passo | Descrição |
|---|---|
| 1 | Definir int window = 4; e double minDiff = 0.003; |
| 2 | Loop de i = window até Bars - window - 1. |
| 3 | Se High[i] > Highest(High, i-window, window*2) e (High[i]-Low[i]) > minDiff*Close[i], marca topo. |
| 4 | Procedimento análogo para fundos usando Low. |
Estratégias que se beneficiam
- Breakout com filtro de topos: entra na compra quando o preço rompe um topo previamente detectado e o volume confirma.
- Mean reversion: abre posição contrária ao último fundo, desde que a distância até a média móvel de 20 períodos seja superior a 1 %.
- Trailing stop dinâmico: usa a sequência de topos para reposicionar o stop‑loss, reduzindo o “drawdown” em mercados laterais.
Limitações e armadilhas
O algoritmo falha em mercados de alta compressão, onde os picos são quase iguais e o critério de amplitude filtra tudo. Também há risco de “over‑fitting” ao calibrar window demais para um ativo específico; ao mudar de EUR/USD para um cripto, a latência dos topos muda drasticamente.
Um ponto contra‑intuitivo: reduzir window pode melhorar a detecção em tendências curtas, mas aumenta falsos positivos em períodos de volatilidade alta. Teste sempre em dados fora‑sample antes de usar em produção.
FAQ rápido
- Posso usar o mesmo código em MT4? Não diretamente; a sintaxe de arrays difere, mas a lógica permanece.
- Como incluir múltiplos timeframes? Rode a função em um
OnTimer()separado para cada timeframe desejado e sincronize os sinais. - Existe biblioteca pronta? Sim, a MQL5 Standard Library oferece
CIndicatorsque simplificam a chamada deHighesteLowest.
Ao automatizar a identificação de topos e fundos, você ganha velocidade e consistência. Contudo, mantenha um olho crítico nos parâmetros e teste em cenários reais antes de delegar decisões de capital ao algoritmo.
Primeiros passos após a compra
- Instale o arquivo .ex5 na pasta
MetaTrader 5\Experts. - Reinicie a plataforma ou pressione Ctrl+R para recarregar os experts.
- Abra o gráfico desejado (timeframe recomendado: M15 ou H1) e arraste o expert para o chart.
- Na aba Inputs, ajuste Depth (número de barras analisadas) e Threshold (sensibilidade ao movimento).
Configuração inicial – parâmetros críticos
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
| Depth | Quantidade de candles usados para calcular picos. | 30 |
| Threshold | Distância mínima (pips) entre topos e fundos para validar um ponto. | 10 |
| TrendMode | 0 = neutro, 1 = tendência de alta, -1 = tendência de baixa. | 0 |
| AlertMode | 0 = desligado, 1 = som, 2 = push‑notification. | 1 |
Rotina recomendada – checklist operacional (semana 1)
- Dia 1‑2: Verifique se o expert marca topos/fundos sem atrasos superiores a 2 candles.
- Dia 3‑4: Ajuste Threshold em +5 pips se houver muitos falsos sinais.
- Dia 5‑7: Teste a estratégia em modo Strategy Tester (dados históricos 3 meses).
Erros comuns e como evitá‑los
- Sinal em mercados laterais: Desligue o expert ou mude TrendMode para 0 quando o ADX < 20.
- Sobre‑otimização: Não altere Depth acima de 60; isso gera atrasos e perda de performance.
- Falta de filtro de volatilidade: Combine o expert com um indicador de ATR (ex.: 14‑period). Se o ATR < 5 pips, ignore o sinal.
Estratégias de combinação
- Breakout + Topo/Fundo: Quando o preço rompe a resistência marcada como topo, abra compra; caso rompa suporte marcado como fundo, abra venda.
- Retorno à média: Use a média móvel exponencial (EMA 20) como referência. Se o preço tocar um topo acima da EMA, considere venda com stop‑loss abaixo do próximo fundo.
- Confluência de múltiplos timeframes: Verifique topos/fundos em M15 e confirme em H1 antes de executar a ordem.
⚠️ Dica rápida: habilite a opção “Show only confirmed points” para reduzir ruído visual e focar nos movimentos relevantes.
Fluxograma de decisão (texto)
| Passo | Ação |
|---|---|
| 1 | Identificar topo/fundo (sinal verde/vermelho). |
| 2 | Checar tendência (ADX ≥ 20 + EMA slope). |
| 3 | Confirmar volatilidade (ATR ≥ 5 pips). |
| 4 | Executar ordem (breakout ou retorno). |
| 5 | Aplicar stop‑loss no próximo ponto oposto. |
| 6 | Monitorar até o próximo sinal de reversão. |
Para aprofundar a integração com alertas mobile, acesse a página oficial de suporte MQL5 e siga o tutorial “Push notifications with MetaTrader 5”.
Quem realmente se beneficia?
Trader que usa MQL5 e já tem experiência em análise gráfica avançada. Busca automação para evitar o viés humano ao marcar topos e fundos. Não é para quem ainda está aprendendo conceitos básicos de suporte/resistência ou depende exclusivamente de indicadores predefinidos.
Perfil ideal
- Programador ou trader com conhecimento sólido de MQL5 (variáveis, loops, eventos).
- Operações intradiárias ou swing com alta frequência de reversões.
- Necessita de alertas em tempo real para integração com ordens automáticas.
- Confortável em revisar falsos sinais e ajustar parâmetros periodicamente.
Quem deve evitar?
- Investidor que negocia apenas posições de longo prazo (semanas/mês); o ganho marginal é ínfimo.
- Quem não tem tempo para calibrar o algoritmo; o script exige manutenção.
- Quem depende exclusivamente de sinais de terceiros – o módulo não traz “golden tips”, apenas deteção mecânica.
Limitações práticas
O algoritmo reconhece picos baseando‑se em critérios de volatilidade e distância mínima entre extremos. Em mercados com baixa liquidez (ex.: pares exóticos) ele pode gerar ruído excessivo. Também não lida com gaps de preço; nesses casos marcará falsos topos até que o próximo candle seja consumado.
Checklist rápido antes de usar
- Teste em dados históricos de pelo menos 6 meses.
- Ajuste a tolerância de variação para evitar sobre‑detecção.
- Combine com filtro de volume ou ATR para validar sinais.
- Monitore a taxa de falsos positivos nas primeiras 100 operações.
FAQ contextual
O script funciona em todos os timeframes?
Sim, mas a eficácia varia: em 1‑min ele gera muitos pontos, exigindo filtro mais rígido; em H4 ou D1 costuma ser mais estável.
Posso usar o módulo junto a Expert Advisors (EAs) existentes?
Claro, basta chamar a função de detecção nos eventos OnTick ou OnBar. Atenção ao custo de CPU – o cálculo pode elevar a latência.
Existe risco de sobre‑ajuste?
Altíssimo. Cada ajuste de período ou desvio multiplica a complexidade. Documente cada variante e compare com métricas de Sharpe.
Observação prática e próximos passos
Se você se encaixa no perfil acima, experimente o módulo em modo “paper trading” por duas semanas. Avalie a consistência dos topos/fundos marcados e ajuste os parâmetros só após validar a taxa de sucesso acima de 60 % nos cenários testados. Caso o retorno caia abaixo desse patamar, considere reduzir a sensibilidade ou combinar com indicadores de momentum.
Para baixar a versão final e iniciar o teste, clique no botão abaixo:


