Respuesta directa
El backtesting responsable de un Zero Lag Moving Average (ZLMA) se centra en cuatro partes: (1) definir la mecánica del indicador sin ambigüedades, (2) elegir supuestos para datos, muestreo y costes, (3) controlar el sesgo mediante un diseño de evaluación cuidadoso y (4) validar fuera de muestra para que los resultados históricos no se conviertan en una ilusión de rendimiento futuro.
Qué significa ZLMA y cómo suelen fallar los backtests
Una media móvil es una regla de suavizado que transforma una serie temporal de precios en un nivel estimado (y a veces una dirección implícita). Una versión de “cero retardo” intenta reducir el desfase entre la media móvil y el precio que representa. En la práctica, existen diferentes definiciones de ZLMA, por lo que el primer riesgo es probar la fórmula equivocada.
Dos modos de fallo comunes:
- Definición ambigua: Los resultados del backtest dependen de si la implementación utiliza un término de corrección, ponderación o transformación particular.
- Errores de lookahead o remuestreo: Si tu conjunto de datos o código utiliza efectivamente información posterior al punto de decisión (aunque sea indirectamente), la prueba se invalida.
Evidencia y diseño de ejemplo: qué especificar antes de los cálculos
Un backtest responsable comienza con supuestos explícitos. Incluso sin datos de mercado en vivo, puedes hacer que la prueba sea reproducible:
- Convenciones de datos
- Especifica la serie de entrada (por ejemplo, precios de cierre o una serie de precios medios construida).
- Especifica la alineación de marcas de tiempo (cuándo cierra una vela y cuándo el valor del indicador está disponible).
- Decide si la serie es continua o ajustada por acciones corporativas (en forex, esto suele referirse a si usas cotizaciones brutas o una transformación; documenta lo que usaste).
- Fórmula y parámetros del indicador
- Utiliza una definición precisa de ZLMA y mantenla fija.
- Indica los parámetros que probarás (como la longitud de la mirada retrospectiva) y los rangos candidatos.
-
Regla de decisión (si estás midiendo comportamiento de trading) Un indicador por sí solo no es una señal de trading; los backtests suelen medir una estrategia construida a partir de un indicador (por ejemplo, usando cruces del indicador o condiciones de umbral). Para mantener la prueba honesta, debes indicar claramente la lógica de decisión y asegurarte de que solo depende de la información disponible en el momento de la decisión.
-
Supuestos de costes y fricción (tipo de costes materiales) Incluso si no simulas cada microdetalle, debes incluir al menos los principales “costes de convertir una idea en resultados”:
- Costes de transacción: un modelo de coste por operación.
- Deslizamiento: un modelo de penalización de ejecución cuando una decisión cambia la posición.
- Aproximación del tiempo de ejecución: para pruebas basadas en velas, define si se asume que las órdenes se ejecutan en la apertura de la siguiente vela, en el cierre o con otra regla.
- Controles de sesgo (el núcleo de la verificación responsable)
- Sin ajuste de parámetros en el período de prueba: Si pruebas muchos ajustes de parámetros, necesitas un proceso de validación.
- Evaluación walk-forward (rodante): Entrena o selecciona parámetros en una ventana pasada, luego prueba en la siguiente ventana no vista y repite.
- Separación o margen: Si los valores del indicador dependen de ventanas móviles, considera si los datos de entrenamiento y prueba deben estar suficientemente separados para reducir la fuga de información.
Limitaciones y riesgos a reconocer
- Riesgo de sobreajuste: Los parámetros de ZLMA pueden ajustarse mejor a un régimen que a otro. Un backtest que se ve bien en un período puede fallar en otro.
- Dependencia del régimen de mercado: El suavizado y el “retardo reducido” pueden comportarse de manera diferente en condiciones de tendencia frente a condiciones laterales.
- Incertidumbre de ejecución: Los costes y las ejecuciones no son solo “ruido”; supuestos inexactos pueden cambiar las conclusiones.
- Las relaciones históricas no se generalizan: Incluso una prueba fuera de muestra bien diseñada no puede probar resultados futuros.
Verificación y siguientes preguntas
Para verificar de manera responsable, deberías poder responder estas preguntas con tu código de backtest y la documentación del conjunto de datos:
- ¿Qué fórmula exacta de ZLMA implementaste y cómo alineaste su valor con el momento de decisión?
- ¿Qué costes y supuestos de ejecución se incluyeron y fueron conservadores en relación con cómo esperarías que se comportara el trading real?
- ¿Evaluaste utilizando walk-forward o una división clara de entrenamiento/validación/prueba donde la selección de parámetros ocurrió solo en datos de entrenamiento o validación?
Si quieres ir más allá, también puedes probar la robustez repitiendo el mismo flujo de trabajo con pequeños cambios en la alineación de datos, los supuestos de costes o el marco temporal muestreado, y luego comprobar si las conclusiones cambian materialmente.
Referencias internas (opcional): puedes comparar tu definición del indicador y tus supuestos con explicadores relacionados aquí: zero lag moving average.