Assista a como baixar robôs de negociação gratuitos
Encontre-nos em Twitter!
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

Order Block Detector - indicador para MetaTrader 5

Olamide Daniel Adebayo
Olamide Daniel Adebayo
MQL5 Developer • Trading Tools • EAs • Products • Articles
Building, learning, and sharing one project at a time.
| Portuguese English Русский 中文 Español Deutsch 日本語 한국어 Français Italiano Türkçe
Visualizações:
20
Avaliação:
(2)
Publicado:
Freelance MQL5 Precisa de um robô ou indicador baseado nesse código? Solicite-o no Freelance Ir para Freelance

Detector de blocos de pedidos

A ideia por trás disso

Antes de um forte movimento impulsivo, geralmente há uma última vela indo na direção “errada” — a última vela de venda antes que o preço dispare para cima, ou a última vela de compra antes que o preço despenque. Essa vela é interpretada como a marca do fluxo de ordens que impulsionou o movimento: a zona que ela ocupa é onde provavelmente uma grande posição foi construída antes do rompimento. Este indicador formaliza a detecção em três etapas: confirmar pontos de oscilação fractais genuínos, observar se o fechamento rompe decisivamente um deles com uma vela de impulso de corpo real (não um impulso fraco de doji) e, em seguida, olhar para trás a partir desse rompimento em busca da última vela oposta — o intervalo dessa vela se torna o bloco de ordens.

Assim como os detectores de gap e de varredura de liquidez desta série, uma zona aqui é genuinamente dinâmica: enquanto não for mitigada, ela continua se estendendo para a frente até a barra atual e, no instante em que o preço volta a ser negociado dentro dela, a caixa congela exatamente nessa barra e (por padrão) fica cinza — assim, de relance, você pode identificar quais zonas ainda estão “não testadas” e quais já foram revisadas.

Como interpretá-la

  • Bloco de ordens de alta (padrão verde/branco) — a última vela com fechamento em baixa antes de um fechamento impulsivo acima de uma alta de oscilação recente. Oferta não testada que se transformou em demanda; frequentemente observada como suporte potencial em uma retração.
  • Bloco de ordens de baixa (padrão: vermelho) — a última vela com fechamento em alta antes de um fechamento impulsivo abaixo de uma mínima de oscilação recente. Demanda não testada que se transformou em oferta; frequentemente observada como resistência potencial em uma recuperação.
  • Uma zona em extensão (colorida) — ainda não mitigada; sua borda direita continua avançando em tempo real com o InpExtendUntilMitigated ativado (padrão), ou para após um número fixo de barras definido por InpExtendBars, se desativado.
  • Uma zona congelada, cinza — o preço voltou a ser negociado dentro dela — o bloco foi mitigado, e sua caixa parou exatamente naquela barra. Defina InpHideMitigatedOBs para excluir zonas mitigadas em vez de torná-las cinzas.
  • Vela de “ruptura” versus o próprio bloco de ordem — o bloco de ordem é a vela oposta, não a impulsiva; a vela impulsiva é usada apenas para confirmar a ruptura da estrutura e nunca é desenhada como uma zona em si.

Variáveis externas (entradas)

Entrada Padrão Finalidade
InpSwingLookback 5 Número de barras necessárias de cada lado de uma barra candidata para que ela seja confirmada como uma máxima/mínima de oscilação.
InpMinBreakPoints 30 Distância mínima, em pontos, que um fechamento deve ultrapassar um nível de oscilação para ser considerado uma quebra genuína da estrutura.
InpMinImpulseBodyPercent 50,0 Porcentagem mínima do corpo em relação ao intervalo que a vela de rompimento deve apresentar — filtra “rompimentos” fracos, com pavios extensos.
InpMaxSearchBarsForOB 10 Quantos períodos atrás da vela de rompimento se deve procurar pela vela de bloqueio de ordens oposta.
InpUseBodyOnly false Utiliza apenas o corpo da vela do bloco de ordens, em vez de toda a amplitude da sombra (máxima e mínima), para definir a zona.
InpMinZoneSizePoints 30 Tamanho mínimo da zona, em pontos, para que um bloco de ordens detectado seja desenhado.
InpMaxOBsToTrack 30 Número máximo de blocos de ordens mantidos no gráfico ao mesmo tempo; o bloco rastreado mais antigo é removido sempre que um novo exceder esse limite.
InpExtendUntilMitigated true Quando verdadeiro, a zona de um bloco não mitigado continua se estendendo em tempo real até a barra atual; quando falso, ela para após um número fixo de barras.
InpExtendBars 40 Comprimento fixo da extensão (em barras), usado apenas quando InpExtendUntilMitigated está definido como falso.
InpRequireFullCloseForMitigation false Quando verdadeiro, uma vela deve fechar dentro da zona para mitigá-la; quando falso, basta que qualquer pavio toque a zona.
InpHideMitigatedOBs false Quando definido como verdadeiro, a zona de um bloco é excluída no momento em que é mitigada, em vez de ficar esmaecida e ser mantida.
InpBullishOBColor / InpBearishOBColor Verde-limão / Vermelho Cores para zonas de blocos de ordens de alta e de baixa não mitigadas.
InpMitigatedColor Cinza escuro Cor que a zona assume quando mitigada (quando não estiver oculta).
InpFillBox true Determina se as zonas de bloqueio de ordem são preenchidas ou desenhadas apenas como contornos.
InpBoxStyle / InpBoxWidth Sólido / 1 Estilo e largura da borda de cada zona.
InpShowLabels true Exibe um rótulo de texto com o preço da zona ao lado de cada bloco de pedido.

Uso recomendado

Funciona em qualquer símbolo e em qualquer período de tempo; os conceitos de quebra de estrutura e bloco de ordens são puramente baseados na ação do preço, sem suposições específicas para cada símbolo — embora, como qualquer método de pivô fractal, o InpSwingLookback equilibre a importância dos níveis com a frequência de detecção, da mesma forma que faz no Detector de Varredura de Liquidez desta série. As quebras de estrutura e a mitigação são avaliadas apenas em barras totalmente fechadas por padrão; portanto, um bloco não aparecerá nem desaparecerá no meio de uma vela enquanto a máxima, mínima e fechamento da barra atual ainda estiverem mudando.

O InpMinImpulseBodyPercent existe especificamente para evitar classificar um fechamento quase imperceptível como uma “ruptura” — uma vela que apenas ultrapassa um nível de oscilação com uma grande sombra e um corpo pequeno é excluída, já que isso se assemelha mais a ruído do que a um deslocamento genuíno. Em históricos de gráficos muito longos, o InpMaxOBsToTrack mantém a contagem de objetos limitada, em vez de permitir que cada bloco de ordens históricas se acumule indefinidamente. Este indicador apenas lê dados de preço e nunca abre, modifica ou encerra qualquer ordem, portanto, é seguro executá-lo em qualquer tipo de conta.

Todos os objetos do gráfico são criados sob um único prefixo de nome interno e são totalmente removidos por meio de ObjectsDeleteAll() em OnDeinit() quando o indicador é desativado, de modo que não deixa nada para trás no gráfico.



Fig. 1. Um bloco de ordens de alta confirmado pela vela de rompimento impulsivo, posteriormente atenuado, no XAUUSD M15. Representado em preto e branco de acordo com as diretrizes de imagem da Code Base (750×500 px).

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

Broker Profiler Broker Profiler

Exibe as propriedades que fazem com que o mesmo EA se comporte de maneira diferente em outra corretora: horário de negociação, tamanho do contrato, valor do tick, estatísticas de spread, custo de swap e cobertura de sessões reais. Somente para leitura, não realiza negociações.

Market Structure Swing Map MT5 Market Structure Swing Map MT5

Um indicador de estrutura de mercado para o MT5 que identifica claramente os picos e vales confirmados (HH, HL, LH e LL) diretamente no gráfico.

Accumulation/Distribution Accumulation/Distribution

O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.

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.