Protecciones Anti-Repainting
Entiende qué es el repainting de indicadores, cómo lo previene Backtrex y por qué los resultados de tu backtest son confiables.
¿Qué es el Repainting?
El repainting ocurre cuando un indicador o estrategia modifica sus señales históricas después del hecho. Una señal que parecía activar una compra en un momento específico puede desaparecer o cambiar cuando miras el mismo gráfico más tarde.
Esta es una de las fuentes más comunes de resultados de backtest engañosos. Una estrategia que parece muy rentable en el backtesting puede rendir mal en el trading en vivo, porque las señales que mostraba históricamente fueron modificadas después de que el precio se movió.
Causas Comunes de Repainting
Uso de Datos de la Barra Actual
Muchos indicadores usan el precio de cierre de la barra actual mientras aún se está formando. El valor cambia con cada tick hasta que la barra cierra, lo que significa:
- Una señal de "compra" puede aparecer a mitad de barra y desaparecer cuando la barra cierre
- Los motores de backtest que usan los datos finales de la barra mostrarán la señal como si hubiera sido confirmada, pero en el trading en vivo habrías actuado con base en una señal no confirmada
Sesgo de Anticipación
Algunos cálculos de indicadores hacen referencia a puntos de datos futuros. Por ejemplo, un indicador zigzag necesita "mirar hacia adelante" para encontrar el siguiente pivote, lo que significa que sus valores históricos cambian a medida que llegan nuevos datos.
Recálculo del Historial
Ciertos indicadores recalculan todo su historial cuando llegan nuevos datos, reescribiendo efectivamente las señales pasadas.
Cómo Backtrex Previene el Repainting
Solo Datos de Barras Confirmadas
Backtrex aplica una regla estricta: todos los cálculos de indicadores y evaluaciones de señales usan solo datos de barras confirmadas. En concreto:
- Todas las referencias de precio usan
close[1](el cierre confirmado de la barra anterior), noclose[0](la barra actual en formación) - Ningún indicador puede acceder a los datos de la barra actual para la generación de señales
- Esto garantiza que cada señal en tu backtest existía y era visible en el momento en que se activó
Sin Anticipación
El motor de backtest procesa las barras estrictamente en orden cronológico. En cualquier barra:
- Solo están disponibles datos pasados
- Las barras futuras son completamente invisibles para el cálculo
- Ningún indicador puede referenciar datos que no habrían estado disponibles en ese momento
Lo que Esto Significa para Ti
Cuando ves una señal de compra en una barra específica en tu backtest de Backtrex:
- Esa señal fue generada usando solo datos disponibles en ese momento
- La señal habría sido visible para ti si estuvieras mirando el gráfico en vivo
- La misma señal aparecerá si exportas a TradingView y verificas la misma barra
Verificación Mediante el Export
La función de export de Pine Script ofrece una capa adicional de verificación:
- Exporta tu estrategia y ejecútala en TradingView
- Compara las señales y las entradas de trades entre Backtrex y TradingView
- La divergencia garantizada inferior al 2% confirma que el anti-repainting está funcionando correctamente
Por qué Importa
Una estrategia con resultados de backtest realistas te ofrece:
- Confianza: Lo que ves es lo que habrías experimentado en el trading en vivo
- Evaluación de riesgo precisa: Las cifras de drawdown y pérdidas reflejan el riesgo real
- Optimización confiable: Los cambios de parámetros producen mejoras genuinas, no artefactos de repainting
Concepto Erróneo Común
Algunos traders creen que usar close[1] en lugar de close[0] significa "perder" una barra. Esto no es una limitación. Es la única forma correcta de evaluar señales:
- En el trading en vivo, solo puedes actuar sobre una señal después de que la barra cierra
- Usar
close[0]te daría una señal basada en datos sobre los que no puedes operar en tiempo real - El "retraso" de una barra es en realidad como funciona el trading real