Proceso de creación de estrategias (forex)

Crear una estrategia rentable para el EURUSD

por Mark Fric
En este artículo explicaré el proceso completo paso a paso para construir una estrategia rentable y robusta para el EURUSD, incluyendo múltiples pasos de diferentes pruebas de robustez.
También hay otra variación de este artículo sobre Proceso de creación de estrategias para futuros E-Mini S & P 500.

Cuando se utilizan técnicas de aprendizaje automático como la programación genética la parte más importante del proceso de elaboración de una estrategia es comprobar su solidez para garantizar que no se ajusta a la curva de los datos históricos.
Utilizo el doble filtro OOS más las pruebas de robustez más la prueba de la matriz Walk-Forward.

 

 

Entradas

Las únicas entradas que utilizo son mis expectativas de la estrategia - Quiero construir una estrategia para EURUSD que sea rentable y tenga el menor drawdown posible. Quiero que la estrategia sea lo suficientemente robusta para que funcione también en otros símbolos (GBPUSD) y quiero que pase la prueba de matriz Walk-Forward para asegurarme de que la reoptimización funciona en esta estrategia.


Proceso de elaboración de la estrategia

  1. Generar una gran reserva de candidatos potenciales
  2. Primer filtro - Comprobación de fuera de muestra (OOS)
  3. Segundo filtro: nuevas pruebas y segunda comprobación de OOS
  4. Tercer filtro - Comprobación GBPUSD
  5. Cuarto filtro - Pruebas de robustez
  6. Quinto filtro - Prueba de la matriz Walk-Forward

Generar una gran reserva de candidatos potenciales

En el primer paso simplemente tengo que generar un gran grupo de estrategias potencialmente "buenas" que luego comprobaré para ver si son robustas. Quiero que todas mis estrategias iniciales sean rentables y robustas (hasta cierto punto), por lo que empleo varios filtros también en esta primera fase.

Mi configuración para este paso
Puede descargar la configuración que utilizo en este paso utilizando el siguiente enlace. Haga clic en el enlace con el botón derecho del ratón y seleccione Guardar enlace como...
A continuación, en StrategyQuant utilice Cargar configuración para cargar este archivo de configuración en el programa.

construir_eurusd_estrategia.xml

Explicación de los ajustes
En primer lugar, genero todas mis estrategias en múltiples símbolos. Mi objetivo es encontrar una buena estrategia para EURUSD, pero quiero que mi estrategia sea robusta - así que quiero que sea rentable también en GBPUSD. Agrego GBPUSD a los datos adicionales, por lo que ahora la estrategia se pondrá a prueba en ambos símbolos.

Imagen 1: Configuración de los datos

Utilizaré datos del 1.1.2007 al 30.6.2011, es decir, 4 años y medio. El resto de los datos se dejarán para posteriores pruebas de OOS.

Utilizaré el modo Evolución Genética. La idea es hacer una población de 200 estrategias, evolucionarlas durante 30 generaciones y volver a empezar desde cero. De esta manera evitaré encontrarme en un callejón sin salida durante la evolución y las mejores estrategias se almacenarán continuamente en el banco de datos.
También puede ver que la única condición para la población inicial es que debe realizar al menos 100 operaciones. No es necesario que sea rentable - la evolución genética debería ser capaz de mejorarla.

Imagen 2: Opciones genéticas

La última pieza importante de la configuración son las opciones de Ranking. Establecí Databank para almacenar 2000 mejores estrategias, porque quiero tener una buena base para el posterior proceso de selección. También he establecido los criterios de selección a Return / Drawdown ratio - este es mi favorito. Puede utilizar otros criterios de selección, tal vez obtendrá mejores resultados.

Imagen 3: Opciones de clasificación

Othe de las cosas más importantes es establecer los criterios de filtro inicial para las estrategias en Databank. Quiero considerar sólo las estrategias que son al menos $2000 en el beneficio, tienen Return / DD relación> 3, al menos 300 operaciones Y Return / DD relación de una cartera de ser al menos 2,5.

Debido a que estoy probando las estrategias en dos símbolos - EURUSD y GBPUSD, los resultados de la cartera para las estrategias también serán calculados. Usando esta condición simplemente especifico que el rendimiento de la cartera no será mucho peor que el rendimiento en sólo EURUSD, y el programa descartará todas las estrategias con mal rendimiento de la cartera.

Ahora sólo tenemos que darle al Inicio y deja que el programa haga el trabajo.
Recuerde que queremos generar al menos 2000 estrategias "buenas" antes de continuar con el proceso de filtrado.

Dependiendo de la configuración y la velocidad de su ordenador podría tardar varias horas o incluso días, así que sea paciente. Si el programa no produce ninguna estrategia para un tiempo muy largo, tal vez deberíamos cambiar a un marco de tiempo más alto - H4 o D1, o disminuir las restricciones.


1. Primer filtro - Comprobación de fuera de muestra (OOS)

Cuando tenga 2000 estrategias potencialmente buenas en el banco de datos, detendré la generación e iniciaré el proceso de filtrado.
Voy a aplicar el primer filtro - mediante la eliminación de todos los sistemas que tienen mal Out of Sample rendimiento. Puedo hacerlo rápidamente, simplemente ordenando las estrategias en Databank y eliminando los que tienen OOS beneficio menor que $500.

Imagen 4 Banco de datos con un conjunto de estrategias ordenadas por beneficio neto OOS

Este primer paso suele eliminar una gran parte de las estrategias, por lo que de los 2.000 candidatos iniciales nos quedamos con unos 1.500.


2. Segundo filtro - nueva prueba y segunda comprobación de OOS

En este paso voy a volver a probar todas las estrategias utilizando el Precisión de 1 minuto en el periodo desconocido fuera de la muestra.
Utilicé la precisión del marco temporal seleccionado en la etapa de construcción para que las pruebas fueran lo más rápidas posible, pero antes de seguir evaluando quiero asegurarme de que las pruebas retrospectivas sean realmente fiables, así que vuelvo a probar todas las estrategias con una precisión mayor.

Volver a probar las estrategias es sencillo: simplemente seleccionaré todas las estrategias del banco de datos y haré clic en el botón Volver a probar. Esto moverá todas las estrategias a una pestaña Retest. También voy a confirmar el diálogo preguntando si se debe utilizar la configuración de la construcción para Retest

A continuación, ampliaré el periodo de datos hasta el final de los datos disponibles. Las estrategias se generaron con datos del 1.1.2007 al 30.6.2011. 2011, ahora voy a volver a probar las estrategias en los datos hasta el 30.6.2013 y establecer fuera de la muestra período de 2.7.2011 a 28.6.2013.
Tenga en cuenta que esto volverá a probar las estrategias en la nueva parte desconocida de los datos, y la parte OOS mostrará el rendimiento de la estrategia durante el último año y medio.

Imagen 5: Ajuste de la precisión de la prueba a 1 minuto

Como también tengo otra fuente de datos históricos del EURUSD (datos gratuitos descargados de Dukascopy) los añadiré a los datos adicionales para comparar el rendimiento en ambas fuentes de datos del EURUSD.

La prueba podría tomar algún tiempo y después de que se hace voy a eliminar una vez más todo el sistema que tienen mal rendimiento fuera de la muestra. Una vez más puedo ordenar las estrategias en Databank por Net Profit (OOS) y eliminar los que tienen OOS beneficio menor que $500.


3. Tercer filtro - Comprobación GBPUSD

En este paso voy a comprobar el rendimiento de las estrategias en el símbolo GBPUSD. Iré a Results -> Equity chart, cambiaré el gráfico a GBPUSD/H1 o a Portfolio y pasaré por las estrategias una por una mirando el gráfico para GBPUSD.

Imagen 6: Ejemplo de buen y mal comportamiento del GBPUSD

Voy a considerar sólo las estrategias que muestran al menos cierta rentabilidad en GBPUSD. La curva de equidad no necesita ser perfecta, pero debe estar creciendo sin drawdowns extremos.

Este filtro es muy sin embargo - por lo general vamos a encontrar sólo unas pocas estrategias que pasan esta prueba.
Así que de 2000 iniciales solemos pasar a 5-15 estrategias.


4. Cuarto filtro - Pruebas de robustez

Después de eliminar todas las estrategias con mal rendimiento en GBPUSD quedan menos de 10 estrategias que tienen un buen rendimiento IS y OOS, así como un rendimiento satisfactorio en GBPUSD. Ahora voy a volver a probar las estrategias de nuevo con pruebas de robustez y Money Management para ver cómo cada una de las estrategias maneja pequeños cambios en las entradas y para poder comparar las estrategias entre sí.

Cambiaré la gestión del dinero de tamaño fijo a cantidad fija, dejando que cada estrategia arriesgue $100 por operación. Esto permite comparar mejor las estrategias, porque arriesgan la misma cantidad por operación.

Imagen 7: Ajustar la gestión monetaria a una cantidad fija

En las pruebas de robustez utilizo al menos 20 simulaciones y pruebo la estrategia para todo tipo de situaciones de estrés. Tras configurar la prueba de robustez, vuelvo a probar las estrategias.
Esta vez será rápido porque sólo quedan unas pocas estrategias en el Banco de Datos.

Imagen 8: Pruebas de robustez

Cómo evaluar las pruebas de robustez
Las pruebas de robustez nos muestran cómo puede comportarse la estrategia en la realidad, cuando hay operaciones perdidas, datos históricos diferentes, etc. Estoy buscando estrategias que tengan valores aceptables para Net Profit y Drawdown en 95% nivel de confianza.

Imagen 9: Resultados de las pruebas de robustez

En el ejemplo anterior podemos ver los resultados de robustez de dos estrategias. La estrategia de la izquierda tiene un beneficio aceptable, pero la reducción se ha más que duplicado en comparación con el resultado original.
La estrategia de la derecha también tiene beneficios en un nivel aceptable y la reducción casi no ha variado.

En este paso elegiré sólo 1-3 estrategias finales que serán sometidas a la siguiente prueba de robustez.
Estas estrategias finales se seleccionan en función de los mejores resultados en las pruebas de robustez, la rentabilidad global y también la simplicidad: quiero que las reglas de la estrategia sean lo más sencillas posible y que las reglas de negociación tengan algún sentido.


5. Quinto filtro - Prueba de la matriz Walk-Forward

Nos quedan unas pocas estrategias y podemos realizar la prueba definitiva de robustez: la prueba de la matriz Walk-Forward. La matriz WF es simplemente una matriz de optimizaciones walk-forward con diferente número de ejecuciones y periodos de ejecución.

Si la estrategia pasa la prueba de la matriz Walk-Forward significa que con la ayuda de la reoptimización de parámetros la estrategia se adapta a una amplia gama de condiciones de mercado Y también que la estrategia no es curva ajustada a datos particulares - ya que con la reoptimización funciona en muchos períodos de tiempo diferentes.

Además, la prueba WF Matrix también nos indica si la estrategia debe reoptimizarse permanentemente y cuál es el periodo de reoptimización más óptimo.

La prueba de la Matriz Walk-Forward tiene que hacerse para cada estrategia por separado. Voy a cargar mi estrategia para Optimizer y seleccione Walk-Forward Matrix opción. También seleccionaré los pasos para las ejecuciones y los porcentajes de OOS. StrategyQuant pasará por todas estas combinaciones, realizando la optimización Walk-Forward de la estrategia.

Imagen 10: Configuración de la matriz Walk-Forward

Parametrización de la optimización
Para que la optimización tenga sentido hay que configurar los parámetros de la estrategia que se van a optimizar. Cada estrategia utiliza una lógica diferente y tiene parámetros distintos, por lo que tienes que configurar la optimización de forma diferente.

Imagen 11: Optimización de parámetros

Esta estrategia es relativamente simple, por lo que voy a optimizar sólo el valor de Stop Loss y el coeficiente de arrastre del stop.
No es necesario optimizar todos los parámetros, sino sólo los que más influyen en el rendimiento de la estrategia.

Ahora puedo empezar la optimización de WF Matrix. Esto podría ser un proceso largo que podría tomar varias horas - dependiendo de la configuración y el número de pasos y parámetros optimizados y la velocidad de su ordenador.

Evaluación de la matriz Walk-Forward
Cuando termine la optimización, haré clic en el resultado de la matriz Walk-Forward en Databank para ver los detalles.

Imagen 13: Resultados de la matriz Walk-Forward

El resultado final es que la estrategia ha superado la prueba de robustez de la matriz Walk Forward. El gráfico de puntuación 3D muestra que 16 de las 24 combinaciones han superado nuestros criterios (con la configuración por defecto).
No es necesario que la estrategia pase todas las combinaciones, estoy buscando un área de 2×2 o 3×3 en la que la mayoría de las combinaciones hayan pasado - éste será el grupo de las mejores combinaciones de reoptimización. En este caso, puedo ver que 10 ejecuciones con 30% Fuera de Muestra es una de las mejores combinaciones, porque está rodeada de otras combinaciones que también pasaron.

Cuando compruebo el gráfico de optimización Walk-Forward puedo ver que la estrategia sigue siendo rentable también durante la reoptimización.

Imagen 14: Gráfico de optimización Walk-Forward

La matriz Walk Forward también me proporciona otra información importante: ¿con qué frecuencia debemos reoptimizar la estrategia?
Para nuestra combinación seleccionada de 15 ejecuciones con 30% Fuera de Muestra:


Resumen

Describí mi proceso completo de trabajo con StrategyQuant, que dio lugar a algunas estrategias nuevas e interesantes.
Puede probarlo usted mismo, inspirarse y, posiblemente, mejorar el proceso con sus propias ideas, que podrá compartir en nuestro foro.

Posibles mejoras del proceso - puede intentar buscar estrategias por separado para la dirección larga y corta. Cada dirección tiene su propia dinámica, y diferentes estrategias para largo y corto podría devolver mejores resultados.
No mencioné Mejorador - es una potente herramienta que le permite buscar una variación mejor de su estrategia actual, si aún no está satisfecho con el rendimiento.

Sólo tenga en cuenta - el punto no es encontrar la estrategia que es perfecto en los datos históricos. Esta es una receta para el desastre, porque la estrategia excesivamente optimizado está garantizado que falle en el comercio real.
Nuestro objetivo debe ser encontrar una estrategia que sea robusta a través de diferentes datos y/o símbolos, porque esto significa que tiene una ventaja real sobre el mercado.

Suscríbase a
Notificar a
1 Comentario
Más antiguo
Más reciente Más votados
Feedbacks de Inline
Ver todos los comentarios
Mario Gordon
Mario Gordon
2. 1. 2019 18:10

¿Cómo podrían ser los ajustes en SQ4? Veo que tiene nuevas características y será genial para cargar los ajustes para una buena generación de estrategias.

Seguir leyendo