Cuestiones NinjaTrader

Foro dedicado a esta excelente herramienta de desarrollo e implementación de sistemas de trading
Responder
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Cuestiones NinjaTrader

Mensaje por nstrader »

Cuesta cambiar de Plataforma pero hay que evolucionar. Después de dominar Metatrader y la programación en mql vuelvo a empezar de cero con ninjatrader.
Probé la plataforma PTMultistation por aquello de usar mql4 con futuros pero con la demo que tienen no se puede probar nada, a los 15 min se bloquea y hay que reiniciar la plataforma, aparte que no hay mucha referencia, el foro que tienen prácticamente está vacío. A ver si aprenden de ninja y lo ponen gratis para practicar bloqueando la operativa real !!!

Las cuestiones del Ninja son varias y más que surgirán, a ver quien puede echar una mano.

1 . Donde conseguir historiales de ticks, economicamente aceptables, gratis == aceptable,jejeje.

2 . Donde guarda la Plataforma Ninja los historiales?. Y como los guarda, es decir, si solo con tener el gráfico abierto ya se guarda o tengo que exportarlo luego manualmente.

3. La licencia de por vida del ninja vale para actualizaciones? osea, la versión 7 es una actualización? o dicho de otra forma si compro la 6.5 de por vida me sirve para la 7?

4. Puedo usar la misma licencia en más de una plataforma?, en diferentes pc's a la vez?

En cuanto a programación se parece bastante al mql, es cuestión de ponerse, echo de menos una referencia en el mismo editor del ninjascript con ejemplos al estilo del metaeditor de mql pero bueno.

Tengo la demo de Mirus Futures con Zen Fire, imagino que luego para conectar al broker real para lanzar órdenes habrá que configurar algo más que un usuario y una contraseña de conexión al Zen-Fire.

Por otra parte no me termina eso de tener la TWS de IB abierta para lanzar ordenes desde el ninja a través de un puente, se podrian poner las pilas los de IB para hacerlo directamente desde el ninja.

Esto de momento, un saludo
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Cuestiones NinjaTrader

Mensaje por cls »

Hola nstrader,
a ver si te puedo ayudar:
1.- gratis creo que no. Si te conectas a Zen-fire puedes grabar las sesiones del Time&Sales de los instrumentos que tengas abiertos (mejor histórico de ticks que ése no hay).
2.- Es un fichero mdb. Está en la carpeta db. En las opciones está el configurar cómo guardar el tiempo real.
3.- Creo que sí, pero si lo vas a hacer mejor pregúntales a ellos.
4.- No. Va todo por usuario. Con la licencia compras un usuario. Si usas el mismo usuario en un segundo pc te desconecta en el primero.

S2
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Re: Cuestiones NinjaTrader

Mensaje por nstrader »

Gracias cls, corrígeme si me equivoco

Segun entiendo solo con tener el Market Analyzer con los instrumentos añadidos ya guardará los ticks, para ello habría que añadirle todos los instrumentos que queramos guardar. (O tambien tener un gráfico de ticks abierto)
http://www.ninjatrader-support.com/Help ... oricalData
Supongo que todo se guardará en el archivo NinjaTrader.mdb con lo que este va a engordar bastante.

Lo de grabar sesiones parece que va por otro lado y se guarda en la carpeta data por sesiones y grabará solo los instrumentos que tengamos abiertos si tenemos la opción Run market replay recorder activada.

Bien si es correcto ya tengo una cosa solucionada.

Un saludo
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Re: Cuestiones NinjaTrader

Mensaje por nstrader »

Segun entiendo solo con tener el Market Analyzer con los instrumentos añadidos ya guardará los ticks, para ello habría que añadirle todos los instrumentos que queramos guardar
He visto que hay que hay que añadirle un indicador al Market Analyzer para que guarde los ticks
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Cuestiones NinjaTrader

Mensaje por cls »

Los ticks te los guarda automáticamente. Es un "timeframe" más. Pero tienes que tener abierto algo (un chart p.ej.) que reciba esos ticks. Si tienes abierto un chart de minutos no te guardará los ticks.

Lo del indicador que comentas supongo que te refieres al GomCD. Ese indicador es para guardar el histórico bid-ask. No es lo mismo que guardar 1-tick. Si sólo guardas 1-tick no sabes si hay sido al bid o al ask.
Con ese indicador guardas algo parecido al histórico de la cinta (time&sales).

S2

JKK
Mensajes: 10
Registrado: 04 Nov 2009 20:29

Re: Cuestiones NinjaTrader

Mensaje por JKK »

Hola,

Me gustaría agregar a este hilo que Mirus Futures incluye el coste del Data Feed (Zen-Fire) en la comisión ( por ej. es de 4,4 U$S por contrato cerrado en el ES ) y además te da un NinjaTrader gratuito que ciertamente tiene funcionalidades limitadas ( soporta DOM y todo el charting completo con todo tipo de órdenes manuales o por estrategia, pero no soporta estrategias ATM ).

Un saludo
JKK
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Re: Cuestiones NinjaTrader

Mensaje por nstrader »

Hola cls, lo del indicador me refiero a añadir una columna con un indicador al Market Analyzer, lo he probado, he puesto todos los futuros en la ventana del M. Analyzer con una ema aplicada a ticks y guardan todos los ticks de todos los futuros y no hace falta tener ningún chart abierto.
NinjaTrader stores real-time incoming tick data to your local PC if you have a Chart or Market Analyzer (must have an indicator column added) window open. This data can then be used as historical data
El formato guardado p.ej para el "ES" es Año,mes,día,hora,minuto,segundo,precio,volumen (Supongo que el precio es Bid)
20100106 100358;1128.75;2
20100106 100400;1129;3
20100106 100400;1129;2
20100106 100406;1129;1
20100106 100408;1128.75;1
20100106 100408;1129;1
20100106 100412;1129;1
20100106 100418;1128.75;1
20100106 100421;1129;1
20100106 100424;1129;1
20100106 100427;1128.75;1
20100106 100427;1129;1
20100106 100428;1128.75;1
La otra duda que tengo es:
Zen-Fire provee de timestamp?

Dicho de otra forma si un proveedor de datos da hora,minuto,segundo, el ninjatrader modifica ese horario a hora local del pc?

Supongo que si importamos historiales habrá que tener en cuenta el huso horario en el que se ha recabado esos datos.

Ese problema no lo tenía con el Metatrader ya que el horario era el que tenía el servidor y podía calcular la diferencia horaria.

Me parece un tema importante sobretodo para estrategias basadas en filtros por horario.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Cuestiones NinjaTrader

Mensaje por cls »

nstrader escribió:Hola cls, lo del indicador me refiero a añadir una columna con un indicador al Market Analyzer, lo he probado, he puesto todos los futuros en la ventana del M. Analyzer con una ema aplicada a ticks y guardan todos los ticks de todos los futuros y no hace falta tener ningún chart abierto.
NinjaTrader stores real-time incoming tick data to your local PC if you have a Chart or Market Analyzer (must have an indicator column added) window open. This data can then be used as historical data
El formato guardado p.ej para el "ES" es Año,mes,día,hora,minuto,segundo,precio,volumen (Supongo que el precio es Bid)
20100106 100358;1128.75;2
20100106 100400;1129;3
20100106 100400;1129;2
20100106 100406;1129;1
20100106 100408;1128.75;1
20100106 100408;1129;1
20100106 100412;1129;1
20100106 100418;1128.75;1
20100106 100421;1129;1
20100106 100424;1129;1
20100106 100427;1128.75;1
20100106 100427;1129;1
20100106 100428;1128.75;1
La otra duda que tengo es:
Zen-Fire provee de timestamp?

Dicho de otra forma si un proveedor de datos da hora,minuto,segundo, el ninjatrader modifica ese horario a hora local del pc?

Supongo que si importamos historiales habrá que tener en cuenta el huso horario en el que se ha recabado esos datos.

Ese problema no lo tenía con el Metatrader ya que el horario era el que tenía el servidor y podía calcular la diferencia horaria.

Me parece un tema importante sobretodo para estrategias basadas en filtros por horario.
Hola nstrader,

el formato que pones para los ticks es para importar desde un fichero texto.
Cómo los guarda no lo sé porque está encriptado. Por lo menos en la 6.5 esa información estaba codificada en binario. Es posible que guarde el timespan del datafeed.
Pero es fácil comprobarlo, cambia la región de tu pc y mira si las barras se ajustan a la nueva hora. Si se ajustan es que se guarda el timespan del datafeed.
Tampoco son al bid, sino que son el LastPrice. En realidad no sabes si han sido compras (contra el ask) o ventas (contra el bid). Para ello tendrías que haber guardado el Time&Sales y comparar con la horquilla.

Zen-fire envía milisegundos pero ninja no los guarda. (Los milisegundos que envía Zen-Fire los pone él en su servidor, no son los que le llegan del exchange - posiblemente porque el exchange no los envía).

De todos modos, en Ninja no tienes ningún problema para programar estrategias basadas en filtros horarios. Tienes funciones para saber cuándo una sesión comienza, el tiempo o las barras que han pasado desde el inicio de la sesión, etc. Y aparte todas las funciones .NET para trabajar con DateTimes y TimeSpans.

S2
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Re: Cuestiones NinjaTrader

Mensaje por nstrader »

Ok, he cambiado la hora del pc y el historial guardado se ha adaptado al nuevo huso horario después de reiniciar el ninja, supongo que guardara el timestamp del data feed y luego el ninja compara el tiempo real con el tiempo actual del pc y adapta el horario al exportar o dibujar.

Ok el concepto de Last Price no lo tenía presente, supongo que es ese el valor que se dibuja en las gráficas. De momento con eso tengo suficiente para programar estrategias.

Gracias.
Un saludo
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

NinjaScript

Mensaje por nstrader »

SetStopLoss() y SetProfitTarget() son ordenes de stop/limitada? o son lanzadas a mercado al llegar el precio al objetivo?
Si es el segundo caso, son ordenes que estan en la plataforma por tanto interesaria que fueran ordenes ya lanzadas al broker.
La ventaja que tienen estas es que estan enlazadas como ordenes OCO pero si se reinicia la estrategia creo que se desvincularán de la orden.

La solución seria lanzar las tres órdenes?
Es decir para un Largo, cuando el sistema detecte que la orden se ha llenado, lanzar las ordenes de objetivo y stop EnterShortLimit() , EnterShortStop() y luego vincular las 3 de alguna forma. De forma que si reiniciamos la estrategia luego sepa cual cancelar de las dos al llegar a un objetivo.

Resumiendo que a ver quien me explica como funcionan las ordenes Bracket en ninjaScript.
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Cuestiones NinjaTrader

Mensaje por cls »

SetStopLoss te vincula una orden de protección (stop-loss) a tu entrada
cuando ésta es filled o partFilled (se actualiza sola a medida que van
entrando rellenos parciales).
SetProfitTarget lo mismo pero pone limitadas para cerrar la entrada y
tomar beneficios.

En esencia esto sería una bracket. y en teoría están en el broker desde
que tienes filleds para tu entrada. Si la entrada no es filled, no se envían
así que si se te apaga el ordenador y la entrada se hace, la bracket no se envía.
(No es un bracket tipo IB en que la ordenas antes de ser filled la
entrada).

El stop-loss y el take-profit van ligadas (OCO) y si una se hace la otra se
cancela (si una se hace parcialmente, la otra se cancela en la misma
magnitud).
Todo va automático y funciona bien. (Por lo menos en la 7 sin problemas).


Con los métodos Enter y Exit puedes gestionar tú todo el control de órdenes
y pasar de los métodos Set, pero ahí a veces no me ha funcionado bien el
tema OCO con rellenos parciales. Con un contrato sin problemas.

En la versión 7 han incluido un nuevo método para lanzar órdenes que al
venir de Metatrader conocerás bien: SubmitOrder. Funciona igual que en
metatrader. Aquí el tema OCO funciona perfecto con rellenos parciales.
Pero aún no está documentado. Tendrás que buscar en el foro de ninja por
UnmanagedOrders o SubmitOrder.

S2
Avatar de Usuario
nstrader
Mensajes: 257
Registrado: 24 Mar 2007 19:33

Re: Cuestiones NinjaTrader

Mensaje por nstrader »

Gracias Cls
En la versión 7 han incluido un nuevo método para lanzar órdenes que al
venir de Metatrader conocerás bien: SubmitOrder. Funciona igual que en
metatrader. Aquí el tema OCO funciona perfecto con rellenos parciales.
Pero aún no está documentado. Tendrás que buscar en el foro de ninja por
UnmanagedOrders o SubmitOrder.
Que casualidad precisamente me estaba haciendo la funcion OrderSend() al estilo metatrader para lanzar ordenes y reducirlo todo a una función.
pescador
Mensajes: 52
Registrado: 19 Mar 2009 16:52

Re: Cuestiones NinjaTrader

Mensaje por pescador »

Buenas:

Tengo un problema con ninja trader 6.5:
Quiero ampliar la escala de precios, ejemplo en el futuro del cac40 --> pues poder tenerlo siempre a cuadros de 5 puntos. Cauando aunmenta la volatilidad, no me deja y se pone en cuadros de 10 puntos por ejemplo. Hay alguna funcion para solucionar eso??, el arrastre con el raton no funciona, GRACIAS
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Ninja Trader”