Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Facebook!
Participe de nossa página de fãs
Script interessante?
Coloque um link para ele, e permita que outras pessoas também o avaliem
Você gostou do script?
Avalie seu funcionamento no terminal MetaTrader 5
Indicadores

Estrutura de mercado a partir de oscilações de retração — BOS, CHoCH, IDM - indicador para MetaTrader 5

Sandro Begashvili
Sandro Begashvili
Sandro Begashvili - desenvolvedor de MQL5, MQL4, Python e Pine Script
Desenvolvo programas de trading para MetaTrader 4 e MetaTrader 5: robôs (EA), indicadores personalizados e painéis gráficos de negociação. Descreva a sua ideia e eu a transformo em código funcional e documentado.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
18
Avaliação:
(1)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance



Minha postagem anterior no CodeBase, “Indicador de Pullback SMC”, respondeu a uma pergunta: quais máximas e mínimas realmente importam? Ela parou deliberadamente por aí, e a descrição deixava isso claro — sem rótulos HH/HL, sem BoS, sem CHoCH, sem IDM. Essas são etapas separadas que exigem, primeiro, um conjunto confiável de oscilações.

Este indicador é essa próxima etapa. Ele marca a estrutura de mercado da maneira como a Smart Money Concepts (SMC) a descreve e utiliza o mesmo detector de pullback — a classe está incluída aqui sem alterações, de modo que o arquivo é independente, sem dependências para instalação — e constrói a estrutura de mercado com base nele: uma tendência, uma máxima atual, uma mínima atual e os quatro eventos que as movimentam. BoS, CHoCH, IDM e a varredura de liquidez marcada com um “x”.


O que você vê no gráfico

Elemento Aparência Significado
Ziguezague de retração linha fina e clara Cada oscilação identificada pela regra de retração. Esse é o material bruto, deliberadamente discreto — trata-se de contexto, não de sinal.
Ziguezague estrutural linha dourada grossa Apenas as máximas e mínimas que a estrutura realmente utiliza. Um pequeno subconjunto da linha clara.
Marcadores da estrutura setas acima/abaixo Os próprios máximos e mínimos da estrutura.
BoS tracejado, verde Quebra de Estrutura — o nível foi alcançado seguindo a tendência.
CHoCH tracejado, vermelho Mudança de Caráter — o nível foi alcançado contra a tendência. A tendência se inverte neste ponto.
x linha contínua, roxa Varredura de liquidez — o nível foi atingido apenas por uma sombra, e o preço seguiu então na direção oposta.
IDM pontilhada, azul Indução — o nível de retração cuja quebra confirma um novo extremo da estrutura.

Cada linha de evento é horizontal e se estende da barra que definiu o nível até a barra que o rompeu; assim, o comprimento da linha indica por quanto tempo esse nível se manteve.

Camada um: as oscilações de retração

Resumidamente, já que isso está documentado na íntegra na entrada anterior: uma alta só se torna uma oscilação quando o preço volta a ser negociado abaixo da mínima da vela que a formou. Nada é determinado pela forma — uma oscilação é um evento, não uma geometria, e é isso que permite que ela tenha um registro de data e hora.

Duas propriedades dessa camada são importantes para as etapas seguintes:

  • A saída alterna estritamente entre alta, baixa, alta, baixa. Nunca duas altas seguidas.
  • Uma oscilação só é confirmada depois da vela em que está inserida. A camada de estrutura só reconhece um recuo quando ele está definitivo; é por isso que a estrutura nunca pode ser construída com base em uma oscilação que ainda seja provisória.

Ambas as camadas são alimentadas uma barra fechada de cada vez, primeiro o pullback, depois a estrutura — assim, quando a estrutura avalia uma barra, ela já sabe de qualquer oscilação confirmada nessa mesma barra.

Camada dois: a estrutura

A estrutura contém exatamente três elementos:

Estado Significado
Tendência Nenhum, Alta ou Baixa
Máximo da estrutura a única alta que importa no momento — o nível cuja quebra é de alta
Mínimo estrutural a única baixa que importa no momento — o nível cuja quebra é de baixa

Ela é definida a partir da primeira alta de retração e da primeira baixa de retração, com a tendência definida como “Nenhuma”. A partir desse momento, a camada de retração nunca mais grava na estrutura — ela apenas fornece os níveis de referência descritos mais adiante.

A regra de rompimento: fechamento, varredura de pavio

Essa única distinção gera três dos quatro tipos de eventos:

A level is broken only when a candle closes beyond it. A candle whose wick alone goes beyond it has swept it.


Portanto, para cada vela fechada, com a tendência e os dois níveis como estão:

Tendência O que a vela fez Evento
Nenhum fechou acima da máxima / abaixo da mínima BoS — a tendência passa a ser de alta / de baixa
Alta fechou acima da máxima da estrutura BoS — continuação, a tendência permanece de alta
Alta fechou abaixo da mínima da estrutura CHoCH — a tendência inverte para Baixa
Baixa fechou abaixo da mínima da estrutura BoS — continuação, a tendência permanece de baixa
Baixa fechou acima da máxima da estrutura CHoCH — a tendência inverte para alta
qualquer sombra ultrapasse um nível, fechamento de volta dentro candidato a varredura — anotado, nada traçado ainda
qualquer permaneceu dentro de ambos os níveis nada

Portanto, BoS e CHoCH são o mesmo evento — um fechamento através de um nível. A única coisa que determina a classificação é se a quebra está de acordo com a tendência já em vigor. Sem tendência ainda, a primeira quebra é um BoS por definição, pois não há característica a ser alterada.

A varredura: quando uma sombra se torna um x

Uma sombra que atravessa um nível não é um evento por si só. Ela é registrada e fica pendente, pois, naquele momento, é ambígua — o preço pode simplesmente fechar ultrapassando o nível na próxima vela; nesse caso, seria uma quebra comum em formação, e não uma varredura.

Ela se torna um “x” somente quando a próxima quebra ocorre no lado oposto. A sequência clássica, em uma tendência de alta:


  1. O preço ultrapassa a máxima da estrutura com uma sombra, mas fecha novamente abaixo dela. Registrado como um candidato a varredura. Nada no gráfico.
  2. O preço inverte e fecha abaixo da mínima da estrutura.
  3. Isso resolve a ambiguidade. O movimento de alta foi uma captação de liquidez, então o indicador move a máxima da estrutura para a vela varrida — o marcador e ambas as pernas em zigue-zague a seguem — traça a linha “x” sólida e só então registra o CHoCH.

Mudar a máxima é o objetivo de todo o exercício. A oscilação a partir da qual a reversão começou é a vela de varredura, não a máxima anterior pela qual ela passou, e todos os níveis que você derivar posteriormente devem ser medidos a partir daí.

A linha “x” se estende da barra que definiu o nível até a barra cuja sombra o atingiu, traçada ao preço do nível anterior — essa é a liquidez que estava ali. O cenário de baixa é exatamente o oposto: uma sombra abaixo da mínima da estrutura, seguida de um fechamento acima da máxima da estrutura.

Três regras garantem a precisão disso:

  • Se várias velas ultrapassarem o nível, a mais distante prevalece.
  • Se, posteriormente, o preço fechar ultrapassando o nível na mesma direção, trata-se de uma quebra comum e o candidato a varredura é descartado.
  • Um candidato a varredura é descartado assim que qualquer novo ponto da estrutura for publicado. Uma vez que a estrutura tenha avançado, uma sombra mais antiga fica obsoleta e não deve reposicionar um ponto retroativamente.

IDM: confirmando o novo extremo

Uma quebra responde a uma pergunta e abre outra. Quando o preço fecha acima da máxima da estrutura em uma tendência de alta, você sabe que ocorreu um BoS — mas ainda não sabe onde está a nova máxima. O preço ainda está se movendo. Considerar a vela de quebra como a nova máxima seria errado no momento em que a próxima vela subir mais.

O indício é a resposta. No momento do BoS:


  1. A mínima mais recente da retração torna-se a referência — o IDM.
  2. O preço continua subindo; o indicador acompanha a máxima mais alta alcançada, mas não indica nada.
  3. Cada vez que uma nova mínima de retração se forma acima do IDM atual, o IDM se ajusta para esse nível. A referência é sempre a mínima de retração mais alta observada desde a quebra.
  4. Quando o preço finalmente retorna e atinge o IDM, a nova máxima da estrutura é confirmada: é a máxima mais alta entre a vela de rompimento e a vela que atingiu o IDM.

Nesse momento, a linha pontilhada do IDM é traçada — desde a retração que a definiu até a vela que a ultrapassou — e o marcador da máxima da estrutura aparece. Os dois sempre coincidem, o que torna a linha do IDM uma verificação útil da lógica: toda máxima da estrutura deve ter uma linha do IDM terminando na barra onde seu marcador aparece.

O cenário de baixa é o espelho: após uma quebra de baixa, o IDM é a máxima mais baixa da retração, e sua confirmação confirma a nova mínima da estrutura como a mínima mais baixa do movimento.

Enquanto um extremo estiver pendente, o próprio lado da estrutura não mantém nenhum nível, de modo que apenas o lado oposto pode ser rompido. Isso decorre do próprio desenho, sem a necessidade de uma regra: a IDM sempre fica no nível da mínima da estrutura ou acima dela, de modo que o preço precisa atingir a IDM — confirmando a máxima — antes de poder atingir a mínima.

Mantendo a cadeia em zigue-zague

Os pontos da estrutura devem se alternar, exatamente como na camada de retração. Duas máximas consecutivas constituem uma cadeia quebrada, não uma estrutura.

Uma quebra de alta está a caminho de formar uma alta. Se o ponto mais recente da cadeia já for uma alta, falta uma baixa entre eles; portanto, o indicador considera a baixa mais baixa entre essa alta e a vela de quebra e a publica primeiro. Se o ponto mais recente já for uma baixa, a cadeia se alterna e nada é inserido.

Essa única regra abrange todos os casos: seu BoS em uma tendência estabelecida, seu CHoCH e a primeira quebra após o ponto inicial. O caso de baixa é o espelho — a máxima mais alta da faixa varrida.

Casos extremos, declarados abertamente

Situação Como é resolvida
Uma vela tanto atinge o IDM quanto fecha no nível oposto Leia nessa ordem: o extremo é confirmado primeiro, depois a quebra é registrada. Esse é precisamente o caso de “varredura seguida de CHoCH”, e a ordem é importante.
Um extremo pendente nunca é confirmado, porque o preço rompe primeiro na direção oposta O extremo rastreado é publicado onde está, e só depois a quebra é processada. Nada se perde e a cadeia continua alternando.
A própria vela de rompimento retorna ao IDM A confirmação nunca pode ocorrer na própria vela de rompimento. O mais cedo que ela pode ocorrer é na barra seguinte.
Ainda não existe um recuo que sirva como IDM Em vez disso, é utilizado o nível de estrutura atual nesse lado. Isso só ocorre nas barras mais antigas do gráfico.

Sobre a repintura — leia isto antes de usar

A camada de retração não é repintada, e nada mudou nela.

A camada de estrutura, por outro lado, repinta, e isso não é um defeito — é a própria natureza do método. Duas coisas se movem:

  • Um extremo pendente se move à medida que o preço se estende, até o momento em que o IDM é capturado. Ele é publicado em tempo real para que você possa ver a estrutura se formando, em vez de ficar esperando no escuro.
  • Uma varredura reposiciona um ponto para trás, por design. Esse é todo o propósito do x.

Assim que um extremo é confirmado por seu IDM e não há nenhum sweep pendente contra ele, ele é finalizado. Eventos — BoS, CHoCH, x, IDM — são apenas de acréscimo e nunca se movem.

Se você basear-se nisso, trate um ponto da estrutura como provisório até que sua linha de IDM exista e trate os eventos como o registro estável. Apenas velas fechadas são avaliadas; a vela em formação é totalmente ignorada.

Entradas

Camada de recuo

Entrada Padrão O que faz
Comece procurando Procurando por uma alta de oscilação Qual lado a primeira perna procura. Afeta apenas as barras mais antigas do gráfico.
Quebra do pullback confirmada por Wick O controle de sensibilidade para todo o indicador. “Wick” é a regra literal do Trading Hub. A opção “Close” gera menos pullbacks, porém maiores — e, portanto, menos movimentos estruturais, porém maiores. Ative essa opção nos tempos de M1 a M15 ou em ativos voláteis, como o ouro e CFDs de índices.

Estrutura de mercado

Entrada Padrão O que faz
Extremo confirmado quando a referência é Pena Como o IDM deve ser interpretado. “Wick” significa “tocado”; “Close” requer um fechamento através dele, o que confirma os extremos posteriormente, mas filtra os toques superficiais no momento do estímulo.
Detectar varreduras de liquidez verdadeiro Desative para estrutura simples: os níveis são então determinados apenas pelo fechamento, sem x, e os pontos nunca são reposicionados. Útil para comparar as duas leituras lado a lado.

Não há configuração de período, profundidade ou sensibilidade em lugar algum — a estrutura não possui parâmetros próprios. Se você quiser uma estrutura maior, aumente o intervalo de tempo ou altere a regra de recuo para “Fechamento”.

Exibição

Grupo O que controla
Ziguezague de recuo As oscilações subjacentes pouco visíveis — cor, estilo, largura ou desativar totalmente.
Ziguezague de estrutura A linha de estrutura dourada.
Marcadores de estrutura Setas nos máximos/mínimos da estrutura: códigos Wingdings e distância em pixels da barra. Os buffers permanecem preenchidos quando as setas estão desativadas, de modo que o iCustom ainda visualiza tudo.
Linhas de quebra Uma cor separada para BoS, CHoCH, x e IDM, além da largura da linha e das legendas. Desative as legendas em gráficos densos e mantenha as cores como referência.

Alertas

Notificações pop-up e push em um evento de estrutura. Elas são acionadas apenas em atualizações em tempo real, nunca enquanto o histórico é carregado, e apenas uma vez por evento.

Utilização em um EA

Cinco buffers. O valor vazio é 0,0.

Buffer Conteúdo
0 preço de uma estrutura alta
1 preço mínimo de uma estrutura
2 tendência em cada barra: 1 alta, -1 baixa, 0 nenhuma
3 preço da alta de uma retração confirmada
4 preço de uma mínima de retração confirmada
int h = iCustom(_Symbol, _Period, "SMC_MarketStructure");
double trend[];
CopyBuffer(h, 2, 0, 1, trend);   // 1 = up, -1 = down, 0 = none

O buffer 2 é preenchido em cada barra, incluindo a que está se formando, portanto, consultá-lo no deslocamento 0 sempre retorna a tendência atual. Os outros quatro são esparsos por natureza.

Ambos os mecanismos são classes autônomas, sem dependências de buffers ou gráficos — o CPullbackDetector recebe matrizes de preços e relata oscilações confirmadas, enquanto o CMarketStructure recebe barras e essas oscilações e relata uma cadeia de pontos e uma lista de eventos. Ambos podem ser copiados diretamente para um EA caso você prefira não passar pelo iCustom, que também fornece os eventos — eles não são expostos por meio de buffers.

O que ele deliberadamente não faz

Ele se limita à estrutura. Sem blocos de ordens, sem lacunas de valor justo, sem zonas de prêmio/desconto, sem entradas e sem marcação de HH/HL/LH/LL. Tudo isso requer, em primeiro lugar, uma tendência confiável e um par confiável de níveis — que é exatamente o que ele fornece, com cada decisão tomada visível no gráfico como uma linha que você pode verificar.

Traduzido do inglês pela MetaQuotes Ltd.
Publicação original: https://www.mql5.com/en/code/78245

VelaMayor MTF - Higher Timeframe Candle Overlay VelaMayor MTF - Higher Timeframe Candle Overlay

Sobreponha velas de intervalos de tempo superiores diretamente nos seus gráficos de intervalos de tempo inferiores, com preenchimentos de corpo personalizáveis, bordas independentes e pavios precisos. Identifique com facilidade tendências macroeconômicas, aberturas de sessão e faixas de liquidez sem precisar alternar entre telas. Motor ultraleve com limites de caixa separados e recuperação automática de alterações nos gráficos extremamente confiável.

Margin Risk Simulator Margin Risk Simulator

Mostra os preços do símbolo atual nos quais a conta atinge o nível de chamada de margem e o stop out, com um modo de simulação para volume adicional, o volume máximo que você pode adicionar e as ordens pendentes que são acionadas ao longo do processo.

QCL Heikin Flow MT5 QCL Heikin Flow MT5

O QCL Heikin Flow aplica um suavização em duas etapas às velas Heikin Ashi, ajudando os operadores a filtrar o ruído dos preços e visualizar a direção da tendência. Oferece períodos de suavização ajustáveis, quatro métodos de média móvel e cores personalizáveis para as velas.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

O Indicador Acceleration/Deceleration (Aceleração/Desaceleração ou AC) mede a aceleração e a desaceleração da força motriz atual do mercado.