Little Bird Trading

Pine Script: indicador vs. estrategia

4 min de lectura · Actualizado

En TradingView, un indicador y una estrategia se ven parecidos en el Pine Editor, pero hacen trabajos muy distintos. El indicador dibuja en tu gráfico. La estrategia simula operar. Confundir los dos es la razón más común por la que un script que se ve brillante en el histórico se siente totalmente distinto en vivo. Esta guía mantiene la distinción concreta y honesta, enfocada solo en las partes que de verdad cambian tus resultados.

La diferencia en una línea

La primera línea de un script de Pine declara de qué tipo es. Un script que empieza con indicator() solo puede calcular y dibujar: líneas, colores, etiquetas, rellenos. No tiene concepto de posición, precio de ejecución ni ganancia. Un script que empieza con strategy() agrega un motor de simulación de órdenes: puede llamar funciones como strategy.entry y strategy.exit, y TradingView ejecuta esas órdenes sobre barras históricas para producir el reporte del Strategy Tester: ganancia neta, drawdown máximo, tasa de acierto, factor de ganancia y la lista de operaciones simuladas.

Entonces la división es: un indicador describe condiciones; una estrategia afirma cuánto habrían ganado esas condiciones. La segunda afirmación pesa mucho más que la primera, porque en cuanto simulas órdenes heredas un montón de supuestos sobre cuándo y a qué precio se ejecutaron esas órdenes.

Dónde el motor de backtest hace supuestos sin avisar

La curva de capital de una estrategia es tan confiable como los supuestos de ejecución que tiene debajo. Cuatro valores por defecto hacen la mayor parte del daño:

  • Evaluación al cierre de la barra. Por defecto, el tester evalúa tu lógica cuando cierra una barra. Si una condición usa el máximo, el mínimo o el cierre de esa misma barra, la "ejecución" histórica puede usar información que una operación en vivo solo habría tenido después de que la barra terminara.
  • Ejecución en la apertura de la siguiente barra. Una orden a mercado colocada con una señal se ejecuta en la apertura de la siguiente barra en la simulación. En una apertura rápida, ese precio impreso puede quedar varios ticks, o puntos, lejos de donde realmente te ejecutarían.
  • Fricción cero. Si la comisión y el slippage se quedan en cero en la llamada strategy(), cada operación simulada es gratis, mientras que cada operación real paga comisión y slippage.
  • Tamaño de la muestra. El tester te reporta con gusto una curva preciosa construida sobre doce operaciones. Doce ganancias son ruido disfrazado de ventaja.

Un ejemplo resuelto

Digamos que una estrategia muestra +USD 4200 en 40 operaciones en futuros de ES con los costos en cero. Agrega una comisión de ida y vuelta de unos USD 5 (las comisiones de futuros para minoristas varían mucho según el bróker, así que usa la tuya) más un tick de slippage por lado. En ES un tick es 0.25 puntos y vale USD 12.50, así que un tick de cada lado son USD 25. Eso da más o menos USD 30 de fricción por operación, cerca de USD 1200 en 40 operaciones, lo que arrastra el +USD 4200 del titular hacia ~USD 3000. Y esa es la versión amable: si las entradas se concentran en aperturas volátiles, el slippage real supera un tick y la diferencia crece. Nada de esa fricción aparece en la versión indicador de la misma lógica, porque un indicador nunca afirma una ejecución. Para saber más sobre cómo separar una ventaja real de una ajustada, lee cómo detectar sistemas de trading sobreajustados.

Qué significa de verdad repintar

"Repintar" se le dice a cualquier script que muestra valores distintos en retrospectiva de los que mostró en tiempo real, pero la etiqueta muchas veces se usa mal. La prueba honesta es una pregunta: ¿se pudo haber tomado esta decisión con la misma información, en el mismo momento, en vivo? Una señal que solo se confirma al cierre de la barra simplemente te pide esperar al cierre. Los casos realmente engañosos son señales dibujadas en la barra que todavía se está formando y que luego saltan cuando termina, o datos de una temporalidad mayor tomados con lookahead. Evaluar la lógica en una barra confirmada mantiene tu backtest y tu experiencia en vivo honestos entre sí, ya sea que construyas un indicador o una estrategia.

Cómo se aplica esto a los Planes de Trading

Los Planes de Trading evitan a propósito el problema del repintado al darte niveles fijos y planeados de antemano. Los niveles diarios, los niveles de ES, SPY, NQ y QQQ, se calculan después del cierre anterior y no se mueven durante la sesión. No hay nada que repintar: cada nivel se fija antes de las 9:30 ET y se queda quieto. MyLinedChart, que dibuja esas líneas, funciona como un indicador. Dibuja los niveles y no simula nada, así que no carga ninguno de los supuestos de ejecución o comisión de arriba. Si un nivel publicado contradice lo que te dice tu propia estrategia, esa contradicción es información, y muchas veces la respuesta es esperar.

Una lista corta antes de confiar en cualquiera de los dos tipos de script

  • Ten claro cuál tienes: indicator() solo dibuja; strategy() simula órdenes y produce el reporte del Strategy Tester.
  • En una estrategia, configura una comisión y un slippage realistas para el instrumento que realmente operas antes de leer una sola cifra de ganancia.
  • Confirma la lógica en barras cerradas para que el histórico y el vivo compartan el mismo momento de decisión.
  • Juzga los resultados con suficientes trades para que cuenten.
  • Mantén las capas de contexto (como los niveles publicados) separadas de la autoridad de ejecución: el gráfico informa la decisión; tus reglas escritas la toman.

Usado así, un indicador es un lente y una estrategia es una hipótesis. Prueba los dos con ejecuciones reales antes de confiar en ellos.

Lecturas relacionadas

Fuentes

Contenido educativo. No es asesoría de inversión.

Contenido solo educativo. No es asesoría de inversión.