Pine Script: Programa tu primer indicador ICT
¿Cansado de detectar manualmente las configuraciones ICT? Esta guía une la teoría y la práctica. Aprende a programar tu primer indicador de Fair Value Gap (FVG) con Pine Script v5 en TradingView para automatizar tu análisis y operar con más precisión.
Amara Okafor
Estratega Fintech

Imagina eliminar el ruido de los gráficos de forex, no con un análisis manual interminable, sino con una herramienta personalizada que resalta por ti las configuraciones ICT de alta probabilidad. Muchos traders intermedios comprenden el poder de los conceptos ICT como los Fair Value Gaps o los Order Blocks, pero tienen dificultades con su aplicación subjetiva y el tiempo que lleva identificarlos de manera consistente. ¿Y si pudieras automatizar esta precisión, transformando el conocimiento teórico en una ventaja práctica que ahorra tiempo? No se trata de reemplazar tus decisiones de trading, sino de potenciarlas con datos objetivos. En esta guía, cerraremos esa brecha, mostrándote cómo aprovechar Pine Script v5 de TradingView para programar tu primer indicador ICT. Aprenderás a automatizar la identificación de patrones cruciales de la acción del precio, reduciendo el tiempo de análisis y aportando un nuevo nivel de consistencia a tu estrategia de forex. Prepárate para convertir tus conocimientos de ICT en código procesable.
Desbloquea la precisión automatizada: Pine Script v5 y fundamentos de ICT
Antes de empezar a escribir código, preparemos el terreno. ¿Por qué Pine Script? ¿Y a qué concepto específico de ICT nos dirigimos? Entender el "porqué" detrás de las herramientas y los conceptos es lo que diferencia a un simple copista de scripts de un trader competente que construye su propia ventaja.
El poder de Pine Script v5 para la automatización en Forex
Piensa en Pine Script como un lenguaje especializado construido con un único propósito: crear herramientas de trading personalizadas en TradingView. Está diseñado para ser más accesible que los lenguajes de programación de propósito general como Python. La versión 5, nuestro enfoque de hoy, introdujo una sintaxis más limpia y características más potentes, haciendo que sea más fácil que nunca dar vida a tus ideas de trading.
Las ventajas clave para un trader de ICT incluyen:
- Objetividad: El código sigue reglas, punto. Elimina de tu análisis las conjeturas emocionales de "¿Es eso realmente un FVG?".
- Eficiencia: Un indicador puede escanear cada vela en busca de una configuración en milisegundos, una tarea que te llevaría horas de desplazamiento manual.
- Backtesting: Una vez codificado, puedes evaluar visualmente con qué frecuencia aparecieron tus configuraciones específicas en el pasado, dándote una mejor idea de su frecuencia y comportamiento.
Si has visto código de Pine Script más antiguo, la v5 hizo las cosas mucho más claras. Por ejemplo, introdujo funciones dedicadas para dibujar (box.new(), line.new()) y mejoró cómo se declaran las variables (var), haciendo los scripts más robustos y legibles.
Desmitificando conceptos clave de ICT: Fair Value Gaps (FVG)
Comenzaremos con uno de los conceptos más fundamentales de ICT: el Fair Value Gap (FVG). Es un candidato perfecto para la automatización porque tiene una definición clara y basada en reglas.

Un FVG es un patrón de tres velas que representa una ineficiencia o desequilibrio en el mercado. El precio se movió tan rápidamente en una dirección que dejó un 'vacío' en la entrega del mercado.
- FVG alcista (o BISI - Buyside Imbalance Sellsise Inefficiency): El mínimo de la tercera vela está por encima del máximo de la primera vela. El gap es el espacio entre el máximo de la primera vela y el mínimo de la tercera.
- FVG bajista (o SIBI - Sellside Imbalance Buyside Inefficiency): El máximo de la tercera vela está por debajo del mínimo de la primera vela. El gap es el espacio entre el mínimo de la primera vela y el máximo de la tercera.
Estas zonas a menudo actúan como imanes para el precio, que tiende a revisitarlas para 'reequilibrar' la acción del precio ineficiente. Para una inmersión más profunda en los diferentes tipos de gaps del mercado, consulta nuestra guía sobre cómo dominar los 3 tipos de gaps de ICT. Por ahora, este patrón simple y poderoso es todo lo que necesitamos para empezar a programar.
Tu lienzo de programación: Configurando TradingView para la automatización ICT
¿Listo para ensuciarte las manos? Abramos el taller. TradingView hace esto increíblemente fácil. No necesitas instalar ningún software; todo sucede directamente en tu navegador.
Navegando por la interfaz del Pine Editor
En la parte inferior de tu gráfico de TradingView, verás una pestaña llamada "Pine Editor". Haz clic en ella. Este es tu centro de mando. Puede parecer un poco intimidante, pero es sencillo.
- Abre el Editor: Haz clic en la pestaña "Pine Editor".
- Crea un nuevo Script: Haz clic en "Abrir" y selecciona "Nuevo indicador en blanco".
TradingView poblará el editor con un código básico de inicio. Vamos a desglosarlo.
Sintaxis y estructura esencial de Pine Script v5
Cada indicador de Pine Script v5 tiene algunos componentes centrales. Esta es la plantilla predeterminada que verás:
//@version=5
indicator("My script")
plot(close)//@version=5: Esto es obligatorio. Le dice a TradingView que use la última versión del lenguaje.indicator("My script"): Esta función declara tu script como un indicador. Puedes cambiar el nombre dentro de las comillas a algo como "Mi Buscador de FVG ICT". Estableceroverlay=truedentro de los paréntesis (indicator("Mi FVG", overlay=true)) hará que tus dibujos aparezcan en el gráfico principal en lugar de en un panel separado debajo.plot(close): Esta es una función simple que dibuja un gráfico de línea del precio de cierre de cada barra. Eliminaremos esto y lo reemplazaremos con nuestra propia lógica y dibujos personalizados.
Para construir nuestro detector de FVG, necesitaremos dos conceptos más:

- Variables: Para almacenar datos. Por ejemplo,
is_bullish_fvg = low[2] > high. Aquí,[2]se refiere a los datos de hace dos velas.high(ohigh[0]) se refiere a la vela actual en desarrollo. - Lógica condicional: Para tomar decisiones. Usaremos una declaración
if:if is_bullish_fvg... entonces haz algo, como dibujar una caja en el gráfico.
Eso es todo para la configuración. Ahora, escribamos la lógica.
De la teoría al código: Construyendo tu primer indicador ICT de FVG
Aquí es donde ocurre la magia. Vamos a traducir la definición de FVG del lenguaje natural a Pine Script. Nuestro objetivo es crear un indicador que identifique y dibuje automáticamente una caja alrededor de cada FVG.
Identificando patrones FVG con la lógica de Pine Script
Comencemos con una pizarra limpia en tu Pine Editor. Borra el código predeterminado y construyamos esto paso a paso.
Primero, la configuración inicial:
//@version=5
indicator("Detector FVG ICT de FXNX", overlay=true)Luego, definimos las condiciones para los FVG tanto alcistas como bajistas. Recuerda la regla de las 3 velas. En Pine Script, high[1] se refiere al máximo de la vela anterior, low[1] al mínimo de la vela anterior, y así sucesivamente.
// --- LÓGICA --- //
// Un FVG alcista existe si el mínimo de la barra actual está por encima del máximo de hace dos barras.
bullish_fvg = high[2] < low
// Un FVG bajista existe si el máximo de la barra actual está por debajo del mínimo de hace dos barras.
bearish_fvg = low[2] > highConsejo Pro: La lógica comprueba
high[2]y ellowactual (olow[0]). Esto significa que el FVG solo se confirma una vez que la tercera vela del patrón cierra. El gap en sí está en la vela del medio, que es la vela[1].
Visualizando zonas ICT en tu gráfico
Ahora que tenemos nuestras variables bullish_fvg y bearish_fvg, que serán true o false para cada vela, podemos decirle al script que dibuje algo cuando sean true.
Usaremos una declaración if y la función box.new(). Esta función dibuja un rectángulo en el gráfico.
// --- DIBUJO --- //
// Si se detecta un FVG alcista, dibuja una caja verde.
if bullish_fvg
box.new(
left = bar_index[1],
top = high[2],
right = bar_index,
bottom = low,
bgcolor = color.new(color.green, 80),
border_color = color.new(color.green, 80)
)
// Si se detecta un FVG bajista, dibuja una caja roja.
if bearish_fvg
box.new(
left = bar_index[1],
top = high,
right = bar_index,
bottom = low[2],
bgcolor = color.new(color.red, 80),
border_color = color.new(color.red, 80)
)Desglosemos box.new():
leftyright: Las coordenadas x (tiempo).bar_index[1]es el inicio de la vela del medio, ybar_indexes el final.

topybottom: Las coordenadas y (precio). Para un FVG alcista, la caja abarca desde el máximo de la primera vela (high[2]) hasta el mínimo de la tercera (low).bgcoloryborder_color: Establecemos el color y la transparencia (80 es bastante transparente).
Aquí está el script completo, listo para copiar y pegar:
//@version=5
indicator("Detector FVG ICT de FXNX", overlay=true)
// --- LÓGICA --- //
// Un FVG alcista es un patrón de 3 barras donde hay un gap entre el máximo de la 1ª vela y el mínimo de la 3ª.
bullish_fvg = high[2] < low
// Un FVG bajista es un patrón de 3 barras donde hay un gap entre el mínimo de la 1ª vela y el máximo de la 3ª.
bearish_fvg = low[2] > high
// --- DIBUJO --- //
// Si se detecta un FVG alcista al cierre de la 3ª barra, dibuja una caja verde.
if bullish_fvg
box.new(
left = bar_index[1], // Inicia la caja en la vela del FVG
top = high[2], // Parte superior del gap
right = bar_index, // Termina la caja en la vela actual
bottom = low, // Parte inferior del gap
bgcolor = color.new(color.green, 80), // Establece el color de fondo y la transparencia
border_color = color.new(color.green, 80) // Establece el color del borde
)
// Si se detecta un FVG bajista al cierre de la 3ª barra, dibuja una caja roja.
if bearish_fvg
box.new(
left = bar_index[1], // Inicia la caja en la vela del FVG
top = high, // Parte superior del gap
right = bar_index, // Termina la caja en la vela actual
bottom = low[2], // Parte inferior del gap
bgcolor = color.new(color.red, 80), // Establece el color de fondo y la transparencia
border_color = color.new(color.red, 80) // Establece el color del borde
)Pega esto en tu Pine Editor y haz clic en "Añadir al gráfico". ¡Felicidades, acabas de programar tu primer indicador ICT!
Información procesable: Aplicando tu indicador ICT en gráficos de Forex
Tener una herramienta es una cosa; saber cómo usarla es otra. Tu gráfico ahora está poblado de cajas verdes y rojas, pero ¿qué significan realmente para tu trading?
Añadir y configurar tu indicador personalizado
Una vez que hagas clic en "Añadir al gráfico" en el Pine Editor, tu detector de FVG aparecerá en el par de forex que hayas seleccionado, como el EUR/USD. Puedes activar o desactivar su visibilidad o acceder a su configuración haciendo clic en el nombre del indicador en la esquina superior izquierda de tu gráfico. Para este script simple, aún no hay configuraciones que ajustar, pero aquí es donde estarían si añadieras entradas de usuario.
Interpretando señales para oportunidades de trading
Tu nuevo indicador es un mapa de ineficiencias del mercado, no un semáforo para entradas. Resalta áreas de interés donde deberías prestar más atención.
- FVGs como soporte/resistencia: Los FVGs alcistas (verdes) a menudo actúan como soporte. Cuando el precio retrocede hacia una caja verde, puede encontrar presión de compra. Por el contrario, los FVGs bajistas (rojos) pueden actuar como resistencia.
- FVGs como objetivos: Si estás en una operación de venta y el precio se está moviendo hacia abajo, un FVG alcista cercano podría ser un lugar lógico para tomar ganancias, ya que el precio puede detenerse o revertirse allí.
- El contexto es el rey: Un FVG alcista que aparece en una clara tendencia bajista es mucho menos fiable que uno que se forma después de un cambio importante en la estructura del mercado. Siempre combina las señales del indicador con tu análisis más amplio. ¿El precio es alcista o bajista en temporalidades más altas? Tu indicador proporciona objetividad, pero tú proporcionas el contexto. Entender la interacción entre conceptos como los FVGs y otras estructuras es clave; una herramienta como un árbol de decisión entre order block y breaker block puede ayudar a construir esta conciencia contextual.
Advertencia: Nunca tomes una operación basándote únicamente en la señal de un indicador. Este detector de FVG es una herramienta poderosa para la confluencia, que ayuda a confirmar ideas de trading que ya están respaldadas por tu análisis general del mercado.
Más allá de lo básico: Refinando tu indicador ICT y mejores prácticas
Tu primer indicador es un gran paso, pero es solo el comienzo. Como cualquier herramienta, puede ser mejorada y refinada. También es importante ser consciente de los errores comunes, tanto en la programación como en la aplicación.
Errores comunes de programación e implementación de ICT

- Ignorar el contexto: El mayor error es tratar cada FVG como una configuración de alta probabilidad. Un FVG creado por una noticia de alto impacto es diferente de uno formado en un mercado tranquilo y en rango. Tu código no puede ver las noticias; tú tienes que hacerlo.
- Sesgo de anticipación (Look-Ahead Bias): Un error común de programación es usar datos del futuro. Nuestro script utiliza correctamente datos históricos (
[1],[2]) para tomar decisiones, asegurando que no haga 'trampa'. Siempre verifica dos veces tus referencias de datos. - Sobreoptimización: Es tentador añadir docenas de filtros para intentar crear una señal 'perfecta'. Esto a menudo conduce a un indicador inútil que está adaptado a datos pasados y falla en los mercados en vivo. Empieza de forma simple y añade complejidad solo cuando tengas una razón clara. Recuerda, la aplicación consistente de una buena estrategia es lo que lleva al crecimiento compuesto a largo plazo, no un indicador mágico.
Evolucionando tu indicador: Próximos pasos para la personalización
Piensa en tu script como una base. Aquí tienes algunas ideas para expandirlo:
- Añadir entradas de usuario: Permítete cambiar los colores o activar/desactivar los FVGs alcistas/bajistas desde el menú de configuración usando
input.color()einput.bool(). - Crear alertas: Usa la función
alertcondition()para recibir una notificación cada vez que se forme un nuevo FVG, para que no tengas que mirar los gráficos todo el día. - Filtrar por tamaño: Añade una condición para mostrar solo los FVGs que tengan un cierto tamaño en pips, filtrando los micro-gaps insignificantes.
- Integrar otros conceptos: ¿Podrías modificar la lógica para detectar Order Blocks? ¿O para mostrar solo los FVGs que ocurren después de una toma de liquidez (liquidity sweep)?
Para una guía completa sobre las capacidades de Pine Script, el Manual de Usuario oficial de Pine Script v5 de TradingView es un recurso invaluable. El viaje hacia la automatización de tu análisis es un proceso continuo de aprendizaje, prueba y refinamiento.
Acabas de dar un salto significativo en tu viaje como trader, pasando del análisis manual a automatizar la identificación de potentes conceptos ICT usando Pine Script v5. Hemos cubierto lo esencial, desde entender las capacidades de Pine Script y conceptos centrales de ICT como los Fair Value Gaps, hasta configurar tu entorno de desarrollo y programar tu primer indicador personalizado. La capacidad de trazar objetivamente estas zonas críticas en tus gráficos reduce la subjetividad, ahorra un tiempo valioso y permite un análisis más consistente. Recuerda, la automatización es una herramienta para mejorar tu toma de decisiones, no para reemplazarla. El siguiente paso es experimentar: modifica parámetros, añade alertas o incluso integra otros conceptos ICT para construir un asistente de trading verdaderamente personalizado. Para más recursos y estrategias avanzadas para refinar tu ventaja en el trading automatizado, explora las herramientas completas y el contenido educativo disponible en FXNX. ¿Cómo transformará tu enfoque de trading la automatización de tu análisis ICT?
¡Empieza a programar tu primer indicador ICT hoy mismo! Experimenta con los conceptos de Pine Script v5 proporcionados en TradingView y comparte tus resultados en los comentarios a continuación. Para más tutoriales avanzados de Pine Script y estrategias ICT, explora el blog de FXNX.
Preguntas frecuentes
¿Qué es un Fair Value Gap (FVG) en ICT?
Un Fair Value Gap, o FVG, es un patrón de tres velas que indica un desequilibrio del mercado. Ocurre cuando el precio se mueve rápidamente, dejando un vacío entre la mecha de la primera vela y la mecha de la tercera, un área que el precio puede revisitar más tarde para reequilibrarse.
¿Es difícil aprender Pine Script para los traders?
Pine Script está diseñado para ser más accesible que los lenguajes de programación generales. Si puedes entender la lógica del trading (p. ej., "si la media móvil cruza hacia arriba, entonces..."), puedes aprender los conceptos básicos de Pine Script. Tiene una comunidad de apoyo y una extensa documentación para ayudar a los traders a empezar.
¿Puedo usar este indicador ICT de Pine Script en MT4/MT5?
No, Pine Script es exclusivo de la plataforma TradingView. MetaTrader 4 y 5 utilizan un lenguaje de programación diferente llamado MQL4/MQL5. La lógica se puede traducir, pero el código en sí no es directamente compatible.
¿Cómo puedo añadir alertas a mi indicador de FVG?
Puedes usar la función alert() o alertcondition() en Pine Script. Por ejemplo, después de tu bloque if bullish_fvg, podrías añadir una línea alert("FVG Alcista Detectado en " + syminfo.tickerid, freq = alert.freq_once_per_bar_close) para crear una alerta personalizable.
¿Listo para operar?
Únete a miles de traders en NX One. Spreads de 0.0, 500+ instrumentos.
Sobre el Autor

Amara Okafor
Estratega FintechAmara Okafor is a Fintech Strategist at FXNX, bringing a unique perspective from her background in both London's financial district and Lagos's booming fintech scene. She holds an MBA from the London School of Economics and has spent 6 years working at the intersection of traditional finance and digital innovation. Amara specializes in emerging market currencies and African forex markets, writing with insight that bridges global finance with frontier market opportunities.
Traducido por
Camila Ríos es Especialista Junior de Contenido Fintech en FXNX. Estudiante de Economía en la Universidad de los Andes en Bogotá, Camila realiza su pasantía en FXNX para acercar los recursos de trading en inglés al mundo hispanohablante. Su formación en fintech latinoamericano y su habilidad bilingüe natural hacen que sus traducciones sean precisas y culturalmente relevantes para traders en toda América Latina y España.
Artículos Relacionados
Continúa leyendo

Order Block vs. Breaker: Tu Árbol de Decisión
¿Confundido por los Order Blocks, Breakers y zonas de Oferta y Demanda? Esta guía te da un 'Árbol de Decisión' simple para identificar con confianza la configuración institucional correcta, logrando mejores entradas y gestión de riesgo.

Dominando los Gaps de ICT: Explicación de los 3 Tipos
El trading de gaps tradicional no funciona en forex. Descubre cómo el concepto de ICT de Gaps Breakaway, Runaway y Exhaustion —potentes Fair Value Gaps— puede ayudarte a leer la intención institucional y operar tendencias con más confianza.

BOS vs. CHoCH: Domina los Cambios de Estructura en Forex
Distingue entre un cambio genuino en la estructura del mercado (CHoCH) y una simple continuación de tendencia (BOS). Esta guía revela los secretos de los Smart Money Concepts para ayudarte a operar con precisión.

Los Mejores Indicadores SMC para TradingView (Gratis y de Pago)
¿Abrumado por detectar manualmente patrones SMC? Esta guía elimina el ruido y revela los mejores indicadores SMC gratis y de pago en TradingView para automatizar tu análisis y mejorar tu consistencia.

Indicador ADX: Domina la Fuerza de la Tendencia en Forex
Deja de operar tendencias que se agotan. El indicador ADX mide la verdadera fuerza de la tendencia, ayudándote a confirmar configuraciones de alta probabilidad y a evitar señales débiles. Esta guía desglosa el ADX, +DI y -DI para entradas y salidas más inteligentes.

Gráficos Renko: Elimina el Ruido, Ve Tendencias Claras
¿Abrumado por movimientos erráticos y señales falsas? Los gráficos Renko filtran el ruido del mercado centrándose en el movimiento del precio, no en el tiempo. Esta guía te enseña a usarlos para ver tendencias más claras y operar con más confianza.