Mira cómo descargar robots gratis
¡Búscanos en Telegram!
Pon "Me gusta" y sigue las noticias
¿Es interesante este script?
Deje un enlace a él, ¡qué los demás también lo valoren!
¿Le ha gustado el script?
Evalúe su trabajo en el 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.
| Spanish English Русский 中文 Deutsch 日本語 Português 한국어 Français Italiano Türkçe
Visualizaciones:
22
Ranking:
(2)
Publicado:
MQL5 Freelance ¿Necesita un robot o indicador basado en este código? Solicítelo en la bolsa freelance Pasar a la bolsa

Detector de bloques de órdenes

La idea que hay detrás

Antes de un fuerte movimiento impulsivo, suele haber una última vela que va en la dirección «equivocada»: la última vela de venta antes de que el precio se dispare al alza, o la última vela de compra antes de que el precio se desplome. Esa vela se interpreta como la huella del flujo de órdenes que impulsó el movimiento: la zona que ocupa es donde probablemente se acumuló una gran posición antes de la ruptura. Este indicador formaliza la detección en tres pasos: confirmar puntos de oscilación fractales genuinos, estar atento a un cierre que supere de forma decisiva uno de ellos con una vela de impulso de cuerpo real (no un empujón débil de tipo doji) y, a continuación, mirar hacia atrás desde esa ruptura para localizar la última vela opuesta; el rango de esa vela se convierte en el bloque de órdenes.

Al igual que los detectores de brechas y de barridos de liquidez de esta serie, una zona aquí está realmente activa: mientras no se mitigue, sigue extendiéndose hacia adelante hasta la barra actual, y en el instante en que el precio vuelve a entrar en ella, el recuadro se congela exactamente en esa barra y (por defecto) se vuelve gris; así, de un vistazo se puede distinguir qué zonas siguen «sin probar» y cuáles ya se han vuelto a visitar.

Cómo interpretarlo

  • Bloque de órdenes alcista (por defecto, verde/blanco): la última vela con cierre a la baja antes de un cierre impulsivo por encima de un máximo de oscilación reciente. Oferta no probada convertida en demanda; a menudo se considera un soporte potencial en un retroceso.
  • Bloque de órdenes bajista (por defecto, rojo): la última vela con cierre al alza antes de un cierre impulsivo por debajo de un mínimo oscilatorio reciente. Oferta no probada que se ha convertido en demanda; a menudo se considera como una posible resistencia en un rebote.
  • Una zona en expansión (de color): aún sin mitigar; su borde derecho sigue avanzando en tiempo real con la opción InpExtendUntilMitigated activada (por defecto), o se detiene tras un número fijo de barras ( InpExtendBars) si está desactivada.
  • Una zona congelada, en gris: el precio ha vuelto a cotizar dentro de ella; el bloque se ha mitigado y su recuadro se detuvo exactamente en esa barra. Configura InpHideMitigatedOBs para eliminar las zonas mitigadas en lugar de mostrarlas en gris.
  • Vela de «ruptura» frente al propio bloque de órdenes: el bloque de órdenes es la vela opuesta, no la impulsiva; la vela impulsiva solo se utiliza para confirmar la ruptura de la estructura y nunca se dibuja como una zona en sí misma.

Variables externas (entradas)

Entrada Por defecto Finalidad
InpSwingLookback 5 Barras necesarias a cada lado de una barra candidata para que se confirme como un máximo o mínimo de oscilación.
InpMinBreakPoints 30 Distancia mínima, en puntos, que debe superar un cierre respecto a un nivel de oscilación para que se considere una ruptura genuina de la estructura.
InpMinImpulseBodyPercent 50,0 Porcentaje mínimo de cuerpo respecto al rango que debe tener la vela de ruptura; filtra las «rupturas» débiles con mechas largas.
InpMaxSearchBarsForOB 10 Número de barras hacia atrás, contando desde la vela de ruptura, en las que se busca la vela de bloqueo de órdenes opuesta.
InpUseBodyOnly false Utiliza únicamente el cuerpo de la vela de bloque de órdenes, en lugar de todo su rango de mechas (máximo-mínimo), para la zona.
InpMinZoneSizePoints 30 Tamaño mínimo de la zona, en puntos, para que se dibuje un bloque de órdenes detectado.
InpMaxOBsToTrack 30 Número máximo de bloques de órdenes que se mantienen en el gráfico a la vez; el bloque más antiguo del que se tiene constancia se elimina cada vez que uno nuevo supera este límite.
InpExtendUntilMitigated true Si es «true», la zona de un bloque no mitigado se sigue extendiendo en tiempo real hasta la barra actual; si es «false», se detiene tras un número fijo de barras.
InpExtendBars 40 Longitud fija de la extensión (en barras), que solo se utiliza cuando InpExtendUntilMitigated es «false».
InpRequireFullCloseForMitigation false Si es «true», una vela debe cerrar dentro de la zona para mitigarla; si es «false», basta con que cualquier mecha toque la zona.
InpHideMitigatedOBs false Si es «true», la zona de un bloque se elimina en el momento en que se mitiga, en lugar de aparecer en gris y mantenerse.
InpBullishOBColor / InpBearishOBColor Verde lima / Rojo Colores para las zonas de bloques de órdenes alcistas y bajistas no mitigadas.
InpMitigatedColor Gris oscuro Color al que cambia una zona una vez mitigada (cuando no está oculta).
InpFillBox true Indica si las zonas de bloqueo de órdenes se rellenan o se dibujan solo como contornos.
InpBoxStyle / InpBoxWidth Sólido / 1 Estilo y ancho del borde de cada zona.
InpShowLabels true Muestra una etiqueta de texto con el precio de la zona junto a cada bloque de pedido.

Uso recomendado

Funciona con cualquier símbolo y cualquier marco temporal; sin embargo, los conceptos de «ruptura de estructura» y «bloque de órdenes» se basan exclusivamente en la acción del precio, sin supuestos específicos para cada símbolo; no obstante, al igual que cualquier método de pivote fractal, InpSwingLookback equilibra la importancia de los niveles con la frecuencia de detección, del mismo modo que lo hace el «Detector de barrido de liquidez» de esta serie. Tanto las rupturas de estructura como su mitigación se evalúan, por diseño, únicamente en barras completamente cerradas, por lo que un bloque no aparecerá ni desaparecerá a mitad de una vela mientras el máximo, mínimo y cierre de la barra actual sigan variando.

InpMinImpulseBodyPercent existe específicamente para evitar etiquetar un cierre apenas perceptible como una «ruptura»: se excluye una vela que apenas supera un nivel de oscilación con una mecha grande y un cuerpo pequeño, ya que eso se acerca más al ruido que a un desplazamiento genuino. En historiales de gráficos muy largos, InpMaxOBsToTrack mantiene limitado el recuento de objetos en lugar de permitir que cada bloque de órdenes históricas se acumule indefinidamente. Este indicador solo lee datos de precios y nunca coloca, modifica ni cierra ninguna orden, por lo que es seguro ejecutarlo en cualquier tipo de cuenta.

Todos los objetos del gráfico se crean bajo un único prefijo de nombre interno y se eliminan por completo mediante ObjectsDeleteAll() en OnDeinit() cuando se desvincula el indicador, por lo que no deja ningún rastro en el gráfico.



Fig. 1. Un bloque de órdenes alcista confirmado por la vela de ruptura impulsiva, posteriormente atenuado, en el XAUUSD M15. Representado en blanco y negro según las directrices de imágenes de Code Base (750×500 px).

Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/76878

Perfil de corredores Perfil de corredores

Muestra las propiedades que hacen que un mismo EA se comporte de forma diferente en otro bróker: horario de negociación, tamaño del contrato, valor del tick, estadísticas de spread, coste del swap y cobertura de la sesión real. Es de solo lectura, no realiza operaciones.

Market Structure Swing Map MT5 Market Structure Swing Map MT5

Un indicador de estructura de mercado para MT5 que marca claramente los picos máximos (HH), máximos de onda (HL), mínimos de onda (LH) y mínimos absolutos (LL) confirmados directamente en el gráfico.

Accumulation/Distribution Accumulation/Distribution

El indicador Accumulation/Distribution (Acumulación/Distribución) queda determinado por los cambios que se producen en el precio y en el volumen.

Accelerator Oscillator (AC) Accelerator Oscillator (AC)

El indicador Acceleration/Deceleration (AC, Aceleración/Desaceleración) mide la aceleración y la desaceleración de la fuerza impulsora del mercado.