Por qué fallan los scripts Pine copiados de TradingView

Scripts Community sobreajustados, costes cero, código invite-only y desajuste de símbolo — más una ruta de rebuild más segura.

📖 5 min read

📝 988 words

🏷️ Pine Script and TradingView

Compartir este artículo:

Cuatro razones por las que un script que funciona deja de funcionar

Un script copiado que decepciona suele haber fallado por una de cuatro razones, y solo dos son culpa del script.

1. El backtest nunca medía algo posible

Fuga de futuro, un gráfico no estándar, o ningún coste. El resultado era ficción antes de que lo copiaras. Las comprobaciones de la siguiente sección lo detectan en unos dos minutos.

2. Se escribió para v5 y se pegó en un gráfico v6

Esta es la versión más confusa del problema, porque el script puede compilar y comportarse distinto. En v6 el operador and hace cortocircuito, así que una llamada ta.* tras una condición falsa se omite y su historial interno se rompe; margin_long ahora vale 100 por defecto en lugar de 0, así que se aplica margen donde antes no; y timeframe.period devuelve "1D" donde v5 devolvía "D", así que una comparación con "D" nunca coincide.

Ninguno da error. Ver los cambios de v5 a v6 para la lista completa — la sección de cambios que no dan error es la relevante.

3. Lo estás ejecutando en otro instrumento

Es la causa más común y la menos discutida. Un script construido sobre un futuro de índice líquido y aplicado a un par de divisas exótico no hereda ninguna de las suposiciones con las que se ajustó: spread, tamaño de tick, horario de sesión, rango típico. Un slippage = 1 que era honesto en un instrumento subestima los costes en un orden de magnitud en otro, porque el slippage se mide en ticks y un tick no mide lo mismo.

Nada en el script te avisa de esto. El instrumento del autor normalmente no queda ni registrado.

4. Estaba ajustado al historial en que se probó

Una estrategia con suficientes parámetros ajusta cualquier muestra. Este es el fallo que no deja rastro en el código: está limpio, los costes son reales, el backtest es honesto, y los parámetros resultan ser los que funcionaron en ese tramo exacto de historial.

La única defensa es evidencia fuera de muestra: ¿se sostiene en un rango de fechas que el autor no ajustó, y en un segundo instrumento? Si no puedes probarlo, no lo sabes.

Qué hacer con un script que quieres conservar

Reconstruir la lógica en lugar de reutilizar el archivo resuelve 1, 2 y 4 a la vez: obtienes salida v6 actual, costes que fijas a propósito y parámetros que eliges en lugar de heredar. No resuelve el 3 — eso no lo resuelve nada salvo probar en el instrumento que realmente operas.


Revisar un script que no escribiste

No necesitas leer un script publicado línea por línea para saber si su backtest es fiable. Cinco búsquedas de texto responden a la mayor parte, en este orden: lo más barato y decisivo primero.

1. Busca lookahead

Si aparece barmerge.lookahead_on, localiza la expresión solicitada y comprueba si está desplazada. high[1] con lookahead activado es el patrón seguro documentado; high con lookahead activado es una fuga de futuro, y la mitad histórica del backtest tuvo precios que la mitad en vivo no puede tener [2].

TradingView no permite publicar scripts que filtren datos futuros al historial [2], lo que indica con qué frecuencia se intenta.

2. Busca request.security

Incluso sin lookahead, una petición a temporalidad superior devuelve un valor sin confirmar en barras en tiempo real y uno confirmado en el historial [1]. No es fraude, pero significa que la curva que ves se produjo en condiciones distintas de las que vas a operar.

3. Busca strategy( y lee la declaración

Aquí se decide realmente el backtest, y cuesta diez segundos:

Si vesEntonces
ningún commission_value ni slippageel resultado viene de un mercado que no cobra nada
default_qty_type = strategy.percent_of_equityla curva compone, lo que favorece a una ventaja débil en un test largo
pyramiding mayor que 1la estrategia acumula posiciones; comprueba si las cifras de riesgo lo tienen en cuenta
calc_on_every_tick = truela ejecución en tiempo real y en histórico difieren por diseño [1]
process_orders_on_close = truelas ejecuciones asumen que puedes operar el cierre de cada barra

Un script sin costes en su declaración no ha sido probado en ningún sentido significativo, diga lo que diga su factor de beneficio.

4. Comprueba el tipo de gráfico en que se publicó

Los gráficos no estándar — Heikin Ashi, Renko — producen resultados que TradingView describe como poco realistas por defecto [1]. Una captura de estrategia en un gráfico Heikin Ashi no es evidencia de nada operable.

5. Mira el número de operaciones y el rango de fechas

Menos de cien operaciones no es una muestra. Un resultado espectacular en seis meses y un solo símbolo es un régimen de mercado, no una estrategia.

Lo que nada de esto te dice

Que la estrategia sea rentable. Estas comprobaciones solo establecen si el backtest mide algo posible. Un script que pasa las cinco puede seguir estando sobreajustado al historial exacto en que se probó, y ese fallo no deja ningún rastro en el código.

La evidencia académica revisada sobre reglas técnicas es mucho más débil una vez incluidos los costes de transacción [3]. Un script publicado que muestre lo contrario está haciendo una afirmación fuerte, y la carga de la prueba es suya.



Tactix AI en este flujo

AlfaTactix incluye Tactix AI: usa Tactix Studio para describir tu idea en lenguaje natural y rellenar timeframes, señales, filtros y riesgo en el mismo formulario de seis pasos — o abre Tactix Guide en cualquier paso si solo necesitas explicar un campo. Revisa cada valor y luego exporta MQL5 o Pine Script desde Code Generator (form-first — no prompt-to-code sin probar).

Preguntas frecuentes

Sobreajuste, costes cero, otro símbolo, código cerrado. Convertir.

No siempre; verifica. Checklist.

No auditable. Mejor tu export. Generator.

No. Guía.

Referencias

  1. TradingView. Strategies. https://www.tradingview.com/pine-script-docs/concepts/strategies
  2. TradingView. Repainting. https://www.tradingview.com/pine-script-docs/concepts/repainting
  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