¿Qué es una estrategia en TradingView? Pine vs indicador (2026)

Una estrategia TradingView es un script Pine v6 con strategy() para que el Probador simule órdenes. Diferencias con indicadores y alertas, docs oficiales y contexto académico.

📖 10 min de lectura

📝 1,910 palabras

🏷️ Pine Script y TradingView

Compartir este artículo:

Una línea decide lo que tu script puede hacer

Todo script de Pine se declara como uno de unos pocos tipos, y la declaración es la segunda línea del archivo [2]. Dos de esos tipos importan aquí:

pine
//@version=6
indicator("Mi indicador")     // dibuja en el gráfico
pine
//@version=6
strategy("Mi estrategia")     // dibuja, y además opera

La explicación habitual es «las estrategias se pueden backtestear». Es cierto y se salta el mecanismo, que es más útil conocer.

strategy() enciende el emulador de bróker

strategy() (se abre en una pestaña nueva) no añade un botón de backtest. Acopla un bróker simulado a tu script. Todo lo que se asocia con una estrategia existe porque ese emulador está funcionando:

Lo que obtienesPorque
el panel Strategy Testerahora hay una cuenta simulada de la que informar
strategy.entry(), strategy.exit(), strategy.close()hay algo a lo que enviar órdenes
una curva de capital y una cifra de drawdownel emulador lleva un saldo
la List of Tradesel emulador registra sus propias ejecuciones
el estado de la posición y strategy.closedtradesel emulador mantiene posiciones

Por eso no puedes añadirle un backtest a un indicador. Un script indicator() (se abre en una pestaña nueva) no tiene cuenta, ni órdenes, ni posición — no porque se le haya negado la función, sino porque no hay un bróker al otro lado.

El emulador es un modelo, y conviene conocer sus suposiciones

Como tus resultados salen de una simulación, las reglas de la simulación forman parte de tus resultados. Las dos más importantes están documentadas:

  • En una barra cuyo rango contiene tu stop y tu objetivo, el emulador deduce cuál llegó primero según dónde esté la apertura respecto al máximo y al mínimo [1]. Es una regla determinista, no una medición — el detalle está en gestión de riesgo.
  • Si el precio cruza el nivel de una orden dentro de un hueco entre barras, el emulador asume que no existen datos intrabarra en el hueco [1]. Así que un stop dentro de un hueco de fin de semana no se ejecuta a tu precio de stop.

Ninguna es un defecto. Es lo que un simulador tiene que hacer cuando solo tiene barras. Pero significan que «el backtest dice» es siempre una abreviatura de «el emulador, bajo estas suposiciones, dice».

Dos consecuencias prácticas

Un indicator() vendido como bot no lo es. Puede dibujar flechas y lanzar alertas; no puede mantener una posición ni informar de un drawdown. Si la segunda línea de un script publicado dice indicator(, ninguna curva de capital que muestre salió de ese script.

Convertir un indicador en estrategia no es renombrarlo. Tienes que decidir cosas que el indicador nunca necesitó: cuándo entrar, cuándo salir, cuánto, y qué pasa con una posición abierta cuando la señal se repite. Pine pone pyramiding (se abre en una pestaña nueva) en 1 por defecto [1], así que esa última tiene respuesta la elijas o no.

Esas decisiones son el trabajo de verdad, y son las mismas que convertir una estrategia manual obliga a sacar a la luz.


Cómo convertir un indicador en una estrategia

La sección anterior dice que convertir un indicador no es cambiarle el nombre. Esta muestra en qué consiste la conversión, paso a paso, con un mismo indicador de principio a fin: un script de RSI que marca la barra en la que el RSI vuelve a cruzar por encima de 30.

pine
//@version=6
indicator("RSI cross", overlay = false)
rsiLen = input.int(14, "RSI length")
r = ta.rsi(close, rsiLen)
plot(r, "RSI")
crossUp = ta.crossover(r, 30)
plotshape(crossUp, "Cross up", shape.triangleup, location.bottom)
alertcondition(crossUp, "RSI cross up", "RSI crossed above 30")

Este script responde a una sola pregunta: ¿cuándo se cumple la condición? Una estrategia tiene que responder a cuatro más.

1. Cambia la declaración y escribe sus valores por defecto

Sustituye indicator( por strategy(. Eso enciende el emulador de bróker, y además te da ajustes que no elegiste. Si no los defines, la comisión es cero, el deslizamiento es cero, cada orden es de un contrato o una unidad y pyramiding vale 1. Un informe con esos valores describe un mercado sin costes. Así que escríbelos, con las cifras de tu bróker en lugar de las de ejemplo:

pine
strategy("RSI cross strategy", overlay = false,
     initial_capital = 10000,
     default_qty_type = strategy.cash, default_qty_value = 1000,
     commission_type = strategy.commission.percent, commission_value = 0.05,
     slippage = 2,
     pyramiding = 1)

Una cantidad fija de efectivo por operación deja la prueba sin interés compuesto, que hace parecer mejor una regla mediocre cuanto más larga es la prueba.

2. Convierte la señal en una entrada

El triángulo se convierte en una orden:

pine
if crossUp and strategy.position_size == 0
    strategy.entry("Long", strategy.long)

Aquí cambian dos cosas. La orden se decide al cierre de la barra y, por defecto, se ejecuta en la apertura de la barra siguiente, no al precio en el que se dibujó el triángulo. Y strategy.position_size == 0 responde a la pregunta que el indicador nunca tuvo: qué pasa cuando la señal se repite con una operación abierta. Aquí, nada.

Deja las llamadas a ta.rsi() y ta.crossover() donde estaban, en su propia línea y en el nivel superior, para que se ejecuten en cada barra.

3. Decide la salida

El indicador nunca la necesitó, y es de donde sale la mayor parte del resultado. Las opciones habituales son un stop y un objetivo con strategy.exit(), una salida por señal contraria con strategy.close() o un límite de tiempo. Un stop y un objetivo, en porcentaje del precio de entrada:

pine
stopPct   = input.float(1.0, "Stop loss %")
targetPct = input.float(2.0, "Take profit %")
if strategy.position_size > 0
    entryPrice = strategy.position_avg_price
    strategy.exit("Exit", "Long",
         stop  = entryPrice * (1 - stopPct / 100),
         limit = entryPrice * (1 + targetPct / 100))

Fíjate en lo que no está: que el RSI vuelva a cruzar por debajo de 70 no cierra nada si no escribes esa regla. Una flecha del indicador nunca fue una salida.

4. Lleva el tamaño y los costes al resultado

El beneficio neto del informe es dinero, así que el tamaño y los costes del paso 1 lo mueven directamente. Antes de leer cualquier cifra, comprueba que la comisión y el deslizamiento coinciden con tu bróker; los detalles están en los parámetros de costes. Después lee el informe en el orden que explica la guía del Probador de estrategias: primero el número de operaciones y luego el drawdown.

Lo que no se traslada

En el indicadorEn la estrategia
alertcondition()no tiene efecto en una estrategia, y el Pine Editor te lo advierte; solo operan las llamadas strategy.*
plot(), plotshape()siguen dibujando y no cambian ningún resultado
un valor de un marco temporal superiorpuede no haberse conocido al cierre de la barra; revisa el repintado y el lookahead antes de fiarte de la prueba
«en el gráfico se ve bien»ahora es un número de operaciones que puedes comprobar

Las mismas reglas sin escribir Pine

En el Strategy Builder de AlfaTactix eliges TradingView como plataforma en el paso 1 de sus 7 pasos. La regla del indicador va en el paso 3, Reglas de entrada; el stop y el objetivo, en el paso 5, Salidas; el tamaño, en el paso 6, Riesgo y gestión del dinero. Obtienes un archivo strategy() de Pine Script v6 en el que cada indicador está escrito como código que puedes leer.

El límite es real: el formulario ofrece 47 tipos de indicador integrados y no importa código Pine, así que no puedes pegar un indicador personalizado. Si tu indicador es uno de esos tipos, rehaces su regla en el formulario; si no lo es, el camino es el código de arriba. Para empezar desde tu regla, créala en el generador de Pine Script.


Lo que no es una estrategia de TradingView

La palabra estrategia está haciendo tres trabajos distintos en este tema, y confundirlos es caro:

  1. un script de Pine cuya declaración es strategy()
  2. un plan de trading — reglas, tamaño, cuándo no vas a operar
  3. un sistema automatizado que coloca órdenes en un bróker

Un script strategy() es el primero. Con frecuencia se vende como el tercero.

No coloca órdenes

Este es el límite que merece precisión. Una estrategia puede lanzar alertas, y una alerta creada desde una estrategia puede configurarse para que los eventos de ejecución de órdenes también la disparen [5]. Pero una alerta es una notificación. Pasar de una alerta disparada a una posición abierta requiere una integración con el bróker, y el retardo entre ambas es tuyo: no está en el emulador, que asumió que la ejecución ocurrió al precio que modeló.

Y un detalle que sorprende a casi todos:

Las alertas solo se disparan en la barra en tiempo real. [5]

Así que un backtest que muestra doscientas operaciones produce cero alertas. Cada ejecución del informe es una reproducción del historial; una alerta es un evento en tiempo real. Nada en la parte histórica del gráfico disparó nunca una, y ninguna configuración lo cambia. El comportamiento completo, incluida la constante de frecuencia que por defecto dispara intrabarra y no al cierre, está en ejecutar y mantener una estrategia.

No es un plan de trading

Un script strategy() contiene entradas, salidas y tamaño. Un plan de trading contiene además las partes que nunca se vuelven código: cuánto de tu capital recibe esta idea, qué haces cuando está en drawdown, cuándo la abandonarías, y qué más estás ejecutando en paralelo.

El script no puede contenerlas, y un backtest no puede probarlas. Por eso una estrategia con buena curva de capital y sin plan alrededor sigue fracasando, y no porque el código estuviera mal.

No es evidencia por sí solo

Un script strategy() que compila, se ejecuta e informa de un beneficio ha demostrado que el emulador, bajo sus suposiciones, en esta porción de historial, con estos parámetros, produjo esta curva. Cada cláusula de esa frase es una salvedad:

CláusulaPor qué limita la afirmación
las suposiciones del emuladorel orden intrabarra se deduce, los huecos se tratan como vacíos [1]
esta porción de historialcuánta te dan depende de tu plan de cuenta [6]
estos parámetrossi probaste diez conjuntos, el mejor es una estimación sesgada
este instrumentoel slippage va en ticks, y un tick no mide lo mismo en otro sitio

Nada de eso vuelve inútil el backtesting. Lo convierte en un filtro y no en un pronóstico: puede decirte que una idea está rota, y no puede decirte que una idea sea buena.

¿Para qué sirve entonces?

Para especificar una idea con precisión suficiente para que pueda estar equivocada. Suena modesto y es todo el valor. Una regla que puedes enunciar, probar y auditar es una que puedes mejorar; una sensación discrecional es una sobre la que solo puedes discutir.

Preguntas frecuentes

Es un script que llama a strategy() para que TradingView simule órdenes y el informe del Probador. Guía oficial: estrategias Pine [1]. No es un indicator(). AlfaTactix exporta .pine v6. Ver estrategia Pine sin código.

Cambia indicator( por strategy( y define la comisión, el deslizamiento y el tamaño de orden, que por defecto valen cero o uno. Convierte la señal en strategy.entry(), añade una salida con strategy.exit() o strategy.close() y lee el Probador de estrategias, empezando por el número de operaciones. Los pasos, con código, están arriba en la sección «Cómo convertir un indicador en una estrategia».

No. Los indicadores calculan y dibujan; no usan el emulador de bróker. Las alertas avisan, no sustituyen un backtest de estrategia. Tipos de script [2] · Pine Editor.

El Probador corre en la infraestructura de TradingView al abrir el informe. La ejecución en vivo depende del plan, el bróker y alertas vs trading conectado. Un EA de MT5 sí suele exigir terminal o VPS: qué es un EA.

No hay garantía. Park e Irwin (2007) documentan resultados mixtos tras costes (DOI [3]). Usa el Probador y paper. AlfaTactix no promete beneficios.

Pine si operas en gráficos TradingView. MQL5 si tu flujo es MT5. Hub hermano: MQL5. Eliges la plataforma en el paso 1 del Strategy Builder: demo.

Pine Editor → pegar → Save → Add to chart. Guía de setup · dónde escribir Pine [4].

Referencias

  1. TradingView. Strategies. https://www.tradingview.com/pine-script-docs/concepts/strategies
  2. TradingView. Script structure. https://www.tradingview.com/pine-script-docs/language/script-structure
  3. Park, C.-H., & Irwin, S. H. (2007), Journal of Economic Surveys. What do we know about the profitability of technical analysis?. https://doi.org/10.1111/j.1467-6419.2007.00519.x
  4. TradingView. First steps. https://www.tradingview.com/pine-script-docs/primer/first-steps
  5. TradingView. Alerts. https://www.tradingview.com/pine-script-docs/concepts/alerts
  6. TradingView. Limitations. https://www.tradingview.com/pine-script-docs/writing/limitations