Participe de nossa página de fãs
Coloque um link para ele, e permita que outras pessoas também o avaliem
Avalie seu funcionamento no terminal MetaTrader 5
- Visualizações:
- 20
- Avaliação:
- Publicado:
-
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
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
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
O Indicador Accumulation/Distribution (Acumulação/Distribuição ou A/D) é determinado pelas mudanças de preço e volume.
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.