Little Bird Trading

Preguntas frecuentes de Pine Script: backtests y alertas

4 min de lectura · Actualizado

Estas son preguntas frecuentes en lenguaje sencillo para las dos dudas de Pine que confunden a casi todos en TradingView: por qué el backtest de una estrategia se ve mejor de lo que se siente el trading en real, y por qué una alerta a veces se dispara en otro momento o a otro precio del que esperabas. Las dos vienen de la misma causa: una diferencia entre los datos que realmente estaban disponibles cuando se tomó una decisión y lo que tus ojos ven después de que cerraron las barras.

¿Cuál es la diferencia entre un indicador, una estrategia y una alerta?

Un indicador (indicator()) solo dibuja y calcula: traza líneas, colores y etiquetas. Una estrategia (strategy()) simula órdenes: llama a strategy.entry/strategy.exit, las ejecuta contra barras históricas y produce el reporte del Strategy Tester con ganancia neta, drawdown y tasa de acierto. Una alerta es una capa de notificación aparte que TradingView dispara cuando una condición se cumple; la alerta por sí sola no opera nada. La confusión empieza cuando la gente lee un backtest como una promesa, o espera que una alerta sea una ejecución: son tres trabajos distintos. Para ver la diferencia a fondo, ve la guía de indicador vs. estrategia.

¿Por qué mi backtest se ve increíble pero los resultados en real no coinciden?

Cuatro cosas inflan un backtest frente a la realidad, y todas tienen arreglo:

  • Supuestos de cierre de barra vs. intrabarra. Por defecto, el Strategy Tester evalúa la lógica al cierre de la barra. Si tu condición usa el máximo/mínimo o el cierre de la barra actual de una forma que solo se conocería después de que la barra termine, la ejecución histórica usa información que el trade en real no podría haber tenido.
  • Ejecuciones por defecto a precios poco realistas. Una orden a mercado en el tester se ejecuta en la apertura de la siguiente barra; en una apertura rápida ese precio puede quedar a varios ticks o puntos de distancia en real.
  • Sin comisión ni slippage modelados. Si dejas commission_value y slippage en cero en strategy(), cada trade simulado queda sin fricción. Agrega valores realistas: incluso una fracción de tick de slippage vuelve negativos muchos sistemas de scalping "rentables". (La comisión se configura con commission_type y commission_value).
  • Muestras diminutas. Doce trades que funcionaron todos son una muestra demasiado chica para llamarla ventaja. Ve cómo detectar sistemas de trading sobreajustados antes de confiar en cualquier curva.

Ejemplo práctico: un sistema que muestra +USD 4200 en 40 trades de ES sin costos se ve muy distinto cuando agregas una comisión de ida y vuelta de USD 2.50 y un tick de slippage en cada lado, entrada y salida. Un tick en ES es 0.25 punto = USD 12.50, así que dos ticks son USD 25.00; suma la comisión de USD 2.50 y te dan USD 27.50 de fricción por trade. En 40 trades son unos USD 1100, lo que convierte un +USD 4200 de titular en más o menos +USD 3100, y peor si las entradas se concentran en aperturas volátiles donde el slippage real es mayor a un solo tick.

¿Qué es el repintado, y significa que el script está roto?

No necesariamente. "Repintado" es un término general para un script que muestra en barras históricas valores distintos de los que produjo en tiempo real. La prueba honesta es simple: ¿se pudo haber tomado la decisión con la misma información, en el mismo momento, en vivo? Una señal que solo se confirma después de que cierra la barra está haciendo su trabajo: espera el cierre para confirmar. Los problemas vienen de scripts que trazan una señal en la barra en formación y luego la mueven cuando la barra termina, o que jalan datos de un marco temporal mayor con lookahead activado. Si quieres una señal sobre la que puedas actuar, evalúala con barstate.isconfirmed (cierre de barra), que solo reacciona a la barra completa.

¿Por qué mi alerta se disparó tarde, a otro precio o dos veces?

  • "Once Per Bar Close" vs. "Once Per Bar". Una alerta configurada para dispararse en la barra en formación puede activarse en el instante en que una condición parpadea como verdadera dentro de la barra; luego la barra cierra en otro lado y la alerta parece "equivocada". Disparar al cierre de la barra es más tarde, pero coincide con el momento en que una estrategia confirmada realmente toma su decisión (la estrategia luego actúa en la apertura de la siguiente barra).
  • El precio de la alerta es una foto del momento en que se disparó la alerta. Tu broker te ejecuta al precio de mercado en vivo, que se mueve en los milisegundos entre la alerta y tu orden.
  • Los disparos duplicados normalmente significan que la condición siguió siendo verdadera durante varios ticks y que la alerta estaba configurada para dispararse en cada tick cuando debería dispararse una vez por barra.

¿Cómo se conecta con el método de los Planes de Trading?

Los Planes de Trading esquivan todo el problema de "¿mi señal se repintó?" porque te dan niveles fijos, planeados de antemano. Los niveles diarios, dibujados en ES, SPY, NQ y QQQ antes de la apertura, se calculan después del cierre anterior y no se mueven durante la sesión, así que no hay nada que repintar: cada nivel queda fijo antes de las 9:30 ET y se queda ahí. MyLinedChart solo dibuja esos niveles; nunca simula órdenes, así que no carga ninguno de los supuestos de ejecución de backtest de arriba. Si un nivel publicado no coincide con tu propia alerta o estrategia, trata ese desacuerdo como información, y muchas veces la respuesta es esperar. Para el vocabulario, ve el glosario de Planes de Trading.

Checklist práctico antes de confiar en cualquier resultado de Pine

  • Confirma la lógica con barstate.isconfirmed para que el backtest y el trading en real compartan el mismo momento de decisión.
  • Configura comisión y slippage realistas, commission_type, commission_value y slippage en strategy(), para el instrumento que realmente operas.
  • Elige a propósito la frecuencia de las alertas: al cierre de barra para confirmar, una vez por barra para evitar duplicados.
  • 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.

Lecturas relacionadas

Fuentes

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

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