Centro de ayuda
Help Center articles
El sobreajuste es un desafío común en el trading algorítmico, donde una estrategia se ajusta meticulosamente para funcionar excepcionalmente bien en datos históricos, pero falla al generalizarse a condiciones de mercado futuras y no vistas. Evitar el sobreajuste asegura que sus estrategias de trading sigan siendo robustas y rentables en escenarios del mundo real. Aquí hay algunas técnicas efectivas para evitar el sobreajuste en el desarrollo de estrategias, especialmente cuando se utilizan herramientas comoExpress Generator.
1.Use un conjunto de datos grande y diverso
El sobreajuste ocurre a menudo cuando una estrategia se adapta demasiado estrechamente a un conjunto pequeño de datos históricos. Para evitar esto:
- Use tantos datos como sea posible: Asegúrese de que la estrategia sea probada en múltiples años de datos, incluyendo periodos con diferentes condiciones de mercado (alcista, bajista, lateral).
- Incluya condiciones de mercado diversas: Use datos de diferentes regímenes de mercado (volatilidad, tendencias, crisis) para asegurar que su estrategia no esté optimizada solo para un tipo específico de entorno.
- Evite la selección selectiva de datos (cherry-picking): Use conjuntos de datos completos en lugar de excluir ciertos periodos que podrían hacer que su estrategia parezca peor.
2.Pruebas fuera de la muestra (Out-of-Sample Testing)
Las pruebas fuera de la muestra son una técnica crítica para evaluar qué tan bien funciona su estrategia con datos con los que no ha sido entrenada.
- Divida sus datos: Use una parte de sus datos históricos para la optimización de la estrategia (in-sample) y el resto para las pruebas (out-of-sample). Por ejemplo, si tiene 10 años de datos, use los primeros 7 años para la optimización y los 3 años restantes para las pruebas.
- Monitoree el rendimiento: Si su estrategia funciona bien in-sample pero mal out-of-sample, es probable que esté sobreajustada. Es más probable que una estrategia que rinde consistentemente en ambos periodos se generalice bien.
EnExpress Generator, puede configurar las pruebas fuera de la muestra usando estos parámetros:
data_start_percent = 0
data_end_percent = 100
Ajuste estos valores para especificar el porcentaje de datos a usar para el entrenamiento y las pruebas.
3.Pruebas hacia adelante (Forward Testing)
Después del backtesting, el forward testing es esencial para evaluar cómo se comporta la estrategia con datos en tiempo real no vistos.
- Realice trading simulado en tiempo real: El forward testing implica ejecutar la estrategia en un entorno de demo o paper trading con datos en tiempo real. Esto prueba la adaptabilidad de la estrategia a las condiciones reales del mercado.
- Monitoree el rendimiento durante semanas o meses: Asegúrese de que la estrategia mantenga un rendimiento consistente a través de diferentes condiciones de mercado, y evite ajustar la estrategia basándose en resultados a corto plazo.
EnExpress Generator, puede habilitar el forward testing con estos parámetros:
use_forward_testing = true
preload_data_bars = 0
4.Limite la complejidad de la estrategia
Las estrategias excesivamente complejas son más propensas al sobreajuste porque tienden a adaptarse demasiado estrechamente a los datos históricos, incluyendo el ruido o las fluctuaciones aleatorias del mercado.
- Limite el número de indicadores: Use solo unos pocos indicadores clave que se sabe que funcionan bien en diversas condiciones, en lugar de una gran combinación de señales.
- Evite demasiados parámetros: Cuantos más parámetros ajustables tenga una estrategia, mayor será el riesgo de sobreajuste. Manténgala simple evitando optimizaciones excesivas de stop-loss, take-profit o parámetros de indicadores.
EnExpress Generator, puede limitar el número de indicadores con estos parámetros:
max_entry_slots = 3
max_exit_slots = 2
Esto restringe el número de reglas de entrada y salida, reduciendo la posibilidad de sobreajuste.
5.Establezca criterios de aceptación estrictos
Establecer criterios de aceptación significativos asegura que las estrategias no solo funcionen bien debido a la suerte aleatoria en el backtesting, sino que tengan características sólidas de riesgo-recompensa.
- Enfóquese en métricas de rendimiento esenciales: Use métricas como elProfit Factor,Return to Drawdown,Ratio de Ganancia/Pérdida, yEstancamiento. Las estrategias que cumplen con estos umbrales tienen más probabilidades de ser robustas.
Ejemplo de configuración de criterios:
min_count_of_trades = 100
min_profit_factor = 1.5
min_return_to_drawdown = 2.0
Estos valores aseguran que la estrategia tenga un número razonable de operaciones y un buen equilibrio entre riesgo y recompensa.
6.Simulación de Monte Carlo
Las simulaciones de Monte Carlo pueden usarse para poner a prueba la resistencia de las estrategias bajo diferentes condiciones de mercado, problemas de ejecución y variaciones de parámetros.
- Aleatorizar las condiciones del mercado: Introducir spreads, slippage (deslizamiento) y omisión de entradas de operaciones de forma aleatoria para simular condiciones del mundo real y probar si la estrategia es robusta frente a ellas.
- Simular variaciones de parámetros: Introducir pequeños cambios aleatorios en los parámetros de la estrategia (como los periodos de los indicadores) y observar si la estrategia sigue funcionando bien. Una estrategia que cambia drásticamente su comportamiento con pequeños ajustes de parámetros probablemente tiene sobreajuste (overfitting).
Ejemplo de configuración para Monte Carlo:
enable_monte_carlo = true
count_of_tests = 20
spread_max = 30
slippage_max = 20
skip_entries_percent = 2
ind_params_max_change_percent = 20
Esta configuración ejecuta 20 pruebas, introduce variaciones de spread y slippage, y aleatoriza los parámetros de los indicadores para probar la resiliencia de la estrategia.
7.Usar Configuración de Backtest Conservadora
Asegúrese de que los supuestos del backtesting sean realistas, especialmente en lo que respecta a la ejecución de operaciones:
- Incluir slippage y spread: Asegúrese de que los backtests reflejen las condiciones reales de trading al contabilizar los spreads y el slippage.
- Usar stop-loss y take-profit realistas: No optimice estos parámetros excesivamente. Use rangos basados en expectativas de mercado razonables en lugar de ajustarlos minuciosamente a los datos históricos.
Ejemplo enExpress Generator:
spread = 20
slippage_max = 10
Esto tiene en cuenta las condiciones del mundo real donde las operaciones se ejecutan con una ligera desventaja en comparación con las condiciones perfectas.
8.Validación Cruzada
La validación cruzada es una técnica tomada del aprendizaje automático (machine learning) donde se utilizan múltiples subconjuntos de datos para pruebas y validación.
- Dividir los datos en múltiples partes: Rotar los periodos in-sample y out-of-sample varias veces. Cada división prueba una porción diferente de los datos, asegurando que la estrategia no esté sobreajustada a un único conjunto de condiciones.
EnExpress Generator, puede crear múltiples archivos de datos de diferentes periodos o mercados y probar la estrategia en cada uno de ellos.
9.Evitar el Snooping de Datos y la Sobre-Optimización
La sobre-optimización ocurre cuando una estrategia se ajusta excesivamente a los datos históricos. Esto puede resultar en una estrategia que se ajusta perfectamente a los datos pasados pero falla en los mercados reales.
- Establecer rangos de parámetros razonables: En lugar de ajustar una estrategia a niveles exactos, use rangos más amplios para indicadores como las Medias Móviles o los periodos de RSI.
- Evitar ajustar la estrategia después de cada fallo: Toda estrategia tendrá pérdidas, pero ajustar las reglas después de cada mal desempeño probablemente conducirá al sobreajuste.
10.Reevaluación Regular
Los mercados evolucionan, y una estrategia que funcionó bien en el pasado podría necesitar ajustes o incluso ser reemplazada con el tiempo. Reevalúe la estrategia periódicamente:
- Monitorear el rendimiento continuamente: Realice un seguimiento de métricas clave como el drawdown, el ratio de ganancia/pérdida y el factor de beneficio, y compárelos con el rendimiento histórico.
- Actualizar los datos regularmente: Actualice sus conjuntos de datos para asegurar que su estrategia esté trabajando con la información más reciente.
Conclusión
Para evitar el sobreajuste, es importante utilizar datos diversos, establecer criterios de aceptación realistas y someter su estrategia a pruebas de estrés con técnicas como la simulación de Monte Carlo y el forward testing. Mantenga las estrategias simples, concéntrese en la robustez y reevalúe continuamente el rendimiento a lo largo del tiempo. Al seguir estas prácticas, puede desarrollar estrategias de trading que funcionen bien tanto en mercados históricos como en mercados del mundo real.