Vamos a realizar en este artículo diferentes test de robustez (distintas pruebas de estrés) a las estrategias generadas en StrategyQuant X para comprobar la fiabilidad estadística que tenemos en los datos desconocidos fuera de muestra.
Generación de estrategias sobre las estrategias para la obtención de datos en los diferentes activos. En esta prueba crearemos 1000 estrategias para el DAX30 solo en operaciones largas.
Builder, creación de las estrategias
Generación de estrategias mediante el método aleatorio para obtener la máxima diversidad de tipo de indicadores y estrategias y no influir en la búsqueda genética en la generación de las estrategias.
- Nº de estrategias de la prueba 1000.
- Criterio Función Fitness Retorno / Drawdown.
- Criterio de selección.
Este es el primer test dónde probamos las estrategias sin ningún tipo de test en los datos reservados fuera de muestra desde 2019 hasta la fecha actual 27/09/2011, 3 años de datos.
Debido al sesgo alcista en los índices tenemos un alto porcentaje de estrategias que pasan los datos reservados para en vivo.
Test Robustez en otros Marcos de tiempo
Esto probará el comportamiento de la estrategia cuando la prueba comience en una barra de inicio diferente. Es obvio que una buena estrategia no puede ser sensible a la barra en la que inicie la prueba.
El test que viene en las pruebas Montecarlo las simulaciones con un cambio de máximo de 100 realiza pocas desviaciones. El objetivo de esta prueba de estrés es probar distintos comienzos de barra en sesiones (como ajustar pequeñas desviaciones del periodo de tiempo original.)
Para ello utilizaremos el test de probar en 6 distintos periodos tiempo al original.
- Periodo de tiempo original 60 minutos.
- Probar en 55 minutos.
- Probar en 50 minutos.
- Probar en 45 minutos.
- Probar en 65 minutos.
- Probar en 70 minutos.
- Probar en 75 minutos.
Test Robustez Otros Mercados
En realidad, debido a que cada mercado tiene sus propias características, volatilidad diaria, etc., no será fácil encontrar una estrategia que tenga el mismo rendimiento perfecto en múltiples símbolos usando solo un conjunto de configuraciones.
Podemos estar satisfechos si la estrategia funciona en otros mercados con al menos cierto grado de rentabilidad, o con una ligera pérdida.
Por ejemplo, las estrategias del GER30 probarlas en el USA100 y USA30 que tienen un comportamiento parecido.
- Profit Factor >= 1.20 en uno de estos mercados.
Test de Robustez MC Indicadores
Cada estrategia utiliza parámetros, como el período de un indicador o una constante que se utiliza en comparación. Esta prueba verifica la sensibilidad de la estrategia a un pequeño cambio en el valor del parámetro. La probabilidad de cambio es una probabilidad de que cualquier parámetro cambie su valor. El cambio máximo de parámetro es el porcentaje máximo al que el parámetro cambia su valor. Por ejemplo, si establece el Cambio máximo de parámetro en 10%, entonces un parámetro con valor 60 se puede cambiar aleatoriamente a un rango 54 – 66 (+ – 10% de su valor original de 60).
- Probabilidad de cambio 20%.
- Máximo cambio permitido 30%.
- Beneficio neto MC TEST 95% > 50% Beneficio neto de la original.
Un cambio del 50% al 70% elimina más estrategias, pero NO mejora el porcentaje de estrategias que pasan el fuera de muestra, entonces mejor dejar el 50% ya que podríamos estar descartando estrategias robustas.
El Test del Tick por ATR elimina más pero tampoco mejora el porcentaje que pasa en los datos desconocidos, mejor realizar el original de SQX del ATR por barra.
Test Robustez MC Salidas
Cada estrategia lleva unos valores diferentes de tipo de salida como a X barras, distintos valores de Stop de pérdida en puntos o ATR o distintos valores de protección de beneficios. Este test cambia una pequeña variación basada en porcentaje de los valores originales y la estrategia tiene que seguir comportándose bien.
- Probabilidad de cambio 20%
- Máximo cambio permitido 30%
- El beneficio neto en el nivel 95% de confianza deberá ser >= 70% del beneficio original.
- 200 simulaciones con datos de 1 minuto.
Test Robustez MC Precios por ATR (Barra) y (Tick)
Un caso muy común de ajuste de curvas es cuando la estrategia depende demasiado de los datos del historial. Esta opción comprueba el comportamiento de la estrategia ante un cambio en los datos históricos.
La probabilidad de cambio establece para cada barra la probabilidad de que cambie el precio de apertura, máximo, mínimo o cierre. El cambio de precio máximo es un valor porcentual del cambio en relación con el ATR (rango verdadero promedio).
Entonces, si, por ejemplo, el precio de cierre se elige aleatoriamente para cambiar, el valor de ATR es de 10 pips y el cambio de precio máximo es del 20%, entonces el precio puede cambiar en + – 2 pips.
Test de ATR por Barra.
- Probabilidad hacia arriba que cambie el precio 50%.
- Máximo cambio por arriba 30% del ATR.
- Probabilidad hacia debajo que cambie el precio 50%.
- Máximo cambio hacia abajo 30% del ATR.
Test de ATR por Tick.
- Máximo cambio un 10% del Tick.
Conclusiones: El test de Tick elimina más estrategias, pero no mejora los datos fuera de muestra por lo tanto el test inicial de barra ATR parece más adecuado ya qué no eliminará todas las estrategias del banco de datos que puedan ser robustas.
Test Robustez Permutación de los parámetros del sistema
La idea detrás de la Permutación de parámetros del sistema es que debemos probar TODAS las combinaciones de parámetros posibles (es decir, optimizar la estrategia con todas las combinaciones posibles), y solo a partir de los datos de todas las ejecuciones de optimización podemos hacer algunas suposiciones sobre el desempeño realista de la estrategia. En esta otra entrada te explico más a fondo el desarrollo de este test de robustez.
Es recomendable que los valores de la estrategia que se encuentren lo más cercana a su mediana para estimar el rendimiento futuro y no caer en un sobreajuste.
Optimizaremos los periodos, constantes, otros parámetros y las salidas Stop, TP…etc
Test Walk Forward Matrix
El caminar hacia adelante la estrategia diseccionando los datos en distintas ventanas y aplicar los distintos parámetros a cada ventana futura es una de las pruebas más robustas ya que nos muestra la capacidad de que la estrategia se comporte bien con distintos rangos de parámetros. Una matriz extensa con distintos porcentajes tanto de entrenamiento como de validación nos muestra que la estrategia es lo suficientemente robusta como para pasar esta prueba.
Según los datos probados en esta prueba nos elimina las estrategias con un alto porcentaje de acierto las que fallarán con datos desconocidos y también las que pasan los datos reservados en esta prueba lo hacen con solidez.
- Rangos de fuera de muestra 5% – 95% – 5%.
- Walk Forward Runs 5 – 40 – 5.
- Distribución de los valores 30% arriba, 30% abajo, pasos de 30.
Un conjunto de al menos 16 celdas entre filas y columnas deben se superar las condiciones establecidas en esta prueba señaladas aquí debajo.
Gráfica de la equidad original en (gris) contra el resultado del WFM en la ventana 10 test con un rango de fuera de muestra del 35%.
Estadísticas del rendimiento de la estrategia en el conjunto de datos de entrenamiento.
Es normal que la estrategia tenga una buena línea de equidad ya que la hemos probado en los datos de entrenamiento. Tampoco es muy diferente a la original porque simplemente hemos establecido unas desviaciones de los parámetros originales para descartar estrategias que no sean robustas.
Test Datos fuera de muestra.
Una vez descartadas todas las estrategias de los diferentes test de robustez.
Obtenemos un 78% de probabilidad que nuestras estrategias creadas con el Builder sigan funcionando en datos desconocidos.
Si las juntamos en una cartera obtenemos el siguiente resultado.
La máxima pérdida en la crisis del COVID 19 es porqué son estrategias de solo largos en el DAX30.
Ahora habría que realizar los mismos test de robustez para obtener pruebas estadísticas con solo cortos para descartar que sea una ilusión de un sesgo alcista en los índices o con otros activos.