Institutional Framework Trading System MT5
- Indicadores
- Versión: 1.586
- Actualizado: 19 octubre 2026
Opera instrumentos financieros utilizando la misma estructura que realmente emplean las instituciones
La mayoría de las herramientas minoristas basadas en Smart Money Concept (SMC) hacen una sola cosa: dibujan Order Blocks y Liquidity Sweeps en tu gráfico y te dejan decidir si debes confiar en ellos. Institutional Framework Trading System MT5 no se detiene ahí.
Cada señal que genera representa una estructura de acción del precio que ya ha sido contrastada con hasta tres capas adicionales de contexto de nivel institucional: posicionamiento real del mercado de opciones, fundamentos macroeconómicos y sentimiento del mercado. Todo ello se sintetiza en una única señal clara, en lugar de tener tres indicadores discutiendo entre sí en tu pantalla.
Está diseñado para traders que ya comprenden los Order Blocks, Liquidity Sweeps y las zonas de Supply/Demand, y que buscan un sistema que verifique la estructura en lugar de simplemente dibujarla.
Qué lo diferencia
-
Motor completo de estructura SMC — Order Blocks, Liquidity Sweeps y zonas de Supply/Demand, construidos completamente a partir de acción del precio confirmada en velas cerradas. Las señales quedan bloqueadas en el momento en que la vela cierra y nunca se repintan posteriormente.
-
Confirmación multicapa, no solo estructura. Cada señal estructural se contrasta con detectores de Divergence, Exhaustion y Absorption antes de llegar al gráfico, de modo que observas una concordancia entre la estructura del precio y el comportamiento del flujo de órdenes, no simplemente una coincidencia de patrones.
-
Confluencia con el mercado real de opciones. Extrae directamente datos de opciones sobre futuros de oro de COMEX — Open Interest real, Max Pain y niveles de liquidez del mercado real de opciones de oro, no un sustituto sintético — para identificar dónde está realmente concentrado el tamaño antes de que llegue el precio.
-
Diseñado teniendo en cuenta el entorno macro. Un sistema integrado obtiene el balance de la Fed, CPI/PPI y datos de empleo para mantener las señales alineadas con el régimen macroeconómico general en lugar de ignorarlo.
-
Consciente del sentimiento. El posicionamiento de CFTC Commitment of Traders y el indicador Fear & Greed del mercado alimentan un filtro contrarian real: las lecturas extremas de sentimiento se tratan como oportunidades para operar en contra del consenso, no como una señal verde.
-
Dos modos diseñados para propósitos específicos. Conservative Mode, basado en puntuación para condiciones tendenciales, y Range-Bound Mode — el modo predeterminado de esta versión, ajustado mediante pruebas de estrategia — diseñado para mercados en consolidación donde la estructura y la reversión a la media importan más que el momentum.
-
Funciona inmediatamente y escala contigo. Todas las capas avanzadas anteriores son opcionales. Puedes añadir el indicador sin configuración alguna y funcionará desde la primera vela utilizando únicamente estructura verificada. Cuando estés preparado, puedes añadir datos de opciones, feeds macroeconómicos o datos de sentimiento; ninguna de estas capas es necesaria para obtener señales.
-
Copia el archivo .mq5 en la carpeta MQL5\Indicators de tu terminal (File → Open Data Folder desde MT5) y después compílalo en MetaEditor.
-
Adjunta el indicador a un gráfico de oro (también funcionará con otros símbolos, pero todos los valores predeterminados y comentarios de este archivo están basados en XAU).
-
Deja todos los parámetros en sus valores predeterminados. Esta versión se ejecuta en Range-Bound Mode, el modo para el cual fue ajustada, con la detección de Divergence activada pero con sus marcadores visuales ocultos en el gráfico (la sección 2 explica el motivo).
-
Después de adjuntarlo, observa el registro Experts. Te indicará claramente si alguna descarga automática de fundamentales/sentimiento ha fallado, mientras que el panel de información del gráfico muestra de un vistazo el modo actual, el régimen y el estado de puntuación de la señal.
-
Si deseas utilizar la confluencia del mercado de opciones, selecciona una de las rutas de la sección 11; de lo contrario, puedes omitirla por completo. El indicador funciona correctamente sin ella.
enum ENUM_SIGNAL_MODE { MODE_CONSERVATIVE, MODE_RANGEBOUND };
-
Conservative Mode — sistema basado en puntuación. Order Block, Sweep, Divergence, Exhaustion, Absorption, Cluster Confluence y Options Confluence añaden puntos a la puntuación; una señal solo se activa cuando la puntuación supera MinSignalScore (valor predeterminado 4). El filtro de régimen (lectura de fundamentales/sentimiento de la sección 12) bloquea activamente las señales que van en contra del sesgo predominante en este modo.
-
Range-Bound Mode (modo predeterminado en esta versión) — requiere una condición estructural (un Order Block o una zona de Demand/Supply activa), y una confirmación (Divergence, Exhaustion o Absorption), y una puntuación mínima mediante RangeBoundMinScore (predeterminado 2; este valor reproduce exactamente la puerta de activación original siempre activa; auméntalo únicamente si quieres que la confluencia Cluster/Options tenga mayor peso). El filtro de régimen no bloquea la dirección en este modo: ambas direcciones permanecen activas independientemente del sesgo de fundamentales/sentimiento.
Grupo: === SMC / Structure Detection ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| SwingWing | 3 | Número de barras necesarias a cada lado de una vela para confirmarla como swing high/low. Menor = más swings y más ruido; mayor = menos swings, pero más significativos. |
| SwingLookback | 100 | Hasta qué punto hacia atrás busca el detector de swings el punto swing anterior al comprobar Divergence o estructura de Sweep. |
| ATRPeriod | 14 | Periodo ATR utilizado para escalar prácticamente todos los umbrales basados en distancia del indicador (displacement, exhaustion, absorption y filtros divergence-swing). |
| OBDisplacementMult | 1.0 | Relación mínima entre tamaño del cuerpo y ATR que una vela debe alcanzar para calificarse como vela de displacement de un Order Block. |
| OBMaxWickRatio | 0.3 | Proporción máxima del rango de la vela de displacement que puede corresponder a la mecha (0–1). Filtra velas con gran rango pero compuestas principalmente por mechas. |
| SDMoveMultiple | 3.0 | Cuántos múltiplos del rango de la vela “base” debe alcanzar el movimiento explosivo posterior para calificar como zona Supply/Demand (sección 6). |
| EquilibriumBandPct | 0.05 | Anchura de la banda de “equilibrium” alrededor del nivel del 50 % de un rango detectado. |
Grupos: === Exhaustion Detection === , === Absorption Detection === , === Delta Divergence === , === Delta (Native Tick) ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| EnableExhaustion | true | Interruptor principal del detector de Exhaustion. |
| ExhaustionWickMult | 0.6 | Relación mínima mecha/rango necesaria para que una vela sea considerada Exhaustion. |
| ExhaustionBodyMult | 0.3 | Relación máxima cuerpo/rango permitida junto con dicha mecha. |
| EnableAbsorption | true | Interruptor principal del detector de Absorption. |
| AbsorptionVolFactor | 1.5 | Múltiplo mínimo del volumen respecto al promedio requerido para que una vela sea considerada Absorption. |
| AbsorptionRangeFactor | 0.8 | Relación máxima rango/ATR permitida. Absorption = volumen alto con un rango pequeño. |
| AbsorptionRejectPct | 0.2 | Proporción mínima de rechazo de mecha requerida. |
| EnableDivergence | true | Interruptor principal del detector de Divergence. Déjalo activado incluso cuando DrawDivergenceMarks esté desactivado (sección 2). |
| DrawDivergenceMarks | false (esta versión) | Solo visual: muestra/oculta los marcadores DIV_ del gráfico. No afecta a la generación de señales. |
| DivergenceMinSwingATR | 1.0 | Diferencia mínima entre swings, expresada en ATR, necesaria antes de que dos swings puedan compararse para Divergence. Filtra swings de nivel de ruido. |
| MaxTickBars | 50 | Número de barras recientes que pueden utilizar tick-delta real de compra/venta para Divergence. Las barras más antiguas pasan automáticamente a utilizar raw tick-volume. |
Grupo: === Cluster Confluence (both modes) ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| UseClusterScoring | true | Determina si múltiples confirmaciones simultáneas en una misma vela reciben un bonus de puntuación. |
| MinClusterSignals | 3 | Número de confirmaciones que deben coincidir simultáneamente para activar el bonus. |
| ClusterBonusScore | 2 | Tamaño del bonus añadido a la puntuación de la señal. |
Esto se aplica en ambos modos. En Range-Bound Mode alimenta la puerta RangeBoundMinScore descrita en la sección 2.
6. Zonas de Supply & DemandGrupo: === Supply & Demand Zones ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| DrawSupplyDemandZones | true | Interruptor principal del motor de dibujo de zonas. |
| SDLookback | 100 | Hasta dónde hacia atrás busca patrones válidos de base + movimiento explosivo. |
| SDMaxBaseCandles | 4 | Número máximo de velas de “base” (consolidación) permitidas antes del movimiento explosivo. |
| SDDisplacementMult | 0.5 | Relación mínima cuerpo/ATR para el movimiento explosivo desde una zona. Es independiente y más flexible que OBDisplacementMult ; las zonas y los Order Blocks se detectan por separado. |
| SDMaxZonesShown | 3 | Límite de zonas mostradas simultáneamente en el gráfico. |
| SupplyZoneColor / DemandZoneColor | Red / Blue | Colores de las zonas en el gráfico. |
Una zona de Demand o Supply activa (no mitigada) satisface la mitad “estructural” de la puerta de Range-Bound Mode exactamente igual que un Order Block.
7. Filtro de Higher TimeframeGrupo: === Higher-Timeframe Confirmation ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| UseHTFFilter | true | Determina si es necesario que la lectura direccional de un timeframe superior esté de acuerdo antes de que se active una señal. |
| HTFTimeframe | H4 | Timeframe superior que se comprobará. |
| HTFLookbackBars | 20 | Número de velas H4 cerradas hacia atrás utilizadas para determinar la tendencia. |
| HTFNeutralPct | 0.05 | Cuán cercana a plana debe estar la tendencia HTF antes de considerarse “neutral” (sin bloquear largos ni cortos). |
Este filtro siempre lee la última vela de timeframe superior cerrada y nunca la vela actualmente en formación, por lo que no puede repintarse.
8. Filtro de sesiónGrupo: === Session Filter (approximate UTC windows, NOT DST-adjusted) ===
| Parámetro | Predeterminado | Qué controla |
|---|---|---|
| AllowedSession | SESSION_ALL | Restringe las señales a una sesión específica: SESSION_ALL , SESSION_LONDON , SESSION_NEWYORK o SESSION_LONDON_NY . |
| UTCOffsetHours | 0 | Ajuste si la hora del servidor de tu broker no corresponde con UTC. |
Las ventanas reales comprobadas internamente son:
Londres = 08:00–16:00 UTC
Nueva York = 13:00–21:00 UTC
| Parámetro | Predeterminado | Grupo | Qué controla |
|---|---|---|---|
| SignalCooldownBars | 5 | Signal Cooldown | Número mínimo de barras — o, si el precio no se ha desplazado lo suficiente, distancia mínima de precio — entre dos señales en la misma zona para evitar que el mismo nivel genere señales repetidamente. |
| MaxBarAgeForSignal | 25 | Stale Zone Decay | Antigüedad máxima que puede tener un Order Block para seguir considerándose estructura válida para una nueva señal. Este parámetro determina si la flecha aparece o no; es diferente de la configuración de tiempo de alerta de la sección 13. |
Grupo: === Fibonacci Extension Auto-Targets ===
Una vez detectado un Order Block alcista o bajista, el gráfico dibuja TP1 / TP2 / TP3 (extensiones de Fibonacci, valores predeterminados 1.618 / 2.618 / 4.236) y una línea de referencia BE .
La regla, exactamente como aparece en el gráfico: mueve tu Stop-Loss al break-even.
| Parámetro | Predeterminado |
|---|---|
| EnableFibTargets | true |
| FibTP1 / FibTP2 / FibTP3 | 1.618 / 2.618 / 4.236 |
| FibTP1Color / FibTP2Color / FibTP3Color | Yellow / Orange / Red |
| TrailBEColor | White |
Existen dos formas de introducir datos reales del mercado de opciones en el bonus de puntuación Options Liquidity Confluence.
Solo necesitas una. El indicador funciona correctamente sin ninguna de las dos.
Opción A — FlashAlpha Live API (cómoda, pero es un proxy)
-
Obtén una API Key gratuita en lab.flashalpha.com .
-
Establece UseLiveAPI = true y pega la clave en FlashAlpha_API_Key .
-
Configura FlashAlpha_Expiration con la fecha de vencimiento deseada, usando el formato yyyy-MM-dd . Es obligatorio porque el nivel gratuito no puede consultar todas las expiraciones a la vez.
-
Deja FlashAlpha_Symbol con su valor predeterminado ( NEM ) a menos que tengas una razón específica para cambiarlo.
Opción B — CSV mensual de Barchart.com (opciones reales de oro, actualización manual)
Estos son datos reales de opciones sobre futuros COMEX Gold (GC), no un proxy.
-
Accede a la cadena de opciones Gold futures de Barchart ( barchart.com/futures/quotes/GC*0/options ), selecciona el mes del contrato y descarga la cadena como CSV.
-
El archivo debe tener al menos 13 columnas separadas por comas por fila, donde:
-
columna 1 = strike
-
columna 9 = volume
-
columna 10 = open interest
-
columna 13 = option type (debe comenzar por C o P )
-
una fila de encabezado es válida y se omite automáticamente.
-
-
Coloca el archivo en la carpeta de datos de tu propio terminal: File → Open Data Folder → MQL5 → Files.
-
Configura CSV_File_Name para que coincida exactamente con el nombre del archivo. Valor predeterminado: gcv26-options-monthly.csv .
-
Configura UseLiveAPI = false .
Ajuste de visualización de opciones
| Parámetro | Predeterminado | Qué hace |
|---|---|---|
| Min_OI_Threshold | 100 | Open Interest mínimo necesario para que un strike cuente para BSL/SSL. |
| Min_Volume_Threshold | 200 | Filtro de volumen mínimo para niveles basados en opciones. |
| Max_Pain_Buffer | 5 | Banda de tolerancia, expresada en strikes, alrededor del nivel Max Pain calculado. |
| Max_Strikes_Processed | 100 | Limita el número de strikes procesados; primero se cargan los más cercanos al precio. |
| Max_Battle_Zones_Shown | 5 | Limita el número de niveles “Battle Zone” de alto OI mostrados. |
| Refresh_Hotkey | R | Pulsa esta tecla en el gráfico para forzar una actualización inmediata de opciones. |
| Auto_Refresh_Seconds | 60 | Frecuencia con la que el indicador comprueba si corresponde realizar una actualización; no es lo mismo que RefreshIntervalHours . |
| UseOptionsConfluence | true | Interruptor principal del bonus de puntuación Options Confluence (ambos modos). |
| OptionsConfluenceATRMult | 0.5 | Tolerancia de proximidad, en ATR, a un nivel clave de opciones para que se aplique el bonus. |
| OptionsConfluenceBonus | 1 | Tamaño del bonus. |
Ambos se puntúan de 0 a 100:
-
Fundamental score: 0 = bajista para el oro, 100 = alcista para el oro.
-
Sentiment score: 0 = miedo extremo, 100 = codicia extrema.
-
El valor predeterminado/neutro es 50 para ambos.
Son puntuaciones híbridas, no completamente automáticas.
Incluso con UseAutoFundamentals = true , varios componentes no cuentan con un feed público gratuito y deben introducirse manualmente:
| Entrada manual | Qué es | Dónde obtenerla |
|---|---|---|
| ManualFedStance | 0 = muy hawkish … 100 = muy dovish | Tu propia lectura; no existe un feed numérico limpio |
| ManualCmeCutProb | Probabilidad de recorte en la próxima reunión según CME FedWatch (0–100) | CME FedWatch Tool en cmegroup.com |
| ManualNFPActual / ManualNFPExpected | Non-Farm Payrolls, dato real frente al consenso (miles) | BLS proporciona el dato real; el consenso no es un dato gubernamental |
| ManualADPActual / ManualADPExpected | Empleo ADP, dato real frente al consenso (miles) | Misma lógica que NFP |
| ManualGeoScore | Tensión geopolítica, 0–100 | Tu propio criterio |
| BPR_USBanksLong / BPR_USBanksShort | CFTC Bank Participation Report, COMEX Gold | Bank Participation Reports mensuales en cftc.gov |
Obtener tu API Key de FRED
-
Regístrate gratuitamente en fred.stlouisfed.org/docs/api/api_key.html .
-
Pega la clave en FRED_API_Key .
Solo es necesaria para el componente del balance de la Fed.
Autorizar las URL necesarias
En MT5:
Tools → Options → Expert Advisors → activa "Allow WebRequest for listed URL:" → añade cada dominio que realmente utilices:
https://publicreporting.cftc.gov https://www.jmbullion.com https://api.stlouisfed.org https://api.bls.gov https://lab.flashalpha.com
Un dominio bloqueado registrará la URL exacta que debes añadir (error 4014).
