Mi anterior entrada en CodeBase, «Indicador de retroceso SMC», respondía a una pregunta: ¿qué máximos y mínimos son realmente importantes? Se detuvo ahí deliberadamente, y la descripción lo dejaba claro: sin etiquetas HH/HL, sin BoS, sin CHoCH, sin IDM. Esos son pasos independientes que requieren primero un conjunto fiable de oscilaciones.
Este indicador es ese siguiente paso. Marca la estructura del mercado tal y como la describe Smart Money Concepts (SMC), y utiliza el mismo detector de retrocesos —la clase se incluye aquí sin modificaciones, por lo que el archivo es independiente y no requiere instalación de dependencias— y construye la estructura del mercado a partir de ahí: una tendencia, un máximo actual, un mínimo actual y los cuatro eventos que los mueven. BoS, CHoCH, IDM y el barrido de liquidez marcado con una «x».
| Elemento | Apariencia | Significado |
|---|---|---|
| Zigzag de retroceso | línea fina y pálida | Cada oscilación detectada mediante la regla del retroceso. Se trata de la materia prima, deliberadamente difusa: es contexto, no una señal. |
| Zigzag de estructura | línea gruesa dorada | Solo los máximos y mínimos que la estructura utiliza realmente. Un pequeño subconjunto de la línea pálida. |
| Marcadores de estructura | flechas arriba/abajo | Los propios máximos y mínimos de la estructura. |
| BoS | discontinuo, verde | Rotura de estructura: el nivel se tomó siguiendo la tendencia. |
| CHoCH | discontinuo, rojo | Cambio de carácter: el nivel se alcanzó en contra de la tendencia. La tendencia cambia aquí. |
| x | línea continua, morada | Barrido de liquidez: el nivel se alcanzó solo con una mecha, y el precio se movió entonces en la dirección opuesta. |
| IDM | punteada, azul | Inducción: el nivel de retroceso cuya ruptura confirma un nuevo extremo de la estructura. |
Cada línea de evento es horizontal y se extiende desde la barra que estableció el nivel hasta la barra que lo superó, por lo que la longitud de la línea indica cuánto tiempo se mantuvo ese nivel.
Brevemente, ya que se documenta al completo en la entrada anterior: un máximo se convierte en un swing solo cuando el precio vuelve a cotizar por debajo del mínimo de la vela que lo generó. La forma no determina nada: un swing es un evento, no una figura geométrica, y eso es lo que le permite llevar una marca de tiempo.
Hay dos propiedades de esa capa que son importantes más adelante:
Ambas capas se alimentan de una barra cerrada cada vez, primero el retroceso y luego la estructura; así, cuando la estructura evalúa una barra, ya conoce cualquier oscilación confirmada en esa misma barra.
La estructura contiene exactamente tres elementos:
| Estado | Significado |
|---|---|
| Tendencia | Ninguna, al alza o a la baja |
| Máximo de la estructura | el único máximo que importa actualmente: el nivel cuya ruptura es alcista |
| Mínimo estructural | el único mínimo que importa actualmente: el nivel cuya ruptura es bajista |
Se establece a partir del primer máximo y del primer mínimo del retroceso, con la tendencia fijada en «Ninguna». A partir de ese momento, la capa de retroceso nunca vuelve a escribir en la estructura; solo proporciona los niveles de referencia que se describen más adelante.
Esta única distinción da lugar a tres de los cuatro 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.
Así pues, para cada vela cerrada, con la tendencia y los dos niveles tal y como están:
| Tendencia | Lo que hizo la vela | Evento |
|---|---|---|
| Ninguno | cerró por encima del máximo / por debajo del mínimo | BoS: la tendencia pasa a ser alcista / bajista |
| Al alza | Cierre por encima del máximo de la estructura | BoS: continuación, la tendencia se mantiene alcista |
| Al alza | Cierre por debajo del mínimo de la estructura | CHoCH — la tendencia cambia a la baja |
| A la baja | Cierre por debajo del mínimo de la estructura | BoS — continuación, la tendencia se mantiene a la baja |
| A la baja | Cierre por encima del máximo de la estructura | CHoCH: la tendencia cambia a alcista |
| cualquier | mecha que supere un nivel, cierre de nuevo dentro | candidato a barrido — anotado, aún no se ha dibujado nada |
| cualquier | permaneció dentro de ambos niveles | nada |
Así pues, BoS y CHoCH son el mismo evento: un cierre a través de un nivel. Lo único que determina la etiqueta es si la ruptura concuerda con la tendencia que ya está en vigor. Al no haber aún tendencia, la primera ruptura es un BoS por definición, porque no hay ningún carácter que cambiar.
Una mecha que atraviesa un nivel no es un evento en sí misma. Se registra y se deja pendiente, porque en ese momento es ambigua: el precio podría simplemente cerrar por encima del nivel en la siguiente vela, en cuyo caso se trataría de una ruptura ordinaria en ciernes, no de un barrido.
Solo se convierte en una «x» cuando la siguiente ruptura se produce en el lado opuesto. La secuencia clásica, en una tendencia alcista:
Desplazar el máximo es el objetivo de todo el ejercicio. El swing desde el que se inició la reversión es la vela de barrido, no el máximo anterior que atravesó, y todos los niveles que se deriven a partir de ahí deben medirse desde ese punto.
La línea «x» se extiende desde la barra que estableció el nivel hasta la barra cuya mecha lo alcanzó, trazada al precio del nivel anterior —esa es la liquidez que reposaba allí—. El caso bajista es exactamente el reflejo: una mecha por debajo del mínimo de la estructura, seguida de un cierre por encima del máximo de la estructura.
Tres reglas garantizan la fiabilidad de este método:
Una ruptura responde a una pregunta y plantea otra. Cuando el precio cierra por encima del máximo de la estructura en una tendencia alcista, sabes que se ha producido un BoS, pero aún no sabes dónde está el nuevo máximo. El precio sigue moviéndose. Considerar que la vela de ruptura es el nuevo máximo sería un error en el momento en que la siguiente vela suba más.
El incentivo es la respuesta. En el momento del BoS:
En ese momento se traza la línea punteada del IDM —desde el retroceso que la estableció hasta la vela que la atravesó— y aparece el marcador del máximo de la estructura. Ambos siempre coinciden, lo que convierte a la línea del IDM en una útil verificación de la lógica: cada máximo de la estructura debería tener una línea del IDM que termine en la barra donde aparece su marcador.
El caso bajista es el reflejo: tras una ruptura bajista, el IDM es el máximo del retroceso más bajo, y su activación confirma el nuevo mínimo de la estructura como el mínimo más bajo del movimiento.
Mientras un extremo está pendiente, su propio lado de la estructura no mantiene ningún nivel, por lo que solo se puede romper el lado opuesto. Esto se deduce del diseño más que de una regla: la IDM siempre se sitúa en el mínimo de la estructura o por encima de él, por lo que el precio tiene que alcanzar la IDM —confirmando así el máximo— antes de poder llegar al mínimo.
Los puntos de la estructura deben alternarse, exactamente igual que en la capa de retroceso. Dos máximos seguidos suponen una cadena rota, no una estructura.
Una ruptura alcista está a punto de marcar un máximo. Si el punto más reciente de la cadena ya es un máximo, falta un mínimo entre ambos, por lo que el indicador toma el mínimo más bajo entre ese máximo y la vela de ruptura y lo publica primero. Si el punto más reciente ya es un mínimo, la cadena se alterna y no se inserta nada.
Esa única regla cubre todos los casos: tu BoS en una tendencia establecida, tu CHoCH y la primera ruptura tras el punto inicial. El caso bajista es el reflejo: el máximo más alto del rango barrido.
| Situación | Cómo se resuelve |
|---|---|
| Una vela alcanza el IDM y cierra por encima del nivel opuesto | Léelo en ese orden: primero se confirma el extremo y, a continuación, se registra la ruptura. Este es precisamente el caso de «barrido y luego CHoCH», y el orden es importante. |
| Un extremo pendiente nunca se confirma, porque el precio rompe primero en la otra dirección | El extremo rastreado se publica tal y como está, y después se procesa la ruptura. No se pierde nada y la cadena sigue alternando. |
| La propia vela de ruptura vuelve al IDM | La confirmación nunca puede producirse en la propia vela de ruptura. Lo más pronto que puede ocurrir es en la barra siguiente. |
| Aún no existe ningún retroceso que sirva como IDM | En su lugar, se utiliza el nivel de estructura actual de ese lado. Esto solo ocurre en las barras más antiguas del gráfico. |
La capa de retroceso no se repinta, y nada ha cambiado al respecto.
La capa de estructura sí lo hace, y no es un defecto: es la propia naturaleza del método. Hay dos elementos que se mueven:
Una vez que un extremo queda confirmado por su IDM y no hay ningún barrido pendiente en su contra, queda fijado. Los eventos —BoS, CHoCH, x, IDM— son de solo añadir y nunca se mueven.
Si partes de esta base, considera un punto de la estructura como provisional hasta que exista su línea IDM, y trata los eventos como el registro estable. Solo se evalúan las velas cerradas; la vela en formación se ignora por completo.
| Entrada | Por defecto | Qué hace |
|---|---|---|
| Empieza por buscar | Buscar un máximo de oscilación | El lado que busca el primer tramo. Solo afecta a las barras más antiguas del gráfico. |
| Ruptura del retroceso confirmada por | Wick | El control de sensibilidad para todo el indicador. «Wick» es la regla literal de Trading Hub. «Close» ofrece menos retrocesos, pero más amplios, y, por lo tanto, menos movimientos estructurales, pero de mayor envergadura. Cámbialo a esta opción en M1–M15 o en activos con mucha volatilidad, como el oro y los CFD sobre índices. |
| Entrada | Por defecto | Qué hace |
|---|---|---|
| Se confirma un valor extremo cuando la referencia es | Mecha | Cómo debe interpretarse el IDM. «Wick» significa «tocado»; «Close» requiere un cierre a través de él, lo que confirma los extremos posteriormente, pero filtra los toques superficiales en el momento del impulso. |
| Detectar barridos de liquidez | verdadero | Desactivar para una estructura sencilla: los niveles se toman entonces solo por el cierre, sin «x», y los puntos nunca se reubican. Útil para comparar las dos lecturas una al lado de la otra. |
No hay ningún ajuste de período, profundidad o sensibilidad en ninguna parte: la estructura no tiene parámetros propios. Si quieres una estructura más amplia, aumenta el marco temporal o cambia la regla de retroceso a «Cierre».
| Grupo | Qué controla |
|---|---|
| Retroceso en zigzag | Las oscilaciones subyacentes poco marcadas: color, estilo, ancho o desactivarlas por completo. |
| Estructura en zigzag | La línea de estructura dorada. |
| Marcadores de estructura | Flechas en los máximos y mínimos de la estructura: códigos Wingdings y distancia en píxeles respecto a la barra. Los búferes permanecen llenos cuando las flechas están desactivadas, por lo que iCustom sigue viendo todo. |
| Líneas de separación | Un color distinto para BoS, CHoCH, x e IDM, además del grosor de la línea y los títulos. Desactiva los títulos en gráficos densos y mantén los colores como clave. |
Ventana emergente y notificación push ante un evento de estructura. Se activan solo con actualizaciones en tiempo real, nunca mientras se carga el historial, y solo una vez por evento.
Cinco búferes. El valor por defecto es 0,0.
| Búfer | Contenido |
|---|---|
| 0 | precio del máximo de una estructura |
| 1 | Precio mínimo de una estructura |
| 2 | tendencia en cada barra: 1 al alza, -1 a la baja, 0 sin tendencia |
| 3 | precio del máximo de un retroceso confirmado |
| 4 | precio de un mínimo de retroceso confirmado |
int h = iCustom(_Symbol, _Period, "SMC_MarketStructure");
double trend[];
CopyBuffer(h, 2, 0, 1, trend); // 1 = up, -1 = down, 0 = none El búfer 2 se rellena en cada barra, incluida la que se está formando, por lo que leerlo en el desplazamiento 0 siempre devuelve la tendencia actual. Los otros cuatro son, por naturaleza, dispersos.
Ambos motores son clases autónomas que no dependen de ningún búfer ni gráfico: CPullbackDetector toma matrices de precios e informa de oscilaciones confirmadas, mientras que CMarketStructure toma barras más dichas oscilaciones e informa de una cadena de puntos y una lista de eventos. Ambos pueden copiarse directamente en un EA si prefieres no pasar por iCustom, que también te proporciona los eventos —estos no se exponen a través de los buffers—.
Se limita a la estructura. No hay bloques de órdenes, ni brechas de valor razonable, ni zonas de prima/descuento, ni entradas, ni etiquetado de HH/HL/LH/LL. Todo ello requiere primero una tendencia fiable y un par de niveles fiables —que es lo que proporciona este sistema—, y cada decisión que toma se hace visible en el gráfico como una línea que puedes comprobar.
Traducción del inglés realizada por MetaQuotes Ltd.
Artículo original: https://www.mql5.com/en/code/78245
VelaMayor MTF - Higher Timeframe Candle Overlay
Superpón velas de marcos temporales superiores directamente sobre tus gráficos de marcos temporales inferiores con rellenos de cuerpo personalizables, bordes independientes y mechas precisas. Detecta sin esfuerzo la tendencia macro, las aperturas de sesión y los rangos de liquidez sin tener que cambiar de pantalla. Motor ultraligero con límites de cuadro separados y una recuperación automática de los cambios en los gráficos totalmente fiable.
Margin Risk Simulator
Muestra los precios del símbolo actual en los que la cuenta alcanza el nivel de llamada de margen y el stop out, con un modo de simulación para un volumen adicional, el volumen máximo que se puede añadir y las órdenes pendientes que se activan en el proceso.
QCL Heikin Flow MT5
QCL Heikin Flow aplica un suavizado en dos etapas a las velas Heikin Ashi, lo que ayuda a los operadores a filtrar el ruido de los precios y a visualizar la dirección de la tendencia. Incluye períodos de suavizado ajustables, cuatro métodos de media móvil y colores de velas personalizables.
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.