1 votos

Una forma más rápida de hacer backtest/walkforward

Actualmente estoy usando Ninja Trader para programar y probar mis estrategias y las pruebas a futuro en muy intensivas en tiempo. Estoy pensando en escribir mi propio código en c++ o c#.

La pregunta que tengo es si mi lógica es correcta en lo que tendría que programar?

Estoy pensando que necesitaría un código para :-

1) leer mis datos de ticks separados por comas y ponerlos en un array. 2) código que luego lee a través de los datos en orden y aplica mi modelo a él.

se agradecería cualquier aportación.

1voto

Nick Klauer Puntos 2837

No necesitas reinventar la rueda, te sugiero que aísles la parte de tu algoritmo que consume tiempo en una dll de c++ y la llames directamente desde Ninja trader o cualquier plataforma.

En cuanto a los datos aquí tres consejos:

  1. Identifique exactamente los datos que necesita (por ejemplo, si su estrategia se basa en datos de barras, es posible que no necesite precios más altos o más bajos...)

  2. Mantenga siempre un gran buffer de datos que actualice en cada uno de los eventos en los que sea susceptible de operar.

  3. El truco más importante Si su algoritmo pasa varias veces por los mismos datos, Intenta separar la parte de estimación de la parte de decisión de tu algoritmo . De este modo, sólo tendrá que estimar su modelo una vez (durante la primera prueba), y luego podrá basar sus siguientes backtests en la primera estimación. Si no está claro un ejemplo sencillo:

    1. Primera prueba: tienes un modelo muy complejo que estimas cada 5 minutos. Ejecútalo una vez y guarda los resultados en un archivo txt.

    2. En las siguientes pruebas, no es necesario volver a estimar los modelos, sólo hay que tomar los resultados de la primera prueba (del archivo .txt) y aplicar los nuevos parámetros (por ejemplo, el nuevo intervalo de confianza). Obviamente, ahorrarás mucho tiempo, pero tienes que diseñar tu algoritmo de tal manera que obtengas todos los parámetros relevantes durante el primer bucle. Esto no es tan fácil de obtener, pero vale la pena hacerlo porque usted será capaz de ejecutar un montón de backtests en unos pocos segundos (sólo requieren para leer un archivo txt). Además, al hacerlo, sólo tendrá que leer los datos una vez (durante la primera prueba). En resumen, su primera estimación debe producir resultados que no están vinculados a un escenario particular, sino algunos tipos de "pre-inputs" a un modelo de decisión.

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