Para quem já tentou mapear Fair Value Gaps (FVG) no MetaTrader 5, a frustração costuma vir da quantidade de candles que precisam ser analisados manualmente. O objetivo é simples: detectar a lacuna de preço que ainda não foi preenchida e usá‑la como ponto de entrada ou saída. Na prática, porém, o trader se depara com gráficos superlotados, múltiplos timeframes e filtros que mudam de acordo com a volatilidade do ativo. O script em MQL5 que automatiza essa tarefa promete eliminar o “olho de águia” humano, mas traz consigo questões de latência, overfitting e risco de sinais falsos em mercados laterais.
Como o algoritmo identifica o FVG
- Comparação de três candles. O código verifica se o high do candle 1 está abaixo do low do candle 3, criando a zona de “gap”.
- Validação por volume. Apenas gaps com volume acima da média dos últimos 20 períodos são considerados relevantes.
- Filtro de volatilidade. Se o ATR (14) ultrapassar 1,5 % do preço, o gap é descartado para evitar áreas de alta incerteza.
Limitações práticas
Mesmo com esses filtros, o script pode gerar sinais em mercados com pouca liquidez, onde o “gap” não tem força para ser reativado. Além disso, a dependência de um único timeframe (geralmente M5) pode fazer o algoritmo perder oportunidades em horizontes maiores.
Aplicação em cenários reais
Imagine um trader de EUR/USD operando no M15. Ele carrega o EA e define maxBarsBack=50. O script marca um FVG em 1.0800‑1.0820, mas o preço já recuou 15 pips antes de chegar ao nível. Nesse caso, o trader deve combinar o sinal com um padrão de reversão (por exemplo, um pin bar) para confirmar a entrada. Caso contrário, corre o risco de entrar em um “fake gap”.
Exemplo de código enxuto
| Linha | Descrição |
|---|---|
| 1 | int gap = (Low[2] > High[0]) ? 1 : 0; |
| 2 | if(gap && Volume[0] > iMA(NULL,0,20,0,MODE_SMA,VOL_VOLUME,0)) |
| 3 | { DrawRectangle(…); } |
FAQ rápido
- O EA funciona em todos os ativos? Funciona, mas ativos com spreads amplos (ex.: alguns CFDs) tendem a gerar mais falsos positivos.
- Posso usar o script em conta demo? Sim, e é recomendável para calibrar os parâmetros de volume e ATR antes de migrar para produção.
- Como evitar overtrading? Defina um limite máximo de 3 gaps simultâneos por sessão.
Se quiser testar a versão completa com suporte a múltiplos timeframes, acesse a página oficial e baixe o arquivo .mq5. O ponto crucial não é ter o script, mas saber quando ignorá‑lo – especialmente em mercados que estão “rangeando” por longos períodos. Avalie sempre a relação risco/recompensa antes de abrir a ordem.
1. Configuração inicial do MetaEditor
Abra o MetaEditor e crie um novo Expert Advisor. Defina o nome (ex.: FVGDetector) e selecione OnInit() para inicializar variáveis globais.
- Buffers de desenho:
SetIndexBuffer(0,GapUp); SetIndexStyle(0,DRAW_LINE); - Parâmetros de usuário:
input int GapSize=5; // pips - Timer:
EventSetTimer(1); // atualiza a cada segundo
2. Identificação automática do Fair Value Gap
O algoritmo percorre as últimas Bars e compara três velas consecutivas (i‑2, i‑1, i). O gap é reconhecido quando:
| Condição | Descrição |
|---|---|
| High(i‑2) < Low(i‑1) | Gap de alta (bullish) |
| Low(i‑2) > High(i‑1) | Gap de baixa (bearish) |
| Abs(High(i‑2)-Low(i‑1)) ≥ GapSize * Point | Tamanho mínimo configurado |
Quando todas as condições são satisfeitas, o EA grava o início e o fim do gap em arrays GapUp[] ou GapDown[] e dispara o Alert() opcional.
3. Filtros avançados para reduzir ruído
Aplicar pelo menos dois filtros antes de aceitar o gap:
- Volume médio: o volume da vela central (i‑1) deve superar a média dos últimos 20 períodos (
iVolume(Symbol(),0,i‑1) > iMAOnArray(VolumeArray,0,20,0,MODE_SMA,0)). - Direção da tendência: verifique o sinal de uma EMA de 50 períodos; gaps contrários à tendência são descartados.
Esses filtros eliminam gaps gerados por notícias de baixa relevância ou volatilidade momentânea.
4. Rotina recomendada de entrada e gestão
Depois de validar o FVG, siga o fluxo abaixo:
⚡ Entrada: abra posição no fechamento da vela i‑1 (ou na abertura da vela i) com stop‑loss na borda oposta do gap.
- Take‑profit inicial: 1,5× o tamanho do stop.
- Trailing stop ativado quando o preço avançar 1× o stop.
- Fechamento parcial a 50% do TP para garantir lucro.
5. Checklist operacional (uso diário)
| Etapa | Verificação | Status |
|---|---|---|
| 1. Compilação do EA | Sem erros no MetaEditor | ☐ |
| 2. Parâmetros configurados | GapSize, EMA‑50, VolumeAvg | ☐ |
| 3. Teste em conta demo | Backtest 1000 barras | ☐ |
| 4. Ativar alertas | Som e notificação push | ☐ |
| 5. Monitorar trades | SL/TP e trailing | ☐ |
6. Erros comuns e como evitá‑los
Gap detectado fora de horário de mercado: inclua if (TimeDayOfWeek(TimeCurrent())>5) return; para bloquear fins de semana.
Over‑filtering: usar mais de três filtros reduz drasticamente a taxa de acerto. Mantenha o volume e a EMA como padrão.
Negligenciar slippage: ajuste Slippage=3 no OrderSend() para evitar execuções ruins em mercados voláteis.
7. Aceleração de resultados
Integre o EA ao Painel de Controle de Estratégias da sua corretora. O painel permite habilitar o modo Turbo, que reduz o intervalo do timer para 0,2 s, aumentando a velocidade de captura de gaps em períodos de alta frequência.
Combine o detector com um indicador de volatilidade (ATR 14). Quando o ATR supera 2× a média, aumente o tamanho mínimo do gap para 8 pips, filtrando falsos sinais.
Perfil ideal e limites de uso do detector de Fair Value Gap (FVG) em MQL5
Se você vive de scalping ou swing trade e confia em algoritmos para filtrar rupturas, este script pode ser a lâmina que faltava no seu kit. Não é para quem busca “set‑and‑forget” em contas minúsculas, nem para quem ainda fuma cigarros de análise gráfica sem código.
Quem realmente tira proveito
- Traders intermediários a avançados que já dominam a leitura de gaps e precisam de velocidade para captar oportunidades intradiárias.
- Desenvolvedores de EA que pretendem combinar FVG com estratégias de breakout ou pull‑back.
- Gestores de carteiras que operam em múltiplos símbolos e precisam de consistência na detecção.
Quem provavelmente ficará frustrado
- Iniciantes que ainda confundem suporte/média‑móvel com FVG – o script gera sinais, não ensina.
- Operadores de contas < $1.000 que dependem de alta alavancagem; a margem consumida pelos trades gerados pode suprimir lucros.
- Quem exige “garantia de acerto” – o algoritmo aponta gaps, mas a probabilidade de reversão varia com volatilidade.
Limitações práticas
O detector considera apenas gaps de três candles consecutivos e ignora horários de notícias macro. Em mercados de alta liquidez (EUR/USD, GBP/JPY) a taxa de falsos positivos cai para ~12 %, mas em pares exóticos a taxa pode ultrapassar 30 %.
Além disso, o script roda em tempo real apenas em MetaTrader 5 com 64 bits. Não há suporte nativo a VPS que usam Windows Server 2012 – o salto de latência pode atrasar a detecção em até 150 ms, crítico para scalpers de 5‑segundos.
FAQ contextual rápido
| Pergunta | Resposta |
|---|---|
| Preciso de indicadores adicionais? | Recomenda‑se combinar com VWAP ou RSI para filtrar sinais fracos. |
| O script aceita parâmetros de risco? | Sim, há entrada “RiskPct” que ajusta o tamanho da posição. |
| Funciona em teste histórico? | Sim, porém altere o modo “HistoricalOnly” para evitar ordens mock. |
| É possível exportar logs? | Exporta CSV na pasta MQL5/Files/FVG_Logs. |
Checklist de compatibilidade antes de baixar
- MetaTrader 5, build ≥ 30830.
- Conta demo ou real com spread < 0.5 pips nos pares alvo.
- CPU ≥ 2 GHz, RAM ≥ 8 GB, conexão < 30 ms ao servidor broker.
- Desativar “AutoTrading” enquanto ajusta parâmetros.
Parecer editorial equilibrado
O detector de FVG entrega o que promete: identificação automática e rápida de gaps com mínima sobrecarga de CPU. Seu ponto forte é a integração nativa ao MQL5, permitindo que programadores criem filtros personalizados em poucos cliques. No entanto, a ferramenta não inclui gestão de risco avançada; cabe ao usuário programar stop‑loss, trailing ou saída parcial.
Para traders que já têm um setup sólido e precisam de um “detector de olhos‑abertos”, o custo (gratuito) e a performance são atrativos. Para quem ainda está refinando conceitos de gap, o salto de complexidade pode ser um obstáculo.
Próximos passos recomendados
Baixe o script, rode‑o em modo back‑test de 3 meses em EUR/USD, ajuste o “GapSize” entre 0.0005 e 0.0010, e compare o % de acertos com sua estratégia atual. Se a diferença superar 5 % de taxa de sucesso, considere migrar para conta real.


