Define el DPO y el cálculo susceptible de backtest
El DPO generalmente se refiere a un indicador basado en medias móviles diseñado para comparar el valor actual con un valor desplazado hacia atrás por un desfase elegido. Para realizar un backtest responsable, comienza por escribir el cálculo exacto en términos simples: qué tipo de media móvil se utiliza (por ejemplo, simple o exponencial), la longitud de la mirada retrospectiva, el desplazamiento/desfase y cómo se asigna el valor del indicador a las decisiones.
Dos malentendidos comunes causan malas pruebas: (1) diferentes definiciones de “DPO” entre herramientas y (2) confusión entre la línea del indicador y cualquier regla de decisión que puedas aplicar. Para el backtesting, trata el DPO como una serie de entrada que calculas a partir de los precios OHLC históricos (o los campos de precio que uses). Luego mantén la regla de decisión separada para poder probarla de manera consistente sin cambiar la definición del indicador.
Cuando calcules el DPO a partir de barras históricas, indica supuestos como: si usas solo el cierre, cómo manejas las barras faltantes y si el indicador se calcula al cierre de la barra o a la apertura de la barra. Esos supuestos determinan qué información habría estado disponible en ese momento.
Separa la mecánica estable de las condiciones variables
Un backtest responsable distingue entre la mecánica estable del indicador y las condiciones variables que pueden cambiar de los resultados en papel a las ejecuciones reales.
La mecánica estable incluye: la fórmula del indicador, la interpretación del desplazamiento/desfase y cualquier transformación determinista (por ejemplo, normalizar o convertir el indicador en características). Las condiciones variables incluyen: regímenes de mercado, volatilidad, liquidez y cómo se comportan los spreads y el deslizamiento a lo largo del tiempo.
Debido a que el backtest no tiene datos en vivo, debes modelar los costos de manera conservadora y transparente. Los costos pueden incluir aproximaciones de spread/comisión y supuestos de deslizamiento. Incluso si careces de datos exactos a nivel de operación, debes especificar una regla: por ejemplo, asumir que los costos se aplican en la entrada y la salida, y definir si los modelas como fijos por operación o proporcionales al movimiento del precio.
Los supuestos de ejecución importan tanto como el indicador. Decide cómo traduces una observación del indicador en un resultado de operación en el tiempo: si tu decisión se forma utilizando valores de DPO al cierre de la barra, entonces tu entrada no debe asumir conocimiento intrabarra. Alinea el momento de la señal con el momento del precio para evitar un sesgo de anticipación accidental.
Añade controles de sesgo para que los resultados no sean solo sobreajuste
El backtesting se vuelve poco fiable cuando las elecciones se ajustan a la misma ventana histórica que luego “evalúas”. Para reducir esto, utiliza controles de sesgo.
Las comprobaciones clave incluyen:
- Prevención del sesgo de anticipación: asegúrate de que cada valor del indicador utilizado en el momento t se calcule solo a partir de datos disponibles hasta t. Las características de desplazamiento pueden tentarte a cambiar las series incorrectamente.
- Disciplina de parámetros: si buscas entre la longitud o el desfase del indicador, necesitas un período de evaluación separado. De lo contrario, mides la capacidad de ajustarse al ruido.
- Pruebas walk-forward o rodantes: reestima solo lo que se te permite reestimar (por ejemplo, las elecciones de parámetros) utilizando datos pasados y evalúa en el siguiente segmento.
También prueba la robustez: si pequeños cambios en los parámetros del indicador alteran drásticamente los resultados, es probable que la relación sea inestable. Un flujo de trabajo responsable documenta el espacio de búsqueda de parámetros, los tamaños de paso y los criterios de selección, y luego verifica cómo cambia el rendimiento cuando te mueves fuera del rango originalmente optimizado.
Evidencia o enfoque de ejemplo sin sobreestimar
Un flujo de trabajo de ejemplo limpio es:
- Elige una definición única y explícita del DPO (fórmula, tipo de MA, longitud, desfase).
- Elige una regla simple y alineada en el tiempo para traducir el DPO en una acción hipotética. Mantén la regla fija mientras validas el pipeline de datos.
- Calcula el DPO en todo el conjunto de datos y luego verifica el momento comprobando que el valor del indicador utilizado para la barra t solo depende de barras anteriores.
- Realiza una evaluación consciente de los costos utilizando un modelo de costos de transacción declarado y una regla de momento de ejecución.
- Utiliza pruebas fuera de muestra (uno o más segmentos no vistos) para estimar si los resultados persisten.
Esta estructura produce evidencia sobre la repetibilidad de la relación modelada, no una promesa de rendimiento futuro.
Limitaciones y modos de fallo que debes tener en cuenta
El rendimiento histórico puede ser engañoso por varias razones:
- Dependencia del régimen: los indicadores a menudo funcionan en ciertas condiciones de mercado y fallan en otras. Un backtest que mezcla regímenes puede ocultar cuándo un indicador se rompe. - Sensibilidad a los costos: si la estrategia depende de cambios frecuentes, pequeños cambios en los supuestos de spread o deslizamiento pueden abrumar la ventaja del indicador. - Sobreajuste: las búsquedas de parámetros, las re-ejecuciones repetidas y los ajustes flexibles de reglas pueden ajustarse al ruido.