Disponível no MQL5 Market: FVG and Structure PRO
Aviso de risco. Operar envolve risco de perda. Este indicador marca estruturas de preço no gráfico; ele não prevê o mercado, não abre trades e não garante nenhum resultado. Use-o junto com sua própria análise e gestão de risco, e teste primeiro em uma conta demo.

O FVG and Structure PRO desenha a estrutura de mercado (BOS / CHoCH), fair value gaps (FVGs) com acompanhamento de preenchimento, order blocks, topos / fundos iguais (equal highs / lows), FVGs de timeframe superior, uma faixa opcional de premium / discount e um painel de estrutura multi-timeframe. Cada elemento é confirmado em uma barra fechada: nada é redesenhado depois de aparecer. Funciona em qualquer símbolo, qualquer corretora e qualquer timeframe.
Novidades da versão 2.00
- 5 novos buffers para Expert Advisors e dashboards: FVG de alta aberto mais próximo (topo, fundo), FVG de baixa aberto mais próximo (topo, fundo) e um evento de zona (FVG novo / mitigado, order block novo / rompido) — seção 14.
- FVGs e order blocks são acompanhados mesmo quando seu desenho está desativado, então os buffers também funcionam em um gráfico limpo. O desenho, os alertas e os buffers existentes não mudaram.
- Painel: o texto "bars ago" fica oculto enquanto a barra do último evento ainda não está disponível no histórico do gráfico.
1. Instalação e primeira execução
- Compre ou alugue o indicador no MQL5 Market e instale-o pela aba Market do terminal (Toolbox → Market → Purchased → Install).
- Abra um gráfico e arraste o FVG and Structure PRO do Navegador (Indicators → Market) para ele.
- Mantenha os inputs padrão ou ajuste-os (seção 13) e pressione OK.
O indicador analisa as últimas 1500 barras (input Bars analysed) e depois acompanha cada nova barra. O painel aparece no canto inferior direito. No gráfico, o indicador se chama FVG & Structure PRO.
Configurações que fazem o indicador se recusar a iniciar (a janela de inputs se abre novamente): Swing strength fora de 1-50, Bars analysed abaixo de 100 ou qualquer limite "per side" abaixo de 1.
2. Legenda do gráfico
| No gráfico | Significado |
|---|---|
| Linha sólida + rótulo BOS (verde-azulado / vermelho) | Break of structure (rompimento de estrutura): uma barra fechou além do último swing high (verde-azulado, rótulo acima) ou swing low (vermelho, rótulo abaixo) na direção da tendência atual. |
| Linha tracejada + rótulo CHoCH (verde-azulado / vermelho) | Change of character (mudança de caráter): o mesmo tipo de rompimento, mas contra a tendência atual (a tendência da estrutura se inverte). |
| Rótulos HH / LH (vermelhos, acima da máxima) | Topo mais alto / topo mais baixo, em comparação com o swing high anterior (opcional). |
| Rótulos HL / LL (verde-azulados, abaixo da mínima) | Fundo mais alto / fundo mais baixo, em comparação com o swing low anterior (opcional). |
| Caixa preenchida verde-escura | FVG de alta aberto. |
| Caixa preenchida vermelho-escura | FVG de baixa aberto. |
| Caixa preenchida azul-escura + rótulo OB (verde-azulado) | Order block de alta ativo. |
| Caixa preenchida marrom-escura + rótulo OB (vermelho) | Order block de baixa ativo. |
| Caixa cinza-escura (rótulo OB cinza para order blocks) | FVG mitigado ou order block rompido — apenas quando Hide mitigated está desativado. |
| Caixa com contorno dourado + rótulo como H1 FVG | FVG aberto do timeframe superior (opcional). |
| Linha pontilhada dourada + EQH / EQL | Topos iguais / fundos iguais (liquidez em repouso). A linha fica cinza quando o preço a atravessa (varrida). |
| Linha vermelha pontilhada Premium, prata tracejada Equilibrium, verde-azulada pontilhada Discount | Faixa entre o swing high e o swing low atuais e seu ponto médio (opcional). |
| Painel de texto (canto inferior direito) | Viés de estrutura M15 / H1 / H4 / D1, último rompimento de estrutura, FVG mais próximo acima e abaixo do preço. |
Cada linha e caixa tem um tooltip: passe o mouse sobre ela para ler seu tipo e seus preços. Os objetos ficam ocultos na lista de objetos e não podem ser selecionados, então não são movidos por acidente. Zonas e níveis ativos se estendem 10 barras à direita da barra atual (input Active zones extend right).
3. Estrutura de mercado: BOS e CHoCH

Um swing high é uma barra cuja máxima está acima das máximas das Swing strength barras de cada lado (padrão 5); um swing low é o espelho. Portanto, um swing é confirmado Swing strength barras depois de se formar.
- Quando uma barra fecha acima do último swing high, um rompimento de alta é desenhado do swing até a barra de rompimento; um fechamento abaixo do último swing low desenha um rompimento de baixa.
- O rompimento é um BOS (linha sólida) quando segue a tendência atual e um CHoCH (linha tracejada) quando a inverte. O primeiro rompimento após o carregamento é um BOS.
- Cada swing só pode ser rompido uma vez. Pavios além de um swing não contam — apenas fechamentos.
- Apenas os últimos Structure breaks kept on chart (padrão 20) rompimentos ficam no gráfico; os mais antigos são removidos. Os rótulos de swing mantêm o dobro desse número.
Rótulos de swing (input HH / HL / LH / LL labels, desativado por padrão) marcam cada swing confirmado em comparação com o anterior do mesmo lado.
Um Swing strength maior gera menos swings, porém mais significativos (estrutura de swing / externa); um menor reage mais rápido (estrutura interna).
4. Fair value gaps (FVG)

Um FVG é um desequilíbrio de três velas: a mínima da terceira vela está acima da máxima da primeira (de alta) ou a máxima da terceira vela está abaixo da mínima da primeira (de baixa). A caixa é desenhada a partir da vela do meio e cobre o gap entre os dois pavios.
- Minimum gap size (padrão 0.2 × ATR 14): gaps menores são ignorados. Aumente-o para ver apenas os desequilíbrios maiores.
- FVG is mitigated at: Full fill (padrão — o preço atinge a borda oposta do gap), 50% fill (consequent encroachment) (o preço atinge o meio) ou First touch (o preço atinge a borda próxima).
- Shrink to the unfilled part (ativado por padrão): enquanto o preço entra no gap sem mitigá-lo, a caixa encolhe para a parte que ainda está aberta.
- Active FVGs per side (padrão 8): quando um novo FVG aparece e o limite é excedido, o FVG ativo mais antigo daquele lado é descartado.
Os preenchimentos são avaliados em barras fechadas. Um FVG mitigado é removido do gráfico ou mantido na cor de mitigado (seção 8).
5. FVGs de timeframe superior

Com Show higher timeframe FVGs ativado, os FVGs abertos do Higher timeframe selecionado (padrão H1) são desenhados como caixas contornadas (padrão goldenrod) com um rótulo como H1 FVG, sobre os FVGs do timeframe do gráfico.
- Eles usam o mesmo tamanho mínimo e a mesma regra de mitigação dos FVGs do gráfico (sem encolhimento).
- Apenas barras fechadas do timeframe superior criam gaps; a barra em formação do timeframe superior já pode preencher um.
- Active HTF FVGs per side (padrão 4) limita a quantidade exibida.
- Eles só são desenhados quando o timeframe selecionado é superior ao timeframe do gráfico (por exemplo gaps de H1 em um gráfico M5 ou M15).
- O filtro de killzone não se aplica a eles. São apenas objetos do gráfico (sem buffers).
6. Filtro de killzone (ICT)
Com Only FVGs formed inside killzones ativado, os FVGs do timeframe do gráfico só são mantidos quando sua vela do meio abriu dentro de uma das killzones selecionadas, no horário de Nova York, com o horário de verão tratado automaticamente:
| Killzone | Horário de Nova York | Padrão |
|---|---|---|
| London KZ | 02:00-05:00 | on |
| NY AM KZ | 07:00-10:00 | on |
| NY PM KZ | 13:30-16:00 | off |
O filtro é destinado a gráficos intraday (M1 a H1). Ele também se aplica aos buffers de FVG e aos alertas de FVG.
Broker time zone — necessário para converter o horário do servidor do gráfico para o horário de Nova York:
- Auto (live) / GMT+2/+3 in tester (padrão): o deslocamento é medido a partir do relógio do terminal. Corretoras em GMT+2 / GMT+3 (fechamento de Nova York) são acompanhadas ao longo do histórico com o horário de verão dos EUA. No Strategy Tester, assume-se GMT+2 / GMT+3.
- GMT+2 / GMT+3 (New York close brokers): força essa regra.
- Fixed GMT offset: usa Broker GMT offset (padrão 2) durante o ano inteiro. Use-o no testador para uma corretora que não esteja em GMT+2 / GMT+3.
7. Order blocks

Cada rompimento de estrutura (BOS ou CHoCH) cria um order block na vela de origem do movimento que produziu o rompimento. A caixa cobre toda a amplitude (máxima à mínima) dessa vela e leva o rótulo OB.
- Um order block é rompido quando uma barra fecha através dele (abaixo de um OB de alta, acima de um OB de baixa).
- Active order blocks per side (padrão 3): o mais antigo é descartado quando o limite é excedido.
- Com Show order blocks desativado, os order blocks continuam sendo calculados para os buffers (seção 14), mas não são desenhados e nenhum alerta de OB é enviado.
8. Zonas mitigadas
Por padrão (Hide mitigated FVGs and order blocks = true), um FVG mitigado ou um order block rompido desaparece do gráfico. Desative o input para mantê-los como histórico: a caixa volta ao tamanho original, termina na barra que a mitigou e é pintada na Mitigated zone color (padrão cinza-escuro); o rótulo OB fica cinza. O tooltip passa então a terminar com "(mitigated)".

9. Liquidez: topos e fundos iguais

Quando dois swing highs (ou lows) consecutivos estão dentro da Equal tolerance (padrão 0.1 × ATR 14) um do outro, uma linha pontilhada dourada é desenhada do primeiro swing até o segundo e rotulada EQH (topos iguais) ou EQL (fundos iguais). Esses níveis costumam concentrar liquidez em repouso (ordens stop).
- A linha se estende para a direita enquanto o nível está intacto.
- Quando uma barra posterior negocia além do nível (pavio ou fechamento), ele é varrido (swept): a linha para naquela barra e fica cinza.
- Levels kept on chart (padrão 6): níveis mais antigos são removidos.
Aumente a tolerância para encontrar mais níveis; diminua-a para correspondências mais rigorosas.
10. Premium / discount

Com Equilibrium of the current swing range ativado, três linhas são desenhadas a partir do mais antigo dos dois swings mais recentes até a borda direita das zonas:
- Premium (vermelha pontilhada) no último swing high;
- Equilibrium (prata tracejada) no ponto médio;
- Discount (verde-azulada pontilhada) no último swing low.
O preço acima do equilíbrio está na metade premium da faixa; abaixo dele, na metade discount. As linhas se movem a cada novo swing confirmado.
11. O painel

O painel (padrão no canto inferior direito, input Panel corner) mostra:
| Linha | Conteúdo |
|---|---|
| Título | FVG & Structure PRO |
| Structure | Tendência de estrutura de M15, H1, H4 e D1: ▲ de alta, ▼ de baixa, – ainda sem rompimento ou histórico ainda carregando. O timeframe do gráfico usa o resultado do próprio gráfico; os demais são calculados com o mesmo swing strength e atualizados quando abrem uma nova barra. |
| Last | Último rompimento de estrutura do gráfico: direção, BOS ou CHoCH, preço do swing rompido e há quantas barras. Antes do primeiro rompimento: "no structure break yet". |
| FVG above | FVG aberto mais próximo inteiramente acima do preço atual (fundo - topo), ou "none". |
| FVG below | FVG aberto mais próximo inteiramente abaixo do preço atual, ou "none". |
Um FVG que contém o preço atual não é listado como acima nem abaixo. Com Show FVGs desativado, as duas linhas de FVG mostram "none". O painel é atualizado a cada nova barra e fica sempre por cima das zonas.
12. Alertas
| Input | Dispara quando | Exemplo de mensagem |
|---|---|---|
| BOS / CHoCH | uma barra fecha além de um swing (enviado na abertura da barra seguinte) | Bullish CHoCH above 1.08520 |
| New FVG | um novo FVG é confirmado em uma barra fechada (apenas com Show FVGs ativado) | New bearish FVG 1.08310 - 1.08365 |
| Price enters an FVG | a barra em formação entra em um FVG aberto — uma vez por FVG (apenas com Show FVGs ativado) | Price in bullish FVG 1.08210 - 1.08260 |
| Price enters an order block | a barra em formação entra em um order block ativo — uma vez por OB (apenas com Show order blocks ativado) | Price in bearish order block 1.08700 - 1.08780 |
Cada alerta pode ser Off, Popup, Sound, Smartphone notification, Popup + Sound, Notification + Sound, Popup + Notification ou Popup + Sound + Notification. Todos os alertas vêm desativados por padrão. Sound seleciona um dos sons do terminal (padrão "alert"); Also send e-mail adiciona um e-mail a cada alerta ativado.
O texto inclui o produto, o símbolo e o timeframe, p. ex. FVG & Structure PRO: EURUSD | M15 | Bullish BOS above 1.08520 . Cada tipo de alerta dispara no máximo uma vez por barra. Quando o indicador é anexado, as zonas já tocadas pela barra atual são marcadas silenciosamente, então não há uma rajada de alertas antigos. As notificações push exigem o MetaQuotes ID em Tools → Options → Notifications; o e-mail exige as configurações de e-mail do terminal. O Strategy Tester não mostra pop-ups, sons nem notificações.
13. Inputs
MARKET STRUCTURE
| Input | Padrão | Descrição |
|---|---|---|
| Swing strength (bars on each side) | 5 | Barras de cada lado de um swing high / low (1-50). |
| BOS / CHoCH lines | true | Desenha os rompimentos de estrutura. |
| HH / HL / LH / LL labels | false | Rotula cada swing. |
| Structure breaks kept on chart | 20 | Rompimentos mais antigos são removidos. |
| Bullish color | 38,166,154 (verde-azulado) | Rompimentos de alta, rótulos, rótulo OB, linha Discount. |
| Bearish color | 239,83,80 (vermelho) | Rompimentos de baixa, rótulos, rótulo OB, linha Premium. |
FAIR VALUE GAPS
| Input | Padrão | Descrição |
|---|---|---|
| Show FVGs | true | Desenha os FVGs (eles são acompanhados para os buffers de qualquer forma). |
| Minimum gap size (x ATR 14) | 0.2 | Gaps menores são ignorados. |
| FVG is mitigated at | Full fill | Full fill / 50% fill (consequent encroachment) / First touch. |
| Shrink to the unfilled part | true | A caixa encolhe enquanto está sendo preenchida. |
| Active FVGs per side | 8 | Máximo de FVGs abertos por lado. |
| Bullish FVG color | 22,74,68 | Preenchimento dos FVGs de alta. |
| Bearish FVG color | 92,38,40 | Preenchimento dos FVGs de baixa. |
HIGHER TIMEFRAME FVGs
| Input | Padrão | Descrição |
|---|---|---|
| Show higher timeframe FVGs | false | Desenha os FVGs do timeframe abaixo. |
| Higher timeframe | 1 Hour | Deve ser superior ao timeframe do gráfico. |
| Active HTF FVGs per side | 4 | Máximo de FVGs HTF por lado. |
| HTF FVG outline color | Goldenrod | Cor do contorno e do rótulo. |
KILLZONE FILTER (ICT)
| Input | Padrão | Descrição |
|---|---|---|
| Only FVGs formed inside killzones | false | Mantém apenas os FVGs cuja vela do meio está dentro de uma killzone selecionada. |
| London KZ (NY 02:00-05:00) | true | |
| NY AM KZ (NY 07:00-10:00) | true | |
| NY PM KZ (NY 13:30-16:00) | false | |
| Broker time zone | Auto (live) / GMT+2/+3 in tester | Também: GMT+2 / GMT+3 (New York close brokers), Fixed GMT offset. |
| Broker GMT offset (fixed mode and tester) | 2 | Horas, usado por Fixed GMT offset. |
ORDER BLOCKS
| Input | Padrão | Descrição |
|---|---|---|
| Show order blocks | true | Desenha os order blocks (acompanhados para os buffers de qualquer forma). |
| Active order blocks per side | 3 | Máximo de OBs ativos por lado. |
| Bullish OB color | 28,62,110 | Preenchimento dos OBs de alta. |
| Bearish OB color | 110,64,24 | Preenchimento dos OBs de baixa. |
MITIGATED ZONES
| Input | Padrão | Descrição |
|---|---|---|
| Hide mitigated FVGs and order blocks | true | false os mantém no gráfico na cor abaixo. |
| Mitigated zone color (when shown) | 44,46,52 | Preenchimento das zonas mitigadas. |
LIQUIDITY
| Input | Padrão | Descrição |
|---|---|---|
| Equal highs / lows | true | Desenha os níveis EQH / EQL. |
| Equal tolerance (x ATR 14) | 0.1 | Distância máxima entre dois swings para serem considerados iguais. |
| Levels kept on chart | 6 | Níveis mais antigos são removidos. |
| Equal highs / lows color | Gold | Cor dos níveis intactos (níveis varridos são cinza). |
PREMIUM / DISCOUNT
| Input | Padrão | Descrição |
|---|---|---|
| Equilibrium of the current swing range | false | Desenha Premium / Equilibrium / Discount. |
HISTORY AND PANEL
| Input | Padrão | Descrição |
|---|---|---|
| Bars analysed | 1500 | Histórico processado quando o indicador carrega (mínimo 100). |
| Active zones extend right (bars) | 10 | Até onde zonas e níveis ativos se estendem além da barra atual. |
| Show panel | true | Mostra o painel de texto. |
| Panel corner | Right lower corner | Canto do gráfico para o painel. |
ALERTS
| Input | Padrão | Descrição |
|---|---|---|
| BOS / CHoCH | Off | Modo de alerta para rompimentos de estrutura. |
| New FVG | Off | Modo de alerta para novos FVGs. |
| Price enters an FVG | Off | Modo de alerta para toques em FVG. |
| Price enters an order block | Off | Modo de alerta para toques em OB. |
| Sound | alert | Som do terminal usado pelos modos com som. |
| Also send e-mail | false | Envia um e-mail a cada alerta ativado. |
14. Buffers para Expert Advisors / dashboards
O indicador expõe 7 buffers que podem ser lidos com iCustom + CopyBuffer . Todos os valores são definitivos em barras fechadas: leia o shift 1 para obter o último valor definitivo.
| Buffer | Nome | Valores | Quando | Vazio |
|---|---|---|---|---|
| 0 | Structure trend | +1 alta, -1 baixa; 0 antes do primeiro rompimento | toda barra; a barra em formação repete o último valor fechado | 0 |
| 1 | Structure event | na barra cujo fechamento rompeu o swing: +1 BOS de alta, +2 CHoCH de alta, -1 BOS de baixa, -2 CHoCH de baixa | apenas barras fechadas; a barra em formação é sempre 0 | 0 |
| 2 | Nearest open bullish FVG - top (2.00) | preço; dentre os FVGs de alta abertos, aquele com o topo mais alto (parte não preenchida quando Shrink está ativado) | toda barra, no seu fechamento; a barra em formação repete o último valor fechado | EMPTY_VALUE |
| 3 | Nearest open bullish FVG - bottom (2.00) | preço, mesmo FVG do buffer 2 | como o buffer 2 | EMPTY_VALUE |
| 4 | Nearest open bearish FVG - top (2.00) | preço; dentre os FVGs de baixa abertos, aquele com o fundo mais baixo | como o buffer 2 | EMPTY_VALUE |
| 5 | Nearest open bearish FVG - bottom (2.00) | preço, mesmo FVG do buffer 4 | como o buffer 2 | EMPTY_VALUE |
| 6 | Zone event (2.00) | +1 / -1 novo FVG de alta / de baixa, +2 / -2 FVG mitigado, +3 / -3 novo order block, +4 / -4 order block rompido. Vários na mesma barra: mantém-se o primeiro nesta ordem | apenas barras fechadas; a barra em formação é sempre 0 | 0 |
"Aberto" segue os inputs FVG is mitigated at, Minimum gap size, Active FVGs per side e o filtro de killzone. FVGs e order blocks são acompanhados mesmo com Show FVGs / Show order blocks desativados. Topos / fundos iguais e FVGs de timeframe superior são apenas objetos do gráfico.
Carregamento. A versão do Market é instalada em MQL5\Indicators\Market\ ; confira o nome exato do arquivo no Navegador. Sem parâmetros após o nome, os inputs padrão são usados. Para alterar inputs, passe-os na ordem da seção 13. Cada cabeçalho input group também é um parâmetro: passe uma string vazia "" no lugar dele; caso contrário, todos os valores seguintes ficam deslocados. Inputs omitidos no final mantêm seus valores padrão.
```mql5 // "" = group MARKET STRUCTURE, 5 = swing strength, false = no BOS / CHoCH lines int h = iCustom(_Symbol, PERIOD_H1, "Market\FVG and Structure PRO", "", 5, false);
double trend[1], bt[1], bb[1], ze[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 0, 1, 1, trend) == 1) Print("structure ", (int)trend[0]); // +1 / -1 if (CopyBuffer(h, 2, 1, 1, bt) == 1 && CopyBuffer(h, 3, 1, 1, bb) == 1 && bt[0] != EMPTY_VALUE) Print("nearest bullish FVG ", bb[0], " - ", bt[0]); if (CopyBuffer(h, 6, 1, 1, ze) == 1 && ze[0] != 0.0) Print("zone event ", (int)ze[0]); } ```
Observações: um indicador criado por iCustom desenha seu painel e seus objetos no gráfico do programa que o chama — desative os inputs de desenho e o painel para ter um dashboard limpo. Aguarde até BarsCalculated(h) > 0 antes da primeira leitura (o histórico ainda pode estar carregando). Para um dashboard multi-símbolo, 1000 em Bars analysed são suficientes.
15. Dicas
- Intraday: M5 ou M15 com Show higher timeframe FVGs ativado e Higher timeframe = H1 mostra os gaps do gráfico dentro dos maiores.
- Menos poluição visual: aumente Minimum gap size, diminua Active FVGs per side / Active order blocks per side ou ative o filtro de killzone.
- Profundidade da estrutura:Swing strength 3 acompanha a estrutura interna; 8-10 acompanha apenas os swings principais. O viés do painel nos outros timeframes usa o mesmo valor.
- Histórico de reações: desative Hide mitigated para estudar como o preço reagiu a zonas passadas.
- Uma instância por gráfico: duas cópias no mesmo gráfico compartilham os nomes de objetos e apagam os desenhos uma da outra. Para comparar configurações, abra um segundo gráfico do mesmo símbolo.
16. Perguntas e solução de problemas
- Ele repinta? Não. Swings, rompimentos, FVGs e order blocks são criados em barras fechadas e nunca são movidos depois. Por definição, um swing é desenhado Swing strength barras depois da sua barra (ele precisa das barras à sua direita).
- O painel mostra "–" para um timeframe. Esse timeframe ainda não tem rompimento de estrutura no seu histórico recente, ou seu histórico ainda está sendo baixado; ele é atualizado na próxima barra.
- Nenhum FVG HTF aparece. O timeframe do gráfico deve ser inferior ao Higher timeframe, e pode não haver gaps abertos desse tamanho no momento.
- O filtro de killzone remove todos os FVGs. Verifique Broker time zone. Em gráficos de H4 para cima, poucas velas abrem dentro de uma killzone.
- Nenhum alerta. Todos os alertas vêm Off por padrão. Os alertas de FVG e OB também exigem o desenho correspondente ativado. Alertas de toque disparam uma vez por zona.
- Um FVG continua aberto embora o preço tenha entrado nele. Com Full fill, o gap só se fecha quando o preço atinge sua borda oposta; com Shrink ativado, a caixa mostra a parte ainda aberta.
- Strategy Tester. Funciona nos modos visual e não visual; pop-ups, sons e notificações não são enviados no testador.
Suporte: envie uma mensagem privada ao autor no MQL5.


