Pine Script Basico

Pine Script v5: introduccion para traders mexicanos

El lenguaje de TradingView para crear indicadores y strategies. Setup, primer indicador (EMA), variables built-in, funciones ta.*, plotting, inputs, operadores logicos. Tu segundo indicador (RSI con zonas).

📚 10 min lectura 📊 Dificultad: Facil 🇲🇽 Codigo listo para copiar

Que es Pine Script

Pine Script es el lenguaje de programacion de TradingView. Te permite crear indicadores tecnicos custom, strategies de backtesting, y alertas automatizadas. La version actual (2026) es Pine Script v5.

Lo bueno: es accesible, gratuito (con cuenta TradingView basica), y la curva de aprendizaje es relativamente suave. No necesitas ser programador profesional para crear cosas utiles.

Lo mejor: la AI (Claude, ChatGPT) genera Pine Script de alta calidad. Tu mas la AI = potencia que antes solo tenian quants profesionales.

Setup inicial

  1. Cuenta TradingView gratuita en tradingview.com
  2. Cargar cualquier chart (ej: EUR/USD H1)
  3. Abajo en panel, click “Pine Editor”
  4. Ya estas listo para escribir codigo

La cuenta gratuita permite crear hasta 3 indicadores personales. La Plus ($14/mes) permite mas, y la Pro ($28/mes) permite multiple workspaces.

Tu primer indicador

Vamos a crear el “Hello World” de Pine Script: una EMA de 20 periodos.

// PrimeTraderAI – Mi Primera EMA //@version=5 indicator(“Mi EMA 20”, overlay=true) // Calculo de la EMA ema20 = ta.ema(close, 20) // Plot en el chart plot(ema20, “EMA 20”, color=color.new(#b8893d, 0), linewidth=2)

Copia esto en Pine Editor, click “Save” y luego “Add to chart”. Veras la EMA dibujada sobre el precio.

Anatomia del codigo

  • //@version=5 — version de Pine Script (siempre 5 en 2026)
  • indicator(...) — declara que es indicador (vs strategy)
  • overlay=true — se dibuja SOBRE el precio (no abajo)
  • ta.ema(close, 20) — funcion built-in que calcula EMA(20)
  • plot(...) — dibuja la linea en el chart

Conceptos fundamentales

1. Variables built-in

Pine Script tiene variables automaticas que representan cada vela:

  • open — precio de apertura
  • high — maximo
  • low — minimo
  • close — cierre
  • volume — volumen
  • time — timestamp de la vela

2. Funciones tecnicas (ta.*)

Las funciones de analisis tecnico empiezan con ta.:

  • ta.sma(close, 20) — Simple Moving Average
  • ta.ema(close, 50) — Exponential Moving Average
  • ta.rsi(close, 14) — RSI
  • ta.macd(close, 12, 26, 9) — MACD
  • ta.bbands(close, 20, 2) — Bollinger Bands
  • ta.atr(14) — Average True Range
  • ta.crossover(a, b) — true cuando a cruza arriba de b
  • ta.crossunder(a, b) — true cuando a cruza abajo de b

3. Plotting

Funciones para dibujar en el chart:

  • plot(value) — linea continua
  • plotshape(condition) — forma cuando condicion es true
  • plotchar(condition, char="↑") — caracter custom
  • hline(value) — linea horizontal fija
  • bgcolor(color) — color de fondo
  • fill(p1, p2, color) — rellena entre 2 plots

4. Inputs (parametros del usuario)

Para que el usuario pueda ajustar parametros sin editar el codigo:

length = input.int(14, “Periodo”, minval=1, maxval=200) overbought = input.int(70, “Sobrecomprado”) src = input.source(close, “Source”) useAlerts = input.bool(true, “Activar Alertas”)

Operadores logicos

OperadorSignificadoEjemplo
andY logicorsi > 50 and close > ema
orO logicorsi < 30 or rsi > 70
notNO logiconot (rsi > 70)
?:Ternario (if/else corto)color = trend ? green : red
==Igualclose == open
!=Diferenteclose != open

Tu segundo indicador (RSI con zonas)

Algo mas util — RSI con zonas coloridas:

// PrimeTraderAI – RSI con Zonas MX //@version=5 indicator(“RSI Zonas PT”, overlay=false) // Inputs length = input.int(14, “Periodo RSI”) overbought = input.int(70, “Sobrecomprado”) oversold = input.int(30, “Sobrevendido”) // Calculo rsi = ta.rsi(close, length) // Color dinamico rsiColor = rsi > overbought ? color.red : rsi < oversold ? color.green : #b8893d // Plot RSI plot(rsi, “RSI”, color=rsiColor, linewidth=2) // Lineas de referencia hline(overbought, “Sobrecomprado”, color=color.red, linestyle=hline.style_dashed) hline(50, “Medio”, color=color.gray) hline(oversold, “Sobrevendido”, color=color.green, linestyle=hline.style_dashed) // Background colorido en zonas extremas bgcolor(rsi > overbought ? color.new(color.red, 90) : na) bgcolor(rsi < oversold ? color.new(color.green, 90) : na) // Alertas alertcondition(ta.crossover(rsi, oversold), “RSI Cruz Alcista”, “RSI cruzo arriba de “ + str.tostring(oversold)) alertcondition(ta.crossunder(rsi, overbought), “RSI Cruz Bajista”, “RSI cruzo abajo de “ + str.tostring(overbought))

Mejoras vs el primer ejemplo: inputs editables, colores dinamicos, background visual, alertas listas.

Errores comunes de principiantes

  1. Olvidar //@version=5: el codigo no compila
  2. Mezclar tipos: int vs float vs bool no son automaticamente convertibles
  3. No usar inputs: hardcodear valores en lugar de parametros editables
  4. Loop pensamiento procedural: Pine Script es declarativo, no procedural
  5. Confundir indicator() con strategy(): indicator para visualizar, strategy para backtest
  6. No manejar NA: primeras barras pueden ser NA si tu indicador usa lookback

Recursos recomendados

Practica el codigo en demo

Backtest no es real. Demo 60+ dias antes de capital real. Pine Script es herramienta, no garantia.

Brokers con TradingView Mas Pine Script
Aviso de Riesgo
El codigo Pine Script es educativo. NO garantiza rentabilidad. 70-89% de los traders retail pierden varo (ESMA, FCA, CFTC). Backtest no predice futuro. SAPTEL: 55 5259-8121.