2 votos

Backtesting con un enfoque walkforward

Estoy montando un backtesting utilizando un modelo de optimización walkforward para saber si una estrategia de trading funciona bien o no y me gustaría aclarar algunas dudas:

En primer lugar, ¿cuál es la anchura correcta de la ventana (periodo de entrenamiento + de prueba) que hay que tener en cuenta (hay algún método estándar o empírico para averiguarlo)?

¿Qué parte de la ventana debe reservarse para la formación y cuál para las pruebas (80%/20% , 50%/50%)?

¿Es correcto que el periodo de desplazamiento de la ventana sea igual a la duración del periodo de prueba?

|--------------------------------------------------|   <--- available time series data
|----------|-----|     <--- time window
      |----------|-----|
  ^        ^         ^      
  |        |         testing data
  |        training data
  window shift period

Para cada conjunto de datos de entrenamiento, la estrategia se optimizará en función de determinados parámetros. A continuación, la estrategia optimizada se utilizará en el conjunto de datos de prueba correspondiente.

Este enfoque podría producir un conjunto diferente de valores de parámetros optimizados para cada ventana de tiempo.

Entonces, ¿cuál es el mejor indicador o método para saber si una estrategia ha funcionado bien y cuál es la mejor manera de elegir los valores de los parámetros entre los que resultan de la optimización de varias ventanas de tiempo?

Gracias por su ayuda

P.D.: ¡cualquier enlace/consejo sobre buenos artículos o libros sobre este tema en particular se agradece!

1voto

Hamish Gibson Puntos 11

Así que, para empezar, no hay una "mejor ventana de tiempo" para el backtesting. Yo diría que depende de sus datos. Si está entrenando un modelo ML que requiere grandes cantidades de datos para entrenar, entonces debería asignar una mayor proporción de sus datos de series temporales para entrenar el modelo. Aunque esto puede dejarle con pocos datos de prueba durante su backtest, siempre puede anualizar sus rendimientos u observar cómo se comportó el mercado en general durante el mismo período.

Yo me opondría a tener varios conjuntos de datos de entrenamiento. Si se entrena el algoritmo en varios segmentos, se podría producir un exceso de ajuste o un sesgo de supervivencia. Usted quiere que su algoritmo generalizar durante todo el periodo, en lugar de especializarse en sólo uno período.

Yo insistiría en dejar el segmento final que vale n% Esto se convierte en sus datos de backtest y esencialmente en su conjunto de pruebas a todos los efectos. El conjunto anterior se puede hacer como se desee para el entrenamiento. Un axioma en ML es la división 60/40 o 70/30 para el entrenamiento/prueba. Una vez más, depende de que necesites suficientes datos para entrenar.

Puedes utilizar varias métricas basadas en ML como factores de evaluación, ya que estás ajustando una regresión podrías utilizar el RMSE por ejemplo. También podría utilizar más métricas basadas en las finanzas para evaluar su algoritmo empíricamente. Por ejemplo, alfa, beta, deficiencia de reducción máxima (MDD) o SR. Espero que esta respuesta sea de ayuda.

Finanhelp.com

FinanHelp es una comunidad para personas con conocimientos de economía y finanzas, o quiere aprender. Puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X