NT8 como optimizar sistemas en modo playback (level 1 y 2)

Foro dedicado a esta excelente herramienta de desarrollo e implementación de sistemas de trading
Responder
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por polxx »

Ya sabemos que ninjatrader es potente para optimizar. Y también permite descargarnos históricos del level 1 y 2 y hacer sistemas de ese tipo. Pero lo que no se puede hacer es optimizar variables de un sistema que trabaje el level 1 o 2 con lo cual nos quedamos perdidos.

Lo mas próximo a optimizar un sistema de level 1 o 2 seria lo siguiente. Lo primero de todo vamos al menú connections, playback connection. Conectamos y ponemos la velocidad al máximo.

Ahora supongamos que el sistema tiene 2 parámetros, y cada parámetro puede tomar 5 valores, tenemos entonces 25 combinaciones. Abrimos un nuevo chart con el producto, time frame, fecha que queremos analizar. En la pestaña de abajo de ese chart clic derecho y "duplicate in new tab". Así hasta que tengamos 25 veces el mismo chart.

Entonces insertamos uno por uno el sistema en los 25 chart. Lo ideal seria insertar el sistema en el primer chart, grabarlo como template default para que al abrir los otros 24 ya salga el sistema, pero creo que no es posible.
Cada vez que insertamos un sistema le ponemos su correspondiente combinación de parámetros. Y a la vez en la zona "set up" account ...indicamos Playback101, aunque debería salir ya por defecto.

Recordar habilitar todos los sistemas (enabled) desde el control center, tab "strategies" o desde las propiedades de cada uno de los sistemas.

En la foto que pongo hay 2 chart con el mismo sistema.

Pulsais play para que se recorra todo el histórico. Al acabar en el tab "strategies" clic derecho sobre cada uno, strategy performance, real-time, clic derecho, export.

No he conseguido una forma mas rápida que esta. Bueno en teoría es la única forma de hacerlo.
Adjuntos
analisis level II NT8.png
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por cls »

Hola polxx,

en NinjaTrader 8 se puede hacer backtesting, optimización y walk-forward de Level1 (Time & Sales) desde el Strategy Analyzer. NinjaTrader 8 incorpora una función llamada Tick Replay (hay que activarla una primera vez desde las opciones Tools/Options/Market data y [x] Show Tick Replay, y después clickar el checkbox Tick Replay en el chart, si quieres cargar histórico bid-ask para mostrar un indicador que hago uso de esos datos, o en el Strategy Analyzer si quieres correr una estrategia con histórico bid-ask para testearla u optimizarla).

Es decir, que tienes acceso al histórico de los prints de la cinta (esto es mucho más valioso que acceder al histórico 1-tick, ya que los prints te dicen si son compras o ventas, y los 1-tick no, con lo que puedes detectar divergencias delta, manos fuertes, etc).

De Level2 no se puede, y desconozco que ninguna aplicación comercial lo haga.

Dicho esto y como bien has explicado siempre puedes reproducir sesiones pasadas desde el PlayBack para testear cualquier indicador o estrategia que use datos de Level1 y/ó Level2, pero claro, sin poder optimizar automáticamente.

Saludos
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Re: NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por polxx »

CLS, una duda. NT8 entiendo que tiene 4 bases de datos históricos:
- La del get market replay, que contiene level 1 y 2
- de 1 tick
- de 1 minuto
- de 1 dia
Si usamos el modo playback trabajamos exclusivamente sobre los datos del get market replay.
Si hacemos backtest, optimizacion o walk forward con strategy analyzer sobre graficos de ticks, estamos usando la base de datos de 1 tick pero no la del get market replay, tanto en modo tick replay como sin el.
Si usamos strategy analyzer con time frame de minutos sin tick replay, solo accedemos a los datos de minuto, pero si trabajamos en time frame de minutos en modo tick replay, accedemos a los datos de minuto y de ticks.
Y con barras diarias entiendo que similar a barras de minutos.
..mmmm ¿correcto?
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por cls »

polxx escribió:CLS, una duda. NT8 entiendo que tiene 4 bases de datos históricos:
- La del get market replay, que contiene level 1 y 2
- de 1 tick
- de 1 minuto
- de 1 dia
Sí, en Mis Documentos / NinjaTrader 8 / db está la base de datos con todos los ficheros de datos.
Y dentro de NT8 en Tools / Historical Data puedes navegar a través de todos esos datos que están divididos en dos categorías: Historical ( que incluye los datos de Tick, Minute y Day) y Market Replay.

La principal diferencia es que en histórico (desde el Strategy Analyzer p.ej. o al cargar un chart) los datos tipo "Historical" no ejecutan los métodos OnMarketData (para acceder a la cinta) y OnMarketDepth (para acceder al book). Mientras que si reproduces datos de tipo "Market Replay" en el PlayBack sí se ejecutan los métodos OnMarketData y OnMarketDepth. Esto ha sido así en NT7 también.

En NT8 se ha introducido una mejora llamada TickReplay que con datos "Historical" permite ejecutar el método OnMarketData, pero sólo cuando se recibió un filled (tipo de evento Last), y no cuando hubo actualizaciones en la horquilla. De este modo se pueden testear y optimizar estrategias basadas en datos históricos de la cinta (p.ej. las basadas en indicadores del tipo MarketDelta).

polxx escribió: Si usamos el modo playback trabajamos exclusivamente sobre los datos del get market replay.
Correcto.

polxx escribió: Si hacemos backtest, optimizacion o walk forward con strategy analyzer sobre graficos de ticks, estamos usando la base de datos de 1 tick pero no la del get market replay, tanto en modo tick replay como sin el.
La información relativa al TickReplay (si el 1-tick ha sido compra o venta) no sé dónde se guarda. Supongo que en el histórico de 1-tick. Pero habría que comprobarlo. (P.ej. cargando un chart con datos nuevos que no se hayan cargado con anterioridad primero sin TickReplay y después con TickReplay y ver qué ficheros de la base de datos se actualizan).

polxx escribió:Si usamos strategy analyzer con time frame de minutos sin tick replay, solo accedemos a los datos de minuto, pero si trabajamos en time frame de minutos en modo tick replay, accedemos a los datos de minuto y de ticks.
Y con barras diarias entiendo que similar a barras de minutos.
..mmmm ¿correcto?
En principio así es, pero es muy fácil de comprobar: sobrescribe el método OnMarketData y dentro pon simplemente un Print. Y ejecuta la estrategia a cierre de barra. En la ventana Output tendrías que ver miles de Prints aunque sólo tuvieras unas pocas barras en el histórico.

S2
Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Re: NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por polxx »

Bueno aqui esta explicado donde se almacena el tick replay:
https://ninjatrader.com/support/helpGui ... orting.htm
Hay varias formas de tener guardados históricos de ticks en ninja, y una de ellas contiene el dato de si el last tick fue cruzándose con bid o con ask.
Lo malo de todo esto es que visual chart da datos de ticks, pero no indica hacia donde se cruzaba.
Interactive brokers da históricos de 1 minutos, pero no de ticks.
Con NT8 tenemos acceso a market replay, pero curiosamente no a ticks ni minutos ni nada mas.
Con lo cual, se necesita alguna cuenta demo o de pago de proveedores de datos profesionales: Kinetick, CQG, etc...
Sospecho que calcular con strategy analyzer en tick replay es mas rápido que con playbak sobre datos market replay.
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.

Avatar de Usuario
polxx
Mensajes: 847
Registrado: 09 Dic 2005 10:25
Ubicación: Albacete

Re: NT8 como optimizar sistemas en modo playback (level 1 y 2)

Mensaje por polxx »

Pues lo confirmo. Con mismo pc, 5 dias de historico, mismo sistema y parametros. En strategy analizer con tick replay ha tardado 45 segundos y en modo playback ha tardado 35 minutos.
El modo playback tarda 47 veces mas para lo mismo. Pero si queremos optimizar level 2 (OnMarketDeep) el libro de ordenes, NT es a dia de hoy la unica opcion posible, que yo sepa.
El camino equivocado es INVENTAR un SISTEMA ganador. El camino correcto es DESCUBRIR que hace el PRECIO, para adelantarse a el, y con eso poder hacer un sistema ganador.
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Ninja Trader”