Si Python es la puerta de entrada a los bots de exchange, Pine Script es la puerta de entrada a la automatización del gráfico. Es el lenguaje nativo de TradingView, se diseñó específicamente para el análisis técnico y tiene una ventaja enorme para quien empieza: programas, ploteas y haces backtest en la misma pantalla, sin instalar nada. Este tutorial usa la versión actual, Pine Script v5.
01Qué es Pine Script (y por qué empezar por él)
Pine Script es un lenguaje de script creado por TradingView con dos propósitos: crear indicadores personalizados (que se plotean en el gráfico) y crear estrategias (que generan señales de compra/venta y se pueden probar sobre el histórico). Es simple, específico y corre en la nube de TradingView — no necesitas servidor ni instalación.
Por qué es genial para aprender: el ciclo escribir→plotear→probar es instantáneo y visual. Ves el resultado en el gráfico al momento. Comparado con montar todo el pipeline de datos en Python, es mucho más rápido para validar una idea de estrategia.
02Tu primer indicador
En TradingView, abre el Pine Editor (pestaña en la parte inferior del gráfico). Todo script empieza declarando la versión y el tipo. Vamos a plotear una media móvil simple:
//@version=5 indicator("Minha Primeira MM", overlay=true) // input: hace el período ajustable desde la interfaz periodo = input.int(20, "Período da Média") // calcula la media móvil simple del cierre media = ta.sma(close, periodo) // dibuja en el gráfico plot(media, "MM", color=color.aqua, linewidth=2)
Haz clic en Añadir al gráfico. Listo — tu media aparece sobre las velas. El overlay=true es lo que hace que el indicador dibuje sobre el precio (en vez de en un panel separado abajo).
03Los conceptos que necesitas entender
La serie temporal
En Pine, variables como close, open, high, low no son un solo número — son series. El script corre una vez por cada vela del gráfico, y close siempre se refiere al cierre de la vela actual en esa pasada. Para acceder a velas anteriores, usa corchetes: close[1] es el cierre de la vela anterior, close[2] el de dos atrás.
Funciones de la librería ta
La librería ta (technical analysis) lo tiene todo listo: ta.sma() (media simple), ta.ema() (exponencial), ta.rsi(), ta.macd(), ta.crossover() (cruce hacia arriba), ta.crossunder() (cruce hacia abajo). Raras veces necesitas calcular un indicador a mano.
04De indicador a estrategia
La diferencia crucial: indicator() solo dibuja; strategy() simula operaciones y genera un informe de backtest. Vamos a convertir la media en un sistema de cruce que opera:
//@version=5 strategy("Cruzamento de Médias", overlay=true, initial_capital=10000, default_qty_type=strategy.percent_of_equity, default_qty_value=10) // parámetros ajustables rapida = input.int(9, "MM Rápida") lenta = input.int(21, "MM Lenta") ma_rapida = ta.ema(close, rapida) ma_lenta = ta.ema(close, lenta) // detecta los cruces cruzaCima = ta.crossover(ma_rapida, ma_lenta) cruzaBaixo = ta.crossunder(ma_rapida, ma_lenta) // reglas de operación if cruzaCima strategy.entry("Compra", strategy.long) if cruzaBaixo strategy.close("Compra") // visualizar las medias plot(ma_rapida, "Rápida", color=color.lime) plot(ma_lenta, "Lenta", color=color.orange)
Al añadirlo al gráfico, TradingView abre automáticamente el Strategy Tester abajo — con beneficio neto, número de trades, tasa de acierto, drawdown máximo y la curva de capital. Acabas de hacer un backtest sin escribir una línea de código de test.
¿Quieres estrategias listas para adaptar?
Mira nuestra recopilación de estrategias clásicas con la lógica explicada — listas para convertirse en código.
05Añadiendo stop loss y take profit
Una estrategia sin gestión de riesgo está incompleta. En Pine, defines el stop y el objetivo en el momento de la entrada:
// dentro del bloque de entrada if cruzaCima strategy.entry("Compra", strategy.long) // stop 2% abajo, objetivo 4% arriba (riesgo:retorno 1:2) strategy.exit("Saida", "Compra", stop = close * 0.98, limit = close * 1.04)
Consejo: el Strategy Tester lo recalcula todo cuando cambias esos valores. Úsalo para ver cómo distintos niveles de stop/objetivo afectan al resultado — pero cuidado con el overfitting (optimizar demasiado para el pasado).
06Alertas: el puente hacia la automatización
Pine Script corre en TradingView y no ejecuta órdenes por sí solo en tu bróker. El puente hacia la automatización son las alertas. Añades una alerta en el código y, cuando la condición se dispara, TradingView puede enviar un webhook (una petición HTTP) a un servidor que ejecuta la orden en el bróker.
// dispara alerta en el cruce if cruzaCima alert("COMPRA BTCUSDT", alert.freq_once_per_bar_close) if cruzaBaixo alert("VENDA BTCUSDT", alert.freq_once_per_bar_close)
Dos formas de convertir la alerta en una orden real: (1) integración nativa — brókeres que soportan TradingView (como Pepperstone) ejecutan directo desde el gráfico; (2) webhook + servidor — la alerta llama a tu servidor (ej.: un script de Python que recibe el webhook y envía la orden vía API, como mostramos en el tutorial de Binance).
Atención: la automatización vía webhook añade puntos de fallo (el servidor se cae, la petición se pierde, latencia). Para estrategias sensibles al tiempo, la integración nativa del bróker es más fiable. Prueba a fondo en cuenta demo antes de automatizar con dinero real.
07Próximos pasos para dominarlo
- Estudia la librería
taentera — RSI, MACD, Bollinger, ATR. Cada una abre nuevas estrategias. - Aprende arrays y
varpara mantener estado entre velas (ej.: rastrear un nivel de soporte). - Detecta patrones de SMC — los order blocks y los fair value gaps se pueden codificar en Pine (mira nuestra guía de Smart Money Concepts).
- Lee el manual oficial de Pine v5 — es la mejor referencia y tiene ejemplos para todo.
08Preguntas frecuentes
¿Qué es Pine Script?
Es el lenguaje de programación de TradingView, para crear indicadores personalizados y estrategias con backtest directamente en la plataforma. Corre en la nube — no hace falta instalar nada.
¿Pine Script es difícil?
No. Es simple y específico para el análisis de gráficos. Quien ya ha programado lo aprende en horas; los principiantes cogen lo básico en pocos días. El ciclo visual escribir→plotear→probar acelera mucho el aprendizaje.
¿Se puede operar de verdad con Pine Script?
Pine genera señales y alertas. Para ejecutar órdenes reales de forma automática, conectas las alertas a un webhook (que envía la orden al bróker vía API) o usas la integración nativa de los brókeres que soportan TradingView.
¿Pine Script o Python para automatizar?
Pine es mejor para prototipar y hacer backtest visual rápido. Python da control total y corre independiente de TradingView, ideal para una ejecución robusta. Muchos usan Pine para diseñar la estrategia y Python para ejecutarla.
¿Necesito pagar TradingView para usar Pine?
El plan gratuito permite crear y probar scripts con limitaciones (número de indicadores simultáneos, alertas). Para automatizar en serio con varias alertas, los planes de pago liberan más recursos.