¿Cómo utilizar el strategy analyzer de ninjatrader?

Ahora vamos a aplicar la estrategia creada ayer para ver que resultados da en backtest y luego la optimizaremos. Importante leer antes el artículo sobre ¿cómo crear una estrategia automática en Ninjatrader? y desde el cual podréis descargar el Ninjascript/estrategia que se va a utilizar en esta prueba.

Lo primero que tenemos que hacer es abrir Ninja – New – Strategy Analyzer.

1a

Hacemos click derecho sobre FESX que es el activo en el que voy a hacer la prueba (es el que más opero ahora mismo) y le damos a Backtest. Nos debe salir un menu a la derecha con las opciones a configurar y arriba seleccionamos nuestra estrategia a la que hemos llamado «medias».

2a

En la imagen de arriba podéis ver cómo ahora podemos cambiar fácilmente los valores variables de nuestra estrategia (stop, target, ema2…). El resto de datos son el tiempo del backtest, aplicar comisiones, posibles slippages del precio en real, etc. Lo voy a dejar como venía de serie porque es una simple prueba. Validamos todo y activamos el backtest y obtenemos los siguientes resultados:

1c

Vemos que hemos ganado un total de 3.310$ durante unos 9 meses, nada mal para ser una primera prueba por la que no daba ni un céntimo jajaja. Hay siempre que estudiar las estadísticas, todos los datos son importantes. Suelo fijarme mucho en el drawdown, Nº de trades diarios y % ganador. Ahora veamos el resto de pestañas lo que signifan:

  • Chart: gráfico con las operaciones detalladas

1d

  • Graphs: evolución de nuestra cuenta

1e

  • Executions: órdenes ejecutadas

1f

  • Trades: datos de cada operación

1g

  • Periods: estadísticas de la estrategia repartidas por meses en este caso

1h

  • Orders
  • Settings

Estos dos últimos apartados son simplemente las órdenes y la configuración de la estrategia (2ª imagen del artículo a la derecha).

Ahora que ya hemos visto que nuestra estrategia se comporta bastante bien en el FESX, vamos a ver qué tal lo hace en el 6E y en el FDAX.

  • 6E o EUR/USD

1i

Podemos ver que se comporta peor en el 6E que en el FESX pues dejamos de ganar 1000 € (aun así habría que mirar el resto de estadísticas para ver si se comporta de forma más robusta en momentos de volatilidad o en laterales, pero al ser un ejemplo, nos centraremos en lo que ganamos o dejamos de ganar)

  • FDAX

1j

En el FDAX es un desastre total. Perdemos 26.000 €. Esto se debe a la alta volatilidad del activo, pues no es lo mismo un stop de 20 puntos en el DAX que en el Eurostoxx o en el euro. Deduzco que en este caso habrán saltado casi todos los stops por estar demasiado pegado. Viendo los resultados de manera rápida, volvemos a nuestro querido FESX jeje.

Ahora vamos a optimizar la estrategia. La manera de hacerlo es click derecho y optimize sobre el activo que queramos hacerlo, en la imagen siguiente veréis el proceso:

1k

Lo más importante es rellenar los parámetros de la optimización a la derecha. Si os fijáis en la imagen de arriba, mis parámetros son:

  1. EMA1: 40-60 (5)
  2. EMA2: 10-30 (10)
  3. SMA1: 140-260 (20)
  4. Stop: 14-26 (2)
  5. Target: 14-26 (2)

Estos datos lo que quieren decir es que, por ejemplo, en la EMA1 van a probar las medias de 40 periodos hasta 60 con múltiplos de 5. Lo que viene a ser la media de 40, la media de 45, la media de 50, la media de 55 y la media de 60 (el incremento de va de cinco en cinco como esta marcado en el paréntesis. Se puede poner un número menos, pero tampoco quiero estar 2 horas haciendo la prueba pues son muchas variables a tener en cuenta y el ordenador tarda bastante más en procesar todos los datos)

En el siguiente caso se probarán las EMAs 10, 20 y 30 y así hasta que estén todas las variables. A más variables, más tardará Ninja en optimizar la estrategia. Para empezar está bien así, Ninja buscará entre todas esas posibilidades y nos dará las 10 mejores con sus estadísticas individuales.

Dejamos el resto de configuraciones como están, aunque se pueden cambiar para que el backtest se ordene por ganancia o % ganador o % Drawdown, etc. Le damos a Run Optimization y, después de unos 15 minutos, aparecen los siguientes resultados:

FotoSnap5186

Podemos ver el Top 10 de las mejores estrategias optimizadas arriba. Hacemos click en la primera para ver las estadísticas y vemos que:

  1. 10.000 € de ganancia (un poco más del triple que la anterior)
  2. Mejor profit factor
  3. % de Drawdown muy pequeño
  4. % mayor de operaciones ganadoras

Los parámetros con los que se han conseguido estas estadísticas los podéis ver en el apartado Settings y son:

  • EMA 1 = 40
  • EMA 2 = 20
  • SMA1 = 260
  • Stop = 26
  • Target = 26

Sólo con ver los cambios que nos ha hecho el programa, podemos deducir que a nuestra estrategia le sientan mejor los stops y los targets amplios (y eso que 26 era el máximo en la optimización, podría haber sido mucho más). El cambio en las medias exponenciales no es significativo, sin embargo la media simple que antes calculaba la condición de la tendencia se ha visto incrementada hasta 260, buscando una media más estable. Podemos decir que nuestra estrategia es una estrategia tendencial que busca incorporarse en tendencias ya iniciadas en los retrocesos cuando se vuelvan a cruzar las medias exponenciales. La pena es que los momentos de lateral no se pueden evitar, sino sería perfecta 😀

Tengo que avisar que los datos optimizados funcionan muy bien porque están basados en un periodo muy concreto, pero un robot demasiado optimizado no es muy adaptable a las nuevas condiciones de mercado, por lo que siempre hay que fijarse en el % ganador y el drawdown (entre otros) de la estrategia para no tener demasiados sustos. Hay que elegir con cabeza y sentido común, no centrarse únicamente en el que más gane.

Ahora vamos a ver cómo quedaría nuestra cuenta si hubiésemos activado la estrategia para operar de manera automática a principio de año:

FotoSnap5187

Nada mal eh jaja. Como último paso, tocaría probar la estrategia en walk-forward. 

El walk-forward es un método creado por Robert Pardo que une una optimización normal como la que acabamos de hacer y una optimización adicional que no computa a efectos de la optimización y hace que la estrategia sea más variable a las condiciones actuales del mercado y no sea tan rígida.

Hagamos un ejemplo para que se entienda mejor. Optimizo una estrategia durante un año y hago una simulación sobre una ventana de tiempo adyacente y menor a éste (digamos que un 25%, es decir, 4 meses). Estos 4 meses no se utilizan en la optimización, simplemente se simulan, por lo que no entran dentro de las estadísticas. Se repite el proceso y, sistemáticamente, iremos obteniendo una serie de simulaciones cuyos parámetros han sido elegidos sin optimizar sobre esos datos.

De esta manera tendremos una estrategia automática que se adapta mejor a las condiciones cambiantes de los mercados. Imprescindible no saltarse este último paso antes de validar la estrategia en real.

Espero que no utilicéis directamente está estrategia automática en vuestras cuentas, pues se trata sólo de un ejemplo. Una vez hayáis pasado todos los pasos anteriores con vuestras propias estrategias con nota, entonces aplicaremos el robot en nuestra cuenta real y, si hemos hecho bien los deberes, tendremos muchas alegrías!

El Ninjascript que debéis importar si queréis probar esta estrategia en vuestra plataforma (por si queréis probarla en otros activos o cambiar los parámetros de la optimización) lo podéis encontrar al final de esté artículo sobre ¿cómo crear una estrategia automática en Ninjatrader?

Ya me decís qué tal van vuestros experimentos 😉