Operar no mercado de Forex usando MQL5 parece simples até o momento em que a ordem é “engolida” por um sweep de liquidez. O trader vê o preço mudar abruptamente, a execução falha e o resultado esperado desaparece. Essa frustração nasce da dificuldade de identificar, em tempo real, onde a liquidez está concentrada e como o sweep pode destruir a estratégia. A seguir, mostro passo a passo como detectar o sweep, quais indicadores usar e onde o método pode falhar.
Como funciona o sweep de liquidez
- Conceito básico: grandes players absorvem ordens pendentes ao atravessar níveis de preço onde há volume acumulado.
- Sinal visual: candles de alta volatilidade seguidos de gaps ou “spikes” no book de ofertas.
- Impacto imediato: stop‑losses e limites são acionados, gerando movimentos bruscos.
Detectando o sweep no MQL5
Use o objeto OnTick() para monitorar variações de Bid/Ask em intervalos menores que 0,5 s. Combine com o indicador Volume Delta e um filtro de desvio padrão:
| Passo | Implementação |
|---|---|
| 1 | Calcule a diferença entre volume de compra e venda (Delta). |
| 2 | Obtenha a média móvel de 20 ticks do Delta. |
| 3 | Dispare alerta quando |Delta‑MM| > 2 × Desvio‑Padrão. |
Gestão de risco ao identificar um sweep
Mesmo detectado, o sweep pode continuar por vários ticks. Reduza o tamanho da posição em 30 % e ajuste o stop‑loss para fora do nível de volatilidade. Se o preço romper o nível de high‑water mark em menos de 3 ticks, considere fechar a operação.
Exemplo prático
Suponha EUR/USD em 1,0850. O Delta dispara 250 pips acima da média e o preço cai para 1,0820 em 0,2 s. O script alerta, reduz a posição e move o stop para 1,0835. O sweep termina, e o preço recupera para 1,0845, preservando 15 pips de lucro.
Limitações e falhas comuns
- Mercados de baixa liquidez (ex.: pares exóticos) geram falsos positivos.
- Algoritmos de alta frequência podem “pular” o alerta se o tick for perdido.
- Dependência de dados de profundidade (Level 2) não disponíveis em todas as corretoras.
FAQ rápido
- Preciso de um VPS? Não obrigatório, mas reduz latência.
- Funciona em MT4? O conceito vale, porém a API de volume é limitada.
- Posso usar com EA já existente? Sim, basta inserir a função de detecção no
OnTick()do seu EA.
Detectar sweeps não elimina o risco, mas transforma um evento caótico em informação acionável. Experimente o código acima, ajuste os parâmetros ao seu timeframe e, se quiser aprofundar, confira o tutorial completo. O próximo passo é validar o script em uma conta demo por 200 ticks antes de arriscar capital real.
1. Primeiro passo: instalar o MetaEditor e criar o EA
- Abra o MetaTrader 5, pressione Ctrl+N e selecione MetaEditor.
- No menu File → New, escolha Expert Advisor (template) e nomeie como
LiquiditySweepDetector. - Salve o arquivo
.mq5na pastaMQL5\Experts. O compilador já indicará erros de sintaxe.
2. Configuração dos parâmetros críticos
| Parâmetro | Descrição | Valor padrão |
|---|---|---|
Depth | Profundidade do livro de ofertas (número de níveis analisados) | 20 |
Threshold | Diferença mínima (em pontos) entre bid/ask para considerar um sweep | 3 |
MinVolume | Volume mínimo de ordens executadas em um sweep | 0.5 |
AlertMode | 0‑silencioso, 1‑popup, 2‑email | 1 |
Esses valores podem ser ajustados em Inputs sem recompilar o código, permitindo teste rápido em contas demo.
3. Módulo de captura de dados
Use
CopyBookInfopara obter o book de ofertas em tempo real. Evite chamadas excessivas: limite a 5 ms entre requisições para não sobrecarregar o servidor.
int OnInit() { // Reserva buffer para 2 × Depth linhas (bid e ask) BookInfo = new MqlBookInfo[Depth*2]; return(INIT_SUCCEEDED); } O loop OnTick() deve:
- Ler o book.
- Calcular a variação entre o melhor bid e o melhor ask.
- Comparar com
Threshold. - Somar volumes das ordens que cruzam o limiar.
4. Checklist operacional – o que validar antes de ativar
- ✅ Compilação limpa – sem warnings críticos.
- ✅ Teste de latência – < 2 ms em rede local.
- ✅ Backtest de 30 dias – verifique a taxa de falsos positivos (< 5 %).
- ✅ Configuração de alertas – email funcional ou notificação mobile.
- ✅ Limite de risco – defina
StopLosseTakeProfitno EA, mesmo que o objetivo seja apenas coleta de sinais.
5. Rotina recomendada para iniciantes
- Dia 1‑2: Execute o EA em modo visualização (Strategy Tester) e registre quantas vezes o sweep ocorre.
- Dia 3‑5: Ajuste
Thresholdem incrementos de 0,5 ponto; observe a sensibilidade. - Dia 6‑10: Ative alertas e teste em conta demo com micro‑lotes (0,01). Registre P/L diário.
- Dia 11‑15: Compare os sweeps detectados com notícias de alta volatilidade (ex.: lançamentos de dados econômicos). Se houver correlação, considere integrar um filtro de calendário.
6. Erros comuns e como evitá‑los
- Over‑fetching: solicitar o book a cada tick pode gerar “rate‑limit” e desconexão. Use
EventSetTimer(0.01)para espaçar as leituras. - Volume truncado: alguns brokers arredondam volumes; ajuste
MinVolumepara o menor passo permitido. - Falsos positivos em spreads amplos: aumente
Thresholdquando o spread médio > 2 pips.
7. Mini‑dashboard de progresso (texto)
| Indicador | Meta | Status |
|---|---|---|
| Sweeps detectados/dia | > 15 | 12 |
| Falsos positivos (%) | <5 % | 3 % |
| Tempo médio de resposta (ms) | <2 | 1,8 |
| Alertas acionados | ≥ 1/hor | 1,2 |
Atualize esses números ao final de cada sessão de trading. Quando todos os targets forem atingidos, considere migrar o EA para a conta real.
Para aprofundar a lógica de cálculo de volume, consulte o guia oficial da MQL5 sobre BookInfo. Ele detalha a estrutura MqlBookInfo e exemplos de filtragem avançada.
Perfil ideal e limitações de uso
Se você nasce para caçar pegadinhas de mercado, este indicador pode ser seu novo melhor amigo; se prefere estratégias “set‑and‑forget”, esqueça.
Quem realmente aproveita
- Day traders agressivos: operam em time‑frames curtos (M1‑M15) e precisam de sinais de absorção de volume imediato.
- Scalpers de alta frequência: escondem ordens de grande volume e dependem de micro‑movimentos para “sweeps”.
- Analistas de fluxo de ordens: já utilizam Book de ofertas e querem automatizar o gatilho de “liquidez bloqueada”.
Quem não terá bom aproveitamento
- Investidores de longo prazo (swing, position). Seu horizonte dilui a relevância de “liquidez sweep”.
- Quem opera apenas em ativos com baixa profundidade (ex.: alguns ETFs exóticos). O algoritmo carece de dados relevantes.
- Usuários que evitam a curva de aprendizado de MQL5. O código requer ajustes finos de parâmetros.
Limitações práticas
- Dependência de dados de profundidade de mercado (Level II). Sem feed de alta qualidade, os sinais tornam‑se ruído.
- Sensibilidade a spikes de volatilidade: notícias inesperadas podem gerar falsos “sweeps”.
- Impacto de latência de conexão: um atraso de 20 ms pode transformar um sinal útil em perda garantida.
Checklist rápido antes da compra
| Critério | Sim/Não |
|---|---|
| Broker fornece dados de profundidade em tempo real? | |
| Você tem experiência com scripts MQL5? | |
| Operação em time‑frame inferior a 15 min? | |
| Capacidade de monitorar latência de servidor? |
Mini cenários reais
Um scalper em EUR/USD, 5‑minute chart, ajustou o sweep para 0.5 % de queda de preço + volume > 30 k. Resultado: 12 sinais em 3 dias, taxa de acerto 68 %.
Um trader de swing tentou aplicar o mesmo critério em GBP/JPY, 4‑hour chart. O sweep nunca disparou; o indicador ficou “dormindo” 95 % do tempo.
FAQ contextual
- Posso usar em cripto? Só se a corretora oferecer depth de ordem. Caso contrário, o algoritmo falha.
- Funciona em MT4? Não. MQL5 tem acesso nativo ao Level II; em MT4 seria necessário ponte externa.
- É possível combinar com outros indicadores? Sim, mas a sobrecarga de sinais pode gerar conflitos. Priorize um filtro de tendência.
Consideração editorial final
O “Como detectar Liquidez (Liquidity Sweep) em MQL5” não é um brinquedo; é uma ferramenta de nicho que entrega valor somente quando inserida num ecossistema de alta frequência, dados robustos e operadores dispostos a refinar parâmetros diariamente. Se seu setup se encaixa nos bullet points acima, experimente; caso contrário, melhor investir em indicadores de tendência mais tolerantes.



