Documentación

Aplicaciones

Última actualización el 6. 5. 2015 por Mark Fric

Optimización Walk-Forward

¿Qué es la optimización?

La idea detrás de una optimización es simple. Primero hay que tener un sistema de negociación, por ejemplo un simple cruce de medias móviles: Si la EMA(10) se cruza por encima de la EMA(20), vaya en largo; de lo contrario, vaya en corto.

En casi todos los sistemas de negociación hay algunos parámetros (periodos de los indicadores, constantes a comparar, etc.) que influyen en el rendimiento del sistema. La optimización consiste en encontrar los valores óptimos de estos parámetros (que proporcionen el mayor beneficio o la mejor relación rentabilidad/déficit u otro parámetro deseado).

Por ejemplo, ¿sería mejor utilizar la regla "La EMA(10) cruza por encima de la EMA(20)" o la regla "La EMA(15) cruza por encima de la EMA(50)"?
La optimización puede ayudarle a encontrar los valores que han dado mejores resultados en el pasado.

¿Qué es la optimización/análisis Walk-Forward?

La optimización Walk-Forward es generalmente un tipo especial de backtest que se compone de múltiples backtests más pequeños en periodos de optimización. Estos periodos de optimización se dividen a lo largo de todo el periodo de backtesting y siempre van seguidos de pruebas Out of Sample con los parámetros optimizados.

Se trata de una técnica en la que se optimizan los valores de los parámetros en un segmento pasado de datos de mercado y, a continuación, se verifica el rendimiento del sistema probándolo hacia adelante en el tiempo en datos posteriores al segmento de optimización, y el proceso puede repetirse en segmentos temporales posteriores.

Cómo funciona la optimización Walk-Forward

En la optimización walk-forward, los datos se dividen en un número configurable de periodos (5 en este ejemplo). Cada periodo consta de una parte de optimización y una parte de ejecución.

El programa comienza con el periodo de optimización 1. Ejecutará la optimización simple en el periodo de optimización 1 para encontrar los mejores valores de los parámetros. Estos valores de los parámetros se aplican al periodo de ejecución 1 - la estrategia se negocia con los parámetros optimizados encontrados en el paso anterior.

Al final del periodo de ejecución 1, el sistema vuelve a ejecutar la optimización simple en una parte de los datos marcados como periodo de optimización 2. Encuentra el mejor conjunto de valores de los parámetros y se utilizan de nuevo para negociar en el periodo de ejecución 2. Encuentra el mejor conjunto de valores de parámetros y los vuelve a utilizar para negociar en el periodo de ejecución 2.

Esto continúa hasta el periodo 5, que es también el final de los datos históricos utilizados en la prueba.

La optimización Walk-Forward simula cómo podría trabajar con la estrategia durante la negociación real - puedes optimizarlo con algunos datos históricos y luego operar con los valores óptimos. Transcurrido un tiempo, puedes volver a optimizarlo y permitir que vuelva a operar.

¿Qué te dice la optimización/análisis Walk-Forward?

Básicamente te dice si la estrategia es lo suficientemente sólida y si su rendimiento puede mejorarse reoptimizándola.
Si el rendimiento de la estrategia es peor durante la reoptimización que el de la estrategia original no optimizada, es una gran señal a tener en cuenta para el ajuste de curvas.

Por otro lado, si la estrategia optimizada Walk-Forward obtiene mejores resultados que la versión no optimizada con los mismos datos, significa que :

  1. Su estrategia se beneficiará de la optimizaciónpor lo que debe reoptimizarlo periódicamente para obtener el mejor rendimiento.
  2. También significa que el La estrategia es lo bastante sólida para hacer frente a los cambios del mercado. (utilizando la reoptimización) y hay muchas posibilidades de que funcione también en el futuro.

Ejemplo de optimización Walk-Forward en StrategyQuant

Realizar la optimización Walk-Forward en StrategyQuant es sencillo, en las próximas líneas mostraré el proceso completo.

Estrategia de optimización
Por simplicidad usaremos la estrategia EMA Cross en este ejemplo. Tenga en cuenta que esta estrategia en la forma básica no es rentable, y reoptimiation no le ayudará, pero es lo suficientemente simple como para demostrar cómo funciona la optimización.

Puede descargar la estrategia utilizando el siguiente enlace - Haga clic con el botón derecho del ratón y elija Guardar como...

EMA Cross estrategia.str

Contenido:

  1. Cargar una estrategia de optimización
  2. Ajuste de los valores de optimización
  3. Configuración de los recorridos walk-forward
  4. Comprobación de los resultados
  5. Interpretación de los resultados
  6. Descripción de los componentes de la puntuación avanzada del WF

Paso 1: Cargar una estrategia de optimización

En primer lugar, debe cambiar a la ventana del Optimizador y cargar la estrategia que desea optimizar.

Para este ejemplo usaremos la estrategia simple EMA_Cross que va en largo cuando la EMA más rápida cruza por encima de la EMA más lenta, y va en corto cuando la EMA más rápida cruza por debajo de la EMA más lenta. Después de cargar la estrategia, se añade también como estrategia Original al banco de datos de resultados de Optimización.

Puede hacer doble clic en la estrategia Original y luego ir a Resultados -> Código fuente para ver sus reglas.

Asegúrese de comprobar el Poner valores a los parámetros para que vea que las variables pLongEMA_1, pLongEMA_2, pShortEMA_1, pShortEMA_1 se utilizan para almacenar los parámetros del indicador. En nuestra optimización trataremos de encontrar los valores óptimos de estos parámetros.

Todavía hay un pequeño problema. Podemos ver que la estrategia utiliza diferentes parámetros para la dirección larga y corta. Podemos usarlo así si queremos encontrar los valores óptimos de forma independiente para el lado largo y corto, pero para nuestro ejemplo nos gustaría utilizar el mismo parámetro para el lado largo y corto.

Podemos hacerlo en programa Herramientas -> Opciones -> Parámetros de la estrategia.

Si marca la primera casilla, utilizará los mismos parámetros para la dirección larga y corta (siempre que las reglas sean las mismas). Haga clic en OK para guardar los ajustes y volver al código fuente.


Paso 2: Establecer los valores de optimización

Para configurar los valores que se optimizarán tenemos que ir a Configuración -> Parámetros

Aquí puede ver la lista de todos los parámetros de la estrategia que están disponibles para la optimización. Optimizar significa simplemente probar diferentes valores de los parámetros de entrada.

Para cada parámetro que desee optimizar tienes que marcar la línea del parámetro y elegir los valores Start, Stop y Step. El optimizador iterará el valor desde Inicio hasta Parada, tomando Pasos. El valor original también es configurable, se utilizará para volver a probar la estrategia original. Puede utilizar este valor para comparar el rendimiento de los nuevos resultados con la configuración "original".

En Número de pruebas nos indica cuántas pruebas hay que realizar para probar todas las combinaciones de los valores.

¡Atención!
Es posible que su tabla de parámetros contenga muchos más parámetros, podría tener este aspecto:

Esta es otra poderosa característica de StrategyQuant. Le permite optimizar no sólo los parámetros de la estrategia, sino también otras opciones de negociación, tales como el número de operaciones a tomar por día, o lo que debería ser el rango de tiempo para el comercio. Estos ajustes son normalmente una parte de las opciones de estrategia, pero también puede optimizar sus valores.

Si no desea utilizarlos y verlos en la tabla Parámetros, vaya de nuevo a Herramientas -> Opciones -> Parámetros de la estrategia y desmarque la casilla Añadir parámetros para las opciones de estrategia.


Paso 3: Configurar las ejecuciones walk-forward

Tenemos que especificar también los ajustes de walk-forward. En este ejemplo utilizaremos 30% Periodo fuera de muestra (Run) y 6 pasos de reoptimización.

Fuera de muestra %
significa cuánto queda de todo el periodo para la ejecución. Si lo fijamos en 30 %, significa que en cada periodo se utilizan 70% de los datos para la optimización, y 30% se utilizarán para operar utilizando los valores optimizados.

Recorridos Walk Forward
esto significa cuántas ejecuciones de optimización habrá, lo que significa cuántas veces reoptimizaremos la estrategia.

También es posible especificar los periodos de optimización (En Muestra) y ejecución (Fuera de Muestra) por días exactos, puede hacerlo marcando Definir número específico de días.


Paso 4: Comprobar los resultados

La optimización Walk-Forward lleva más tiempo que una simple, porque hay 6 (o más) pasos de optimización en lugar de sólo uno.

Cuando termine, veremos que sólo tenemos dos resultados en el banco de datos: la estrategia original y el resultado Walk-Forward.

Si hacemos doble clic en el resultado de la base de datos, se abrirán los resultados de la estrategia.

Podemos ver que la estrategia falló en la prueba walk-forward, basándonos en nuestros ajustes de puntuación de robustez.

La puntuación de robustez es totalmente personalizable. Podemos establecer todas las condiciones que queramos vigilar en la tabla de componentes de la puntuación de robustez (1) y fijar sus valores límite.

El valor principal del umbral de puntuación de la robustez (2) indica cuántas de estas puntuaciones utilizadas deben superarse para que el resultado de la WF se considere satisfactorio.

A la derecha de esta tabla podemos comprobar los resultados para cada optimización y periodo de ejecución:

Puede ver que sólo 2 de las 6 tiradas terminaron en beneficio.

También podemos consultar el gráfico de renta variable:

La línea azul representa la estrategia reoptimizada, mientras que la línea gris más fina representa la estrategia original no optimizada.


Interpretación de los resultados

¿Cómo debemos interpretar estos resultados?

En primer lugar, está claro que esta estrategia concreta no da mejores resultados cuando se utiliza la reoptimización.
Seguramente esta estrategia no es rentable en su forma original y NO SE HIZO RENTABLE MEDIANTE REOPTIMIZACIÓN.

Pero, ¿y si reoptimizáramos la estrategia más a menudo? ¿O si vamos a utilizar diferentes Fuera de la muestra %? ¿Cómo podemos saber cuál es el mejor período de reoptimización para la estrategia?

Aquí es donde Matriz Walk-Forward entra en juego - consulte el próximo artículo.

 

Consejo: consulte también el artículo Descripción de los valores avanzados de Walk-Forward para la descripción de varios valores que pueden ser utilizados en filtros o mostrados en el banco de datos.

 

 

¿Le ha resultado útil este artículo? El artículo era útil El artículo no era útil

Suscríbase a
Notificar a
0 Comentarios
Feedbacks de Inline
Ver todos los comentarios