Disponible en MQL5 Market: FVG and Structure PRO
Aviso de riesgo. Operar conlleva riesgo de pérdida. Este indicador marca estructuras de precio en el gráfico; no predice el mercado, no abre operaciones y no garantiza ningún resultado. Úselo junto con su propio análisis y gestión del riesgo, y pruebe primero en una cuenta demo.

FVG and Structure PRO dibuja la estructura de mercado (BOS / CHoCH), los fair value gaps (FVG) con seguimiento de su relleno, order blocks, máximos / mínimos iguales (equal highs / lows), FVG de timeframe superior, un rango opcional de premium / discount y un panel de estructura multi-timeframe. Cada elemento se confirma en una barra cerrada: nada se redibuja después de aparecer. Funciona en cualquier símbolo, cualquier bróker y cualquier timeframe.
Novedades de la versión 2.00
- 5 nuevos buffers para Expert Advisors y dashboards: FVG alcista abierto más cercano (techo, suelo), FVG bajista abierto más cercano (techo, suelo) y un evento de zona (FVG nuevo / mitigado, order block nuevo / roto) — sección 14.
- Los FVG y los order blocks se siguen aunque su dibujo esté desactivado, por lo que los buffers también funcionan en un gráfico limpio. El dibujo, las alertas y los buffers existentes no cambian.
- Panel: el texto "bars ago" se oculta mientras la barra del último evento aún no está disponible en el historial del gráfico.
1. Instalación y primer inicio
- Compre o alquile el indicador en el MQL5 Market e instálelo desde la pestaña Market del terminal (Toolbox → Market → Purchased → Install).
- Abra un gráfico y arrastre FVG and Structure PRO desde el Navegador (Indicators → Market) sobre él.
- Mantenga los inputs predeterminados o ajústelos (sección 13) y pulse OK.
El indicador analiza las últimas 1500 barras (input Bars analysed) y después sigue cada nueva barra. El panel aparece en la esquina inferior derecha. En el gráfico, el indicador se llama FVG & Structure PRO.
Configuraciones que hacen que el indicador se niegue a iniciarse (la ventana de inputs se abre de nuevo): Swing strength fuera de 1-50, Bars analysed por debajo de 100 o cualquier límite "per side" por debajo de 1.
2. Leyenda del gráfico
| En el gráfico | Significado |
|---|---|
| Línea continua + etiqueta BOS (verde azulado / rojo) | Break of structure (ruptura de estructura): una barra cerró más allá del último swing high (verde azulado, etiqueta arriba) o swing low (rojo, etiqueta abajo) en la dirección de la tendencia actual. |
| Línea discontinua + etiqueta CHoCH (verde azulado / rojo) | Change of character (cambio de carácter): el mismo tipo de ruptura, pero contra la tendencia actual (la tendencia de la estructura se invierte). |
| Etiquetas HH / LH (rojas, sobre el máximo) | Máximo más alto / máximo más bajo, en comparación con el swing high anterior (opcional). |
| Etiquetas HL / LL (verde azulado, bajo el mínimo) | Mínimo más alto / mínimo más bajo, en comparación con el swing low anterior (opcional). |
| Cuadro relleno verde oscuro | FVG alcista abierto. |
| Cuadro relleno rojo oscuro | FVG bajista abierto. |
| Cuadro relleno azul oscuro + etiqueta OB (verde azulado) | Order block alcista activo. |
| Cuadro relleno marrón oscuro + etiqueta OB (roja) | Order block bajista activo. |
| Cuadro gris oscuro (etiqueta OB gris para order blocks) | FVG mitigado u order block roto — solo cuando Hide mitigated está desactivado. |
| Cuadro con contorno dorado + etiqueta como H1 FVG | FVG abierto del timeframe superior (opcional). |
| Línea punteada dorada + EQH / EQL | Máximos iguales / mínimos iguales (liquidez en reposo). La línea se vuelve gris cuando el precio la atraviesa (barrida). |
| Línea roja punteada Premium, plateada discontinua Equilibrium, verde azulado punteada Discount | Rango entre el swing high y el swing low actuales y su punto medio (opcional). |
| Panel de texto (esquina inferior derecha) | Sesgo de estructura M15 / H1 / H4 / D1, última ruptura de estructura, FVG más cercano por encima y por debajo del precio. |
Cada línea y cuadro tiene un tooltip: pase el ratón por encima para leer su tipo y sus precios. Los objetos están ocultos en la lista de objetos y no se pueden seleccionar, por lo que no se mueven por accidente. Las zonas y los niveles activos se extienden 10 barras a la derecha de la barra actual (input Active zones extend right).
3. Estructura de mercado: BOS y CHoCH

Un swing high es una barra cuyo máximo está por encima de los máximos de las Swing strength barras de cada lado (5 por defecto); un swing low es lo contrario. Por tanto, un swing se confirma Swing strength barras después de formarse.
- Cuando una barra cierra por encima del último swing high, se dibuja una ruptura alcista desde el swing hasta la barra de ruptura; un cierre por debajo del último swing low dibuja una ruptura bajista.
- La ruptura es un BOS (línea continua) cuando sigue la tendencia actual y un CHoCH (línea discontinua) cuando la invierte. La primera ruptura tras la carga es un BOS.
- Cada swing solo puede romperse una vez. Las mechas más allá de un swing no cuentan — solo los cierres.
- Solo las últimas Structure breaks kept on chart (20 por defecto) rupturas permanecen en el gráfico; las más antiguas se eliminan. Las etiquetas de swing conservan el doble de ese número.
Las etiquetas de swing (input HH / HL / LH / LL labels, desactivado por defecto) marcan cada swing confirmado en comparación con el anterior del mismo lado.
Un Swing strength mayor da menos swings, pero más significativos (estructura de swing / externa); uno menor reacciona más rápido (estructura interna).
4. Fair value gaps (FVG)

Un FVG es un desequilibrio de tres velas: el mínimo de la tercera vela está por encima del máximo de la primera (alcista) o el máximo de la tercera vela está por debajo del mínimo de la primera (bajista). El cuadro se dibuja desde la vela central y cubre el hueco entre las dos mechas.
- Minimum gap size (por defecto 0.2 × ATR 14): los huecos más pequeños se ignoran. Auméntelo para ver solo los desequilibrios mayores.
- FVG is mitigated at: Full fill (por defecto — el precio alcanza el borde lejano del hueco), 50% fill (consequent encroachment) (el precio alcanza el centro) o First touch (el precio alcanza el borde cercano).
- Shrink to the unfilled part (activado por defecto): mientras el precio entra en el hueco sin mitigarlo, el cuadro se reduce a la parte que sigue abierta.
- Active FVGs per side (8 por defecto): cuando aparece un nuevo FVG y se supera el límite, se descarta el FVG activo más antiguo de ese lado.
Los rellenos se evalúan en barras cerradas. Un FVG mitigado se elimina del gráfico o se mantiene en el color de mitigado (sección 8).
5. FVG de timeframe superior

Con Show higher timeframe FVGs activado, los FVG abiertos del Higher timeframe seleccionado (H1 por defecto) se dibujan como cuadros con contorno (goldenrod por defecto) con una etiqueta como H1 FVG, sobre los FVG del timeframe del gráfico.
- Usan el mismo tamaño mínimo y la misma regla de mitigación que los FVG del gráfico (sin reducción).
- Solo las barras cerradas del timeframe superior crean huecos; la barra en formación del timeframe superior ya puede rellenar uno.
- Active HTF FVGs per side (4 por defecto) limita la cantidad mostrada.
- Solo se dibujan cuando el timeframe seleccionado es superior al timeframe del gráfico (por ejemplo huecos de H1 en un gráfico M5 o M15).
- El filtro de killzones no se les aplica. Son solo objetos del gráfico (sin buffers).
6. Filtro de killzones (ICT)
Con Only FVGs formed inside killzones activado, los FVG del timeframe del gráfico se mantienen solo cuando su vela central abrió dentro de una de las killzones seleccionadas, en hora de Nueva York, con el horario de verano gestionado automáticamente:
| Killzone | Hora de Nueva York | Por defecto |
|---|---|---|
| London KZ | 02:00-05:00 | on |
| NY AM KZ | 07:00-10:00 | on |
| NY PM KZ | 13:30-16:00 | off |
El filtro está pensado para gráficos intradía (M1 a H1). También se aplica a los buffers de FVG y a las alertas de FVG.
Broker time zone — necesario para convertir la hora del servidor del gráfico a la hora de Nueva York:
- Auto (live) / GMT+2/+3 in tester (por defecto): el desfase se mide a partir del reloj del terminal. Los brókers en GMT+2 / GMT+3 (cierre de Nueva York) se siguen a lo largo del historial con el horario de verano de EE. UU. En el Strategy Tester se asume GMT+2 / GMT+3.
- GMT+2 / GMT+3 (New York close brokers): fuerza esa regla.
- Fixed GMT offset: usa Broker GMT offset (2 por defecto) todo el año. Úselo en el probador para un bróker que no esté en GMT+2 / GMT+3.
7. Order blocks

Cada ruptura de estructura (BOS o CHoCH) crea un order block en la vela de origen del movimiento que produjo la ruptura. El cuadro cubre todo el rango (máximo a mínimo) de esa vela y lleva la etiqueta OB.
- Un order block se rompe cuando una barra cierra a través de él (por debajo de un OB alcista, por encima de un OB bajista).
- Active order blocks per side (3 por defecto): se descarta el más antiguo cuando se supera el límite.
- Con Show order blocks desactivado, los order blocks se siguen calculando para los buffers (sección 14), pero no se dibujan y no se envían alertas de OB.
8. Zonas mitigadas
Por defecto (Hide mitigated FVGs and order blocks = true), un FVG mitigado o un order block roto desaparece del gráfico. Desactive el input para conservarlos como historial: el cuadro vuelve a su tamaño original, termina en la barra que lo mitigó y se pinta con el Mitigated zone color (gris oscuro por defecto); la etiqueta OB se vuelve gris. El tooltip termina entonces con "(mitigated)".

9. Liquidez: máximos y mínimos iguales

Cuando dos swing highs (o lows) consecutivos están dentro de la Equal tolerance (por defecto 0.1 × ATR 14) uno del otro, se dibuja una línea punteada dorada desde el primer swing hasta el segundo, etiquetada EQH (máximos iguales) o EQL (mínimos iguales). Estos niveles suelen contener liquidez en reposo (órdenes stop).
- La línea se extiende hacia la derecha mientras el nivel está intacto.
- Cuando una barra posterior cotiza más allá del nivel (mecha o cierre), este queda barrido (swept): la línea se detiene en esa barra y se vuelve gris.
- Levels kept on chart (6 por defecto): los niveles más antiguos se eliminan.
Aumente la tolerancia para encontrar más niveles; redúzcala para coincidencias más estrictas.
10. Premium / discount

Con Equilibrium of the current swing range activado, se dibujan tres líneas desde el más antiguo de los dos últimos swings hasta el borde derecho de las zonas:
- Premium (roja punteada) en el último swing high;
- Equilibrium (plateada discontinua) en el punto medio;
- Discount (verde azulado punteada) en el último swing low.
El precio por encima del equilibrio está en la mitad premium del rango; por debajo, en la mitad discount. Las líneas se mueven con cada nuevo swing confirmado.
11. El panel

El panel (por defecto en la esquina inferior derecha, input Panel corner) muestra:
| Línea | Contenido |
|---|---|
| Título | FVG & Structure PRO |
| Structure | Tendencia de estructura de M15, H1, H4 y D1: ▲ alcista, ▼ bajista, – aún sin ruptura o historial todavía cargando. El timeframe del gráfico usa el resultado del propio gráfico; los demás se calculan con el mismo swing strength y se actualizan cuando abren una nueva barra. |
| Last | Última ruptura de estructura del gráfico: dirección, BOS o CHoCH, precio del swing roto y hace cuántas barras. Antes de la primera ruptura: "no structure break yet". |
| FVG above | FVG abierto más cercano completamente por encima del precio actual (suelo - techo), o "none". |
| FVG below | FVG abierto más cercano completamente por debajo del precio actual, o "none". |
Un FVG que contiene el precio actual no se lista ni por encima ni por debajo. Con Show FVGs desactivado, las dos líneas de FVG muestran "none". El panel se actualiza en cada nueva barra y siempre se mantiene por encima de las zonas.
12. Alertas
| Input | Se activa cuando | Ejemplo de mensaje |
|---|---|---|
| BOS / CHoCH | una barra cierra más allá de un swing (se envía en la apertura de la barra siguiente) | Bullish CHoCH above 1.08520 |
| New FVG | se confirma un nuevo FVG en una barra cerrada (solo con Show FVGs activado) | New bearish FVG 1.08310 - 1.08365 |
| Price enters an FVG | la barra en formación entra en un FVG abierto — una vez por FVG (solo con Show FVGs activado) | Price in bullish FVG 1.08210 - 1.08260 |
| Price enters an order block | la barra en formación entra en un order block activo — una vez por OB (solo con Show order blocks activado) | Price in bearish order block 1.08700 - 1.08780 |
Cada alerta puede ser Off, Popup, Sound, Smartphone notification, Popup + Sound, Notification + Sound, Popup + Notification o Popup + Sound + Notification. Todas las alertas están desactivadas por defecto. Sound selecciona uno de los sonidos del terminal ("alert" por defecto); Also send e-mail añade un correo electrónico a cada alerta activada.
El texto incluye el producto, el símbolo y el timeframe, p. ej. FVG & Structure PRO: EURUSD | M15 | Bullish BOS above 1.08520 . Cada tipo de alerta se activa como máximo una vez por barra. Al adjuntar el indicador, las zonas ya tocadas por la barra actual se marcan en silencio, por lo que no hay una ráfaga de alertas antiguas. Las notificaciones push requieren el MetaQuotes ID en Tools → Options → Notifications; el e-mail requiere la configuración de correo del terminal. El Strategy Tester no muestra pop-ups, sonidos ni notificaciones.
13. Inputs
MARKET STRUCTURE
| Input | Por defecto | Descripción |
|---|---|---|
| Swing strength (bars on each side) | 5 | Barras a cada lado de un swing high / low (1-50). |
| BOS / CHoCH lines | true | Dibuja las rupturas de estructura. |
| HH / HL / LH / LL labels | false | Etiqueta cada swing. |
| Structure breaks kept on chart | 20 | Las rupturas más antiguas se eliminan. |
| Bullish color | 38,166,154 (verde azulado) | Rupturas alcistas, etiquetas, etiqueta OB, línea Discount. |
| Bearish color | 239,83,80 (rojo) | Rupturas bajistas, etiquetas, etiqueta OB, línea Premium. |
FAIR VALUE GAPS
| Input | Por defecto | Descripción |
|---|---|---|
| Show FVGs | true | Dibuja los FVG (se siguen para los buffers en cualquier caso). |
| Minimum gap size (x ATR 14) | 0.2 | Los huecos más pequeños se ignoran. |
| FVG is mitigated at | Full fill | Full fill / 50% fill (consequent encroachment) / First touch. |
| Shrink to the unfilled part | true | El cuadro se reduce mientras se va rellenando. |
| Active FVGs per side | 8 | Máximo de FVG abiertos por lado. |
| Bullish FVG color | 22,74,68 | Relleno de los FVG alcistas. |
| Bearish FVG color | 92,38,40 | Relleno de los FVG bajistas. |
HIGHER TIMEFRAME FVGs
| Input | Por defecto | Descripción |
|---|---|---|
| Show higher timeframe FVGs | false | Dibuja los FVG del timeframe indicado abajo. |
| Higher timeframe | 1 Hour | Debe ser superior al timeframe del gráfico. |
| Active HTF FVGs per side | 4 | Máximo de FVG HTF por lado. |
| HTF FVG outline color | Goldenrod | Color del contorno y de la etiqueta. |
KILLZONE FILTER (ICT)
| Input | Por defecto | Descripción |
|---|---|---|
| Only FVGs formed inside killzones | false | Mantiene solo los FVG cuya vela central está dentro de una killzone seleccionada. |
| London KZ (NY 02:00-05:00) | true | |
| NY AM KZ (NY 07:00-10:00) | true | |
| NY PM KZ (NY 13:30-16:00) | false | |
| Broker time zone | Auto (live) / GMT+2/+3 in tester | También: GMT+2 / GMT+3 (New York close brokers), Fixed GMT offset. |
| Broker GMT offset (fixed mode and tester) | 2 | Horas, usado por Fixed GMT offset. |
ORDER BLOCKS
| Input | Por defecto | Descripción |
|---|---|---|
| Show order blocks | true | Dibuja los order blocks (se siguen para los buffers en cualquier caso). |
| Active order blocks per side | 3 | Máximo de OB activos por lado. |
| Bullish OB color | 28,62,110 | Relleno de los OB alcistas. |
| Bearish OB color | 110,64,24 | Relleno de los OB bajistas. |
MITIGATED ZONES
| Input | Por defecto | Descripción |
|---|---|---|
| Hide mitigated FVGs and order blocks | true | false los mantiene en el gráfico con el color de abajo. |
| Mitigated zone color (when shown) | 44,46,52 | Relleno de las zonas mitigadas. |
LIQUIDITY
| Input | Por defecto | Descripción |
|---|---|---|
| Equal highs / lows | true | Dibuja los niveles EQH / EQL. |
| Equal tolerance (x ATR 14) | 0.1 | Distancia máxima entre dos swings para considerarlos iguales. |
| Levels kept on chart | 6 | Los niveles más antiguos se eliminan. |
| Equal highs / lows color | Gold | Color de los niveles intactos (los niveles barridos son grises). |
PREMIUM / DISCOUNT
| Input | Por defecto | Descripción |
|---|---|---|
| Equilibrium of the current swing range | false | Dibuja Premium / Equilibrium / Discount. |
HISTORY AND PANEL
| Input | Por defecto | Descripción |
|---|---|---|
| Bars analysed | 1500 | Historial procesado al cargar el indicador (mínimo 100). |
| Active zones extend right (bars) | 10 | Cuánto se extienden las zonas y los niveles activos más allá de la barra actual. |
| Show panel | true | Muestra el panel de texto. |
| Panel corner | Right lower corner | Esquina del gráfico para el panel. |
ALERTS
| Input | Por defecto | Descripción |
|---|---|---|
| BOS / CHoCH | Off | Modo de alerta para las rupturas de estructura. |
| New FVG | Off | Modo de alerta para los nuevos FVG. |
| Price enters an FVG | Off | Modo de alerta para los toques de FVG. |
| Price enters an order block | Off | Modo de alerta para los toques de OB. |
| Sound | alert | Sonido del terminal usado por los modos con sonido. |
| Also send e-mail | false | Envía un correo con cada alerta activada. |
14. Buffers para Expert Advisors / dashboards
El indicador expone 7 buffers que se pueden leer con iCustom + CopyBuffer . Todos los valores son definitivos en barras cerradas: lea el shift 1 para obtener el último valor definitivo.
| Buffer | Nombre | Valores | Cuándo | Vacío |
|---|---|---|---|---|
| 0 | Structure trend | +1 alcista, -1 bajista; 0 antes de la primera ruptura | cada barra; la barra en formación repite el último valor cerrado | 0 |
| 1 | Structure event | en la barra cuyo cierre rompió el swing: +1 BOS alcista, +2 CHoCH alcista, -1 BOS bajista, -2 CHoCH bajista | solo barras cerradas; la barra en formación es siempre 0 | 0 |
| 2 | Nearest open bullish FVG - top (2.00) | precio; de los FVG alcistas abiertos, el que tiene el techo más alto (parte sin rellenar cuando Shrink está activado) | cada barra, a su cierre; la barra en formación repite el último valor cerrado | EMPTY_VALUE |
| 3 | Nearest open bullish FVG - bottom (2.00) | precio, mismo FVG que el buffer 2 | como el buffer 2 | EMPTY_VALUE |
| 4 | Nearest open bearish FVG - top (2.00) | precio; de los FVG bajistas abiertos, el que tiene el suelo más bajo | como el buffer 2 | EMPTY_VALUE |
| 5 | Nearest open bearish FVG - bottom (2.00) | precio, mismo FVG que el buffer 4 | como el buffer 2 | EMPTY_VALUE |
| 6 | Zone event (2.00) | +1 / -1 nuevo FVG alcista / bajista, +2 / -2 FVG mitigado, +3 / -3 nuevo order block, +4 / -4 order block roto. Varios en una misma barra: se conserva el primero en este orden | solo barras cerradas; la barra en formación es siempre 0 | 0 |
"Abierto" depende de los inputs FVG is mitigated at, Minimum gap size, Active FVGs per side y del filtro de killzones. Los FVG y los order blocks se siguen incluso con Show FVGs / Show order blocks desactivados. Los máximos / mínimos iguales y los FVG de timeframe superior son solo objetos del gráfico.
Carga. La versión del Market se instala en MQL5\Indicators\Market\ ; compruebe el nombre exacto del archivo en el Navegador. Sin parámetros después del nombre se usan los inputs predeterminados. Para cambiar inputs, páselos en el orden de la sección 13. Cada encabezado input group también es un parámetro: pase una cadena vacía "" en su lugar; de lo contrario, todos los valores siguientes se desplazan. Los inputs omitidos al final conservan sus valores predeterminados.
```mql5 // "" = group MARKET STRUCTURE, 5 = swing strength, false = no BOS / CHoCH lines int h = iCustom(_Symbol, PERIOD_H1, "Market\FVG and Structure PRO", "", 5, false);
double trend[1], bt[1], bb[1], ze[1]; if (BarsCalculated(h) > 0) { if (CopyBuffer(h, 0, 1, 1, trend) == 1) Print("structure ", (int)trend[0]); // +1 / -1 if (CopyBuffer(h, 2, 1, 1, bt) == 1 && CopyBuffer(h, 3, 1, 1, bb) == 1 && bt[0] != EMPTY_VALUE) Print("nearest bullish FVG ", bb[0], " - ", bt[0]); if (CopyBuffer(h, 6, 1, 1, ze) == 1 && ze[0] != 0.0) Print("zone event ", (int)ze[0]); } ```
Notas: un indicador creado con iCustom dibuja su panel y sus objetos en el gráfico del programa que lo llama — desactive los inputs de dibujo y el panel para obtener un dashboard limpio. Espere hasta BarsCalculated(h) > 0 antes de la primera lectura (el historial puede estar todavía cargándose). Para un dashboard multisímbolo bastan 1000 en Bars analysed.
15. Consejos
- Intradía: M5 o M15 con Show higher timeframe FVGs activado y Higher timeframe = H1 muestra los huecos del gráfico dentro de los mayores.
- Menos saturación: aumente Minimum gap size, reduzca Active FVGs per side / Active order blocks per side o active el filtro de killzones.
- Profundidad de la estructura:Swing strength 3 sigue la estructura interna; 8-10 sigue solo los swings principales. El sesgo del panel en los demás timeframes usa el mismo valor.
- Historial de reacciones: desactive Hide mitigated para estudiar cómo reaccionó el precio a zonas pasadas.
- Una instancia por gráfico: dos copias en el mismo gráfico comparten los nombres de sus objetos y se borran mutuamente los dibujos. Para comparar configuraciones, abra un segundo gráfico del mismo símbolo.
16. Preguntas y solución de problemas
- ¿Repinta? No. Los swings, las rupturas, los FVG y los order blocks se crean en barras cerradas y nunca se mueven después. Por definición, un swing se dibuja Swing strength barras después de su barra (necesita las barras a su derecha).
- El panel muestra "–" para un timeframe. Ese timeframe aún no tiene ruptura de estructura en su historial reciente, o su historial se está descargando todavía; se actualiza en su siguiente barra.
- No aparecen FVG HTF. El timeframe del gráfico debe ser inferior a Higher timeframe, y puede que en este momento no haya huecos abiertos de ese tamaño.
- El filtro de killzones elimina todos los FVG. Compruebe Broker time zone. En gráficos de H4 en adelante, pocas velas abren dentro de una killzone.
- No hay alertas. Todas las alertas están en Off por defecto. Las alertas de FVG y OB también requieren que su dibujo esté activado. Las alertas de toque se activan una vez por zona.
- Un FVG sigue abierto aunque el precio estuvo dentro. Con Full fill, el hueco solo se cierra cuando el precio alcanza su borde lejano; con Shrink activado, el cuadro muestra la parte que sigue abierta.
- Strategy Tester. Funciona en modo visual y no visual; en el probador no se envían pop-ups, sonidos ni notificaciones.
Soporte: envíe un mensaje privado al autor en MQL5.


