Backtest de estrategias de Pine Script en TradingView
Escribe una estrategia de Pine Script con Claude o ChatGPT, añádela a un gráfico de TradingView y ejecuta el Strategy Tester integrado antes de arriesgar capital real. El Strategy Tester es el filtro más rápido y económico a tu disposición.
Esta guía cubre el flujo de trabajo optimizado para IA: desde la escritura de la estrategia y la ejecución del backtest, hasta el análisis honesto de las pestañas Performance Summary y List of Trades, y el paso a producción de la estrategia validada mediante un webhook de TradingView hacia un receptor de broker alojado en TradingHost.
Sección 01 · Cómo encaja todo
Escribir, probar, desplegar
Tres piezas. Tú escribes una estrategia. TradingView hace el backtest. Un webhook envía la estrategia validada a ejecución en real. El Strategy Tester actúa como un filtro económico entre la creación y la ejecución; lo único más caro que un mal backtest es no hacer ningún backtest.
Lo que escribes
Estrategia de Pine Script
Un script con la declaración strategy() que define entradas, salidas y tamaño de la posición. El Strategy Tester solo ejecuta scripts strategy(); los scripts indicator() no se pueden probar en el backtest.
Dónde validas
Strategy Tester
El panel integrado de TradingView que ejecuta la estrategia sobre el historial disponible del gráfico y muestra las pestañas Performance Summary, List of Trades y Properties.
Cómo se envía
Webhook a producción
Una vez que el backtest es sólido, la misma estrategia envía alertas a una URL de webhook alojada en TradingHost, que llama a la API del broker y ejecuta órdenes reales.
De la idea a una estrategia probada
- Describe la estrategia en lenguaje natural a Claude o ChatGPT; pídeles un script de estrategia en Pine Script v6.
- Pega el script en el Pine Editor de TradingView, añádelo al gráfico y abre el panel del Strategy Tester.
- Analiza la pestaña Performance Summary; revisa la pestaña List of Trades para comprobar la distribución y frecuencia de las operaciones; confirma que las comisiones y el deslizamiento (slippage) en la pestaña Properties coincidan con la realidad.
- Itera en el script con la IA hasta que la estrategia supere un backtest honesto con datos fuera de muestra (out-of-sample).
- Crea una alerta de TradingView para la estrategia con una URL de webhook que apunte al entorno de ejecución de TradingHost; pasa el script validado a producción.
Sección 02 · De un vistazo
De un vistazo
- Flujo de trabajo
- Escribir una estrategia de Pine Script con IA, validarla en el Strategy Tester de TradingView y pasarla a real mediante un webhook
- Lenguaje
- Pine Script v6 (versión actual del lenguaje en TradingView)
- Declaración del script
- Debe ser strategy(), no indicator(); solo los scripts de estrategia se ejecutan en el Strategy Tester
- Strategy Tester
- Integrado en todas las cuentas de TradingView; se abre como un panel debajo del gráfico
- Pestañas principales
- Performance Summary, List of Trades, Properties
- Métricas de rendimiento
- Beneficio neto, beneficio bruto, pérdida bruta, factor de beneficio (profit factor), drawdown máximo, porcentaje de operaciones ganadoras, operación promedio
- Límites de velas
- El rango del backtest está limitado por las barras cargadas en el gráfico; Deep Backtesting en los planes de pago se extiende más allá del rango visible
- Herramientas de IA
- Claude, ChatGPT, Gemini (cualquier modelo entrenado con la referencia de Pine Script v6)
- Entorno de edición
- TradingView Pine Editor; ediciones más profundas en Cursor con Pine v6 en el prompt
- Ruta de trading en real
- Alerta de TradingView con una URL de webhook que apunta a un runtime de TradingHost que llama a la API del bróker
- Rol de TradingHost
- Runtime receptor de webhooks una vez que la estrategia se ejecuta en real (no se utiliza durante el backtesting propiamente dicho)
- Afiliación
- TradingHost es independiente y no está afiliado a TradingView
Sección 04 · Ejecutar el Strategy Tester
Añada la estrategia a un gráfico y abra el Strategy Tester
Abra un gráfico de TradingView con el instrumento y la temporalidad a los que se dirige su estrategia. Pegue la estrategia en el Pine Editor en la parte inferior del gráfico y haga clic en Añadir al gráfico. Si el script declara strategy(), TradingView abrirá automáticamente el panel del Strategy Tester debajo del Pine Editor.
El Strategy Tester ejecuta la estrategia sobre las barras cargadas actualmente en el gráfico. Desplácese hacia la izquierda para cargar más historial antes de volver a ejecutarla si desea una ventana de backtest más amplia. En los planes de pago de TradingView, la opción Deep Backtesting extiende el evaluador más allá del rango de barras visible del gráfico; el nivel gratuito le limita a lo que esté cargado en el gráfico.
Ajuste la configuración de la estrategia (icono de engranaje junto al nombre del script) antes de analizar los resultados. El capital inicial, el tamaño de la orden, la piramidación (pyramiding), la comisión y el deslizamiento (slippage) son los parámetros que modifican sustancialmente el informe; los valores por defecto rara vez son los adecuados. Adapte la comisión y el deslizamiento a lo que realmente cobra el bróker con el que planea operar.
Sección 05 · Analizar el informe
Las tres pestañas clave
El Strategy Tester muestra las pestañas Performance Summary, List of Trades y Properties. Revise las tres. El Performance Summary le indica si la estrategia generó ganancias en la simulación. La List of Trades le muestra si la estrategia ejecutó las operaciones que usted realmente quería. La pestaña Properties le confirma si las hipótesis detrás de esas operaciones son realistas.
Una estrategia que muestra un beneficio neto espectacular en el Performance Summary pero que solo ejecuta cuatro operaciones al año, con comisiones y deslizamientos poco realistas, no es una estrategia. Es una anomalía del gráfico. Las tres pestañas en conjunto son su salvaguarda.
Métricas clave a analizar
- Beneficio neto
- Pérdidas y ganancias totales de todas las operaciones simuladas, en la divisa de la cuenta y como porcentaje del capital inicial.
- Factor de beneficio (Profit factor)
- Beneficio bruto dividido por la pérdida bruta. Un valor superior a 1 significa que la estrategia generó ganancias en la simulación; las estrategias reales y honestas suelen situarse entre 1.2 y 2.
- Drawdown máximo
- La mayor pérdida acumulada de pico a valle en la curva de capital durante la prueba. Es la métrica de riesgo más importante.
- Porcentaje de acierto (Percent profitable)
- Proporción de operaciones que cerraron con ganancias. Los porcentajes de acierto elevados suelen ocultar riesgos de cola; combine este dato con la relación entre la ganancia media y la pérdida media.
- P&G medio por operación
- Pérdidas y ganancias medias por operación. Si este valor es inferior a su estimación de comisiones y deslizamiento en el mundo real, la estrategia no será rentable en la práctica.
- Sharpe / Sortino
- Medidas de rendimiento ajustado al riesgo. Se muestran en la pestaña Performance Summary cuando están activadas.
- List of Trades
- Cada operación simulada con su entrada, salida, tamaño, P&G y run-up/drawdown. Revise esto para confirmar que la estrategia se ejecuta exactamente como espera.
- Properties
- La configuración utilizada para la simulación: capital inicial, tamaño de la orden, comisión, deslizamiento y piramidación. Confirma qué ha probado exactamente antes de tomar decisiones basadas en el resultado.
Un riesgo específico de Pine a tener en cuenta: el Strategy Tester es generoso por defecto con los supuestos intra-barra. Si su estrategia entra y sale dentro de la misma barra en el backtest, la alerta en real debe utilizar la frecuencia de una vez por cierre de barra, o de lo contrario no se reproducirán los mismos giros intra-barra. Sincronice la frecuencia de las alertas con los supuestos del backtest antes de pasar a real.
Sección 06 · Pasar a trading en real
Cuando el backtest sea sólido, lance la estrategia
Un backtest impecable es una autorización para operar, no una garantía de ganancias. Cuando la estrategia supera una prueba justa con datos fuera de muestra (out-of-sample) y con comisiones y deslizamientos realistas, el siguiente paso es configurar una alerta de TradingView con una URL de webhook.
El Pine Script que ha probado es el mismo script que ejecutará en real; no tiene que reescribirlo para producción. Simplemente cree una alerta para la estrategia, pegue la URL de webhook de un runtime de TradingHost en la alerta y escriba el mensaje de la alerta en formato JSON utilizando los marcadores de posición strategy.* para codificar la dirección y el tamaño de la orden. El contenedor de TradingHost procesará la carga útil y llamará a la API REST del bróker.
Sin MetaTrader. Sin VPS de Windows. Sin licencia de PineConnector. El mismo Pine Script que ejecutó su backtest enviará sus órdenes en real.
Sección 08 · Preguntas frecuentes
Preguntas frecuentes
El Strategy Tester está disponible en todas las cuentas de TradingView. El Deep Backtesting y los rangos históricos de barras más amplios se desbloquean a partir del plan Plus. El envío de alertas mediante URL de webhook, el método que necesitarás para enviar alertas en tiempo real a un broker, requiere un plan Plus, Premium o Ultimate; el plan Essential y la versión gratuita no incluyen alertas por webhook.
Solo los scripts de Pine Script que declaran strategy() pueden ejecutarse en el Strategy Tester y habilitar los marcadores de posición strategy.* que necesitarás más adelante para las alertas en tiempo real. Los scripts con indicator() no se pueden someter a backtesting.
En Pine Script v6. TradingView ha confirmado que las futuras actualizaciones del lenguaje se aplicarán exclusivamente a la v6, por lo que escribir código nuevo en v5 solo retrasará una migración inevitable.
Desplázate hacia atrás en el gráfico para cargar más historial antes de volver a ejecutar el tester, o utiliza Deep Backtesting si tu plan de TradingView lo admite. Deep Backtesting ejecuta el tester con datos que van más allá del rango de barras visible en el gráfico.
Depende de la temporalidad. Las estrategias diarias y de swing (barras de 4 horas o más) suelen situarse entre 1.3 y 2.5 en backtests honestos que incluyan comisiones y deslizamiento (slippage) realistas. Las estrategias intradiarias (de menos de una hora) suelen rondar entre 1.5 y 3 porque realizan más operaciones. Cualquier valor superior a 3 en datos intradiarios debe tomarse con escepticismo hasta que se pueda reproducir en datos fuera de muestra (out-of-sample); los números por encima de 4 casi siempre indican sesgo de anticipación (look-ahead), repintado o ejecuciones poco realistas.
Sí, en las propiedades de la estrategia. Configura commission_type y slippage para que coincidan con lo que realmente cobra el broker con el que vas a operar. Los valores por defecto subestiman los costes reales e inflan los resultados del backtest.
Sí. Backtrader y VectorBT son frameworks de backtesting basados en Python que permiten realizar análisis estadísticos, de gestión de posiciones y de carteras más sofisticados que Pine. La desventaja es que perderás el contexto visual de los gráficos de TradingView.
Revisa detalladamente cada referencia a barras pasadas o futuras. El operador de referencia histórica de Pine [n] mira hacia atrás, pero usar por error un valor que solo existe al cierre de la barra (o un cálculo propenso al repintado) inflará artificialmente el backtest. Combina siempre el backtest con un periodo de simulación (paper trading) antes de operar en real.
Crea una alerta de TradingView para la estrategia, apunta la URL del webhook a un runtime de TradingHost y escribe el mensaje en formato JSON utilizando los marcadores de posición strategy.* para definir la dirección y el tamaño de la orden. Consulta la página del flujo de trabajo de webhooks para ver cómo funciona el bucle de ejecución en tiempo real.
Confía en el flujo de trabajo, no en el resultado directo. La IA acelera la escritura del código; el backtest es tu salvaguarda; la alerta en tiempo real es tu mecanismo de ejecución. Lee cada línea, realiza un backtest riguroso y opera en simulación antes de arriesgar capital real.