4 votos

Backtesting con los Datos Históricos Simulados?

Las estrategias de negociación que se va a hacer el backtest bien son los que elegir a los ganadores del pasado. Por ejemplo, si una estrategia de negociación simplemente compró las acciones de apple sería backtest muy bien. El sesgo es fácil de detectar en esta situación específica, pero para las complejas estrategias de negociación podría haber escondido el sesgo de este tipo.

Me pregunto si es posible eliminar el sesgo por backtesting de una manera diferente. ¿Qué pasa si usted utiliza los datos históricos para construir un modelo estadístico de mercado o de parte de ella. Este modelo podría incluir la tasa libre de riesgo, histórico de las volatilidades y las correlaciones entre las poblaciones, etc. A continuación, puede ejecutar una simulación de monte Carlo donde backtest contra múltiples, estadísticamente generado datos históricos. Usted puede usar esto para desarrollar estadísticas acerca de cómo la estrategia funciona en un sentido más amplio.

Alguna idea sobre esta idea?

-- Referencia : https://www.quantopian.com/posts/backtesting-thoughts

3voto

dancing clown Puntos 98

Has comprobado Blanco "prueba de la realidad" (White, H. Una verificación de la realidad para el espionaje de datos. // Econometrica. 2000. № 68. С. 1097-1126.)?

De todos modos, cuando se utiliza de Monte-Carlo, siempre se tiene una variación de "la doble hipótesis de" problema, señalado por la Fama: primera hipótesis es que el modelo de mercado es la derecha, y el segundo - que el comercio de la regla de la prueba (en contra de su modelo de mercado) que realmente añade valor. Positiva respuesta a la segunda pregunta sólo tiene sentido cuando la respuesta a la primera es de estricta 'sí'. Y es la primera pregunta falsificable? Tal vez, no.

Así, sus resultados podrían ser interesantes para publicar, pero peligroso para el comercio, en mi opinión.

0voto

Zitrax Puntos 3443

Backtesting, para mí, implica necesariamente la prueba en contra (realizada) de la historia de los valores en cuestión. Wikipedia también parece apoyar esta interpretación. http://en.wikipedia.org/wiki/Backtesting

Esta historia de la dimos cuenta de los precios, de los valores en cuestión, fue generado por un determinado precio "modelo" o de distribución. Si usted prueba contra otro hipotético conjunto de los precios de los valores, a continuación, su no backtesting. Se están probando en contra de una liquidación de precios que podría o no ocurrir en el futuro.

Así que mi respuesta a su pregunta específica es que la pura backtesting (en comparación a la muestra, fuera de la muestra) de los métodos no siempre completamente guardia contra el espionaje de datos de sesgo.

0voto

Nick Klauer Puntos 2837

Según yo, backtesting se reanuda a un proceso de validación de la optimización del método empleado para establecer los parámetros de su modelo.

En tal caso, usted puede realizar múltiples de la muestra de pruebas retrospectivas, cada uno con una diferente de la muestra del periodo dedicado a la optimización de los parámetros y un segundo periodo a prueba la estrategia.Para cada período de prueba de entrada de nuevo (optimizado) parámetros en su estrategia de negociación. A continuación, mediante la observación de los resultados que usted puede ver si su optimización (y su modelo) es estable y correcta sobre un horizonte de largo. Además, al hacerlo, sus pruebas retrospectivas nunca están basados en "en la muestra" los datos y eliminar el sesgo. Permite evaluar la estabilidad de la optimización de método y no de un escenario en particular.

Esta metodología se denomina optimización de Caminar hacia adelante, se puede leer el siguiente libro para saber más sobre él :

La Evaluación y Optimización de Estrategias de Negociación, 2a Edición por Robert Pardo ISBN: 978-0-470-12801-5 Wiley comercio.

Para una visión rápida : Wiki enlace.

Ps : yo no uso datos simulados basado en otro modelo estadístico porque va a agregar otra incertidumbre en la evaluación (i.e : es su modelo estadístico correcto ?)

-1voto

kubusz Puntos 31

Los Datos Históricos Simulados?

SÍ!

Puedo usar esta definición para simular histórico del precio de cierre de los datos, de modo que puedo

backtest contra múltiples, estadísticamente generado datos históricos

en python:

def sim_data():

    for n in range(10): # datasets to generate
        sine = 'sine_' + str(n)
        log_periodic = 'log_periodic' + str(n)

        v = 7           # number of harmonics
        w = 0.0000004   # base acceleration
        x = 0.0000032   # cyclic acceleration
        z = 0.08        # random walk amplitude
        y = 0.0023      # frequency

        storage[sine] = 1 + x - w
        for a in range(1,v):
            storage[sine] += (x/a)*math.sin(y*a*info.tick)
        storage[log_periodic] = storage.get(log_periodic, 
            float(data.btc_usd.price)) #begin at same price as first tick
        storage[log_periodic] *= math.pow(storage[sine], info.tick)
        storage[log_periodic] = ((1-z)+2*z*random.random()
            )*storage[log_periodic]   

        plot(('log_periodic'+str(n)), storage[log_periodic], secondary=True)  

https://tradewave-discourse-uploads.s3.amazonaws.com/1592154d07d578f4fa75231a0e1b47464bd30ba713b8_690x462.png

La línea amarilla es el precio de bitcoin.

Las otras líneas son simulados en forma totalmente independiente del precio de cierre.

Usted puede ajustar los parámetros para cambiar la naturaleza del crecimiento/caída

        v = 7           # number of harmonics
        w = 0.0000004   # base acceleration
        x = 0.0000032   # cyclic acceleration
        z = 0.08        # random walk amplitude
        y = 0.0023      # frequency

Yo llamo a esto:

Registro De Armónicos De Paseo Aleatorio

Estoy desarrollando esta definición aquí: https://discuss.tradewave.net/t/simulated-hlocv-for-overfit-testing/497/16

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