Define el SMMA claramente antes de probar
SMMA significa Smoothed Moving Average (Media Móvil Suavizada). Es un tipo de media móvil que actualiza su valor gradualmente en lugar de recalcular desde cero en cada barra. En el backtesting, “responsable” comienza con la definición de la mecánica exacta que vas a simular:
- Paso de tiempo y datos: Qué cuenta como una barra (por ejemplo, minuto, hora, día) y qué precio utilizas (apertura, máximo, mínimo, cierre o un promedio).
- Longitud (período): El número de barras utilizado por la definición del SMMA.
- Inicialización: El valor inicial del SMMA y cómo se siembra al comienzo del conjunto de datos.
- Regla de actualización: La fórmula que aplicas en cada nueva barra.
Si estos no se establecen de antemano, dos personas pueden ejecutar “backtests de SMMA” que no están midiendo lo mismo.
Separa la mecánica estable de las condiciones variables
La forma de una media móvil proviene de su mecánica, pero los resultados comerciales (si simulas operaciones) dependen de muchas condiciones variables. Para hacer backtesting responsable, trátalos por separado:
- Mecánica estable: Reglas de cálculo del SMMA y definiciones de parámetros.
- Condiciones variables del mercado: regímenes de volatilidad, comportamiento del spread, gaps y si los datos de precios reflejan realmente precios negociables.
- Ejecución y costos: comisiones, spread bid/ask, deslizamiento y momento de la orden.
Incluso si solo estudias el comportamiento del indicador (no una estrategia de trading), aún necesitas definiciones estables para que los resultados puedan compararse.
Especifica supuestos y modelado de costos
Los backtests a menudo se ven “mejores” cuando se omiten los costos y los detalles de ejecución. El backtesting responsable documenta los supuestos para cualquier cálculo o ejemplo que ejecutes. Los supuestos clave incluyen:
- Costos: ¿Estás modelando comisión por operación, spread como costo, o ambos?
- Deslizamiento: ¿Asumes un deslizamiento fijo, una función de la volatilidad, o una banda conservadora en el peor de los casos? (Elige uno y justifícalo).
- Momento de ejecución: Si una regla se activa al cierre de la barra, ¿ejecutas en la apertura de la siguiente barra, en el cierre, o con otro supuesto de momento?
- Calidad de los datos: ¿Son consistentes las marcas de tiempo, hay barras faltantes y están alineados los precios para que el SMMA y cualquier lógica de eventos utilicen la misma barra?
Debido a que los costos y la ejecución varían, el objetivo no es “predecir” resultados reales, sino evitar simulaciones engañosamente optimistas.
Controla el sesgo: prevén la mirada hacia el futuro y el sobreajuste
Un backtest responsable verifica si tu configuración podría beneficiarse involuntariamente de información que no debería tener.
- Mirada hacia el futuro (fuga de información futura): Asegúrate de que cada valor utilizado en el tiempo t dependa solo de los datos disponibles hasta t. Esto incluye el calentamiento del indicador y cualquier filtrado.
- Sesgo de re-parametrización: Si pruebas muchos períodos de SMMA y eliges el que tiene el mejor resultado dentro de la muestra, puedes sobreajustar. Utiliza un proceso estructurado: define un rango de búsqueda de parámetros y luego fija las elecciones antes de evaluar.
- Sesgo de selección en los datos: Usar solo períodos “limpios” o eliminar segmentos con grandes reducciones puede inflar los resultados. Prefiere una regla transparente sobre qué segmentos históricos se incluyen.
Utiliza comprobaciones fuera de muestra para probar la estabilidad
El rendimiento histórico puede cambiar a medida que cambian las condiciones del mercado, por lo que las pruebas “responsables” requieren una evaluación más allá de los datos utilizados para configurar el modelo.
Un enfoque típico es:
- Entrenamiento (dentro de la muestra): Usa una porción del historial para decidir las elecciones de parámetros del SMMA y cualquier mapeo del comportamiento del indicador a un resultado medido.
- Validación (ajuste de parámetros): Usa una porción separada para reducir el sobreajuste.
- Prueba (evaluación final): Usa la última porción solo para la comprobación final.
Considera también la evaluación walk-forward (avance progresivo), donde reentrenas/re-seleccionas parámetros repetidamente usando solo datos pasados y pruebas en el siguiente segmento. Esto ayuda a revelar si los resultados dependen de un período específico.
Reporta limitaciones y modos de fallo
Incluso un backtest de SMMA perfectamente codificado puede fallar debido a un desajuste de modelado o cambios de régimen de mercado. Ejemplos de limitaciones materiales incluyen:
- Dependencia del régimen: Los métodos de suavizado pueden comportarse de manera diferente en mercados con tendencia versus mercados laterales.
- Sensibilidad a los costos: Las pequeñas ventajas pueden desaparecer una vez que se incluyen el spread y el deslizamiento realistas.
- Efectos de calentamiento: Las primeras barras pueden usar una inicialización que no refleja el comportamiento en estado estacionario.
- Desajuste de datos y modelo: Si los precios históricos no representan precios de ejecución negociables (o si tu momento de ejecución no es realista), el backtest puede no generalizarse.
Un informe responsable incluye no solo “lo que funcionó”, sino también cuándo y por qué puede fallar.
Verificación que puedes hacer de forma independiente
Para verificar tu propio rigor en el backtesting sin depender de afirmaciones externas:
- Recalcula los valores del SMMA a mano para algunas barras usando tu fórmula e inicialización declaradas, y luego confirma que tu código coincide. 2.