Como utilizar los arrays en NINJATRADER

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Responder
DUX
Mensajes: 11
Registrado: 13 Oct 2009 22:58

Como utilizar los arrays en NINJATRADER

Mensaje por DUX »

Hola a todos!

Desde hace un tiempecillo que he decidido pasar de VC a Ninja para programar estrategias y la verdad me esta resultando durillo y eso que ya se programar pero ninja tiene cosas que me resultan antilogicas a la hora de programar, estoy averiguando el funcionamiento de los arrays, se como grabar un dato dentro de un array pero cuando consulto el valor introducido, este resulta ser siempre 0!! excepto el valor del ultimo array que haya introducido, creo que hay algo que no hago bien en el initialize...yo pongo que el dataseries este sincronizado con las barras "this" pero en realidad a mi eso no me interesa, yo solo kiero introducir valores cuando me de la gana y consultarlos cuando kiera, hay alguien por ai que haya tenido problemas similares con los arrays?

Aqui os adjunto el codigo, no me deja adjuntar el archivo porque es .cs

#region Variables
private int cont;
private double var1;
private DataSeries array;
#endregion


protected override void Initialize()
{
array = new DataSeries(this);
CalculateOnBarClose = true;
}

protected override void OnBarUpdate()
{
if (cont==3)
{
Print("cierre de la barra 0 "+array[0]);
Print("cierre de la barra 1 "+array[1]);
Print("cierre de la barra 2 "+array[2]);
Print("cierre de la barra 3 "+array[3]);
}
else
{
array.Set(cont,Close[0]);
cont=cont+1;
}

}
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Como utilizar los arrays en NINJATRADER

Mensaje por cls »

Hola DUX,

las DataSeries no son arrays al uso. Son un tipo de colección particular de ninja.

Van sincronizadas con las barras del chart y se accede por el índice que va entre corchetes.
[0] es el dato que tiene el DataSerie en la barra actual.
[1] el dato del DataSerie en la barra anterior a la actual.
[2] el dato hace dos barras,
y así sucesivamente.
Como ves el indexado es contrario al que usarías en un array normal donde el índice 0 correspondería al primer elemento añadido al array, y no al último como en este caso de la DataSerie.

Si quieres usar arrays normales decláralos como tales double[], int[], etc. como en cualquier lenguaje.
También puedes usar colecciones .NET: Array, List, Dictionary, Stack, ... tanto genéricas como no genéricas.

Las series de ninja (DataSeries, IntSeries, BoolSeries, ...) son arrays sincronizados internamente con el número de barra en el que se encuentra la ejecución.

Mirando el código que has puesto estás llenando continuamente el mismo elemento de la serie, el de la primera barra del chart.
Todos los demás están vacios.

S2
DUX
Mensajes: 11
Registrado: 13 Oct 2009 22:58

Re: Como utilizar los arrays en NINJATRADER

Mensaje por DUX »

Muchisimas gracias cls!!

Ya he conseguido hacer que funcione, lo he declarado como me has dicho y ya funciona como debe, es decir, la conclusion que saco es que cada vez que tenga una duda sobre la sintaxis seguro que lo resuelvo mirando info de C# por google, madre mia llevaba 2 semanas volviendome loco por esta tonteria, lastima que al final no se celebrara el curso en bcn seguro que ahora mismo me estaria ahorrando muchos dolores de cabeza jejeje.

Un saludo
Avatar de Usuario
JRTmarket
Mensajes: 67
Registrado: 15 Mar 2010 23:31
Ubicación: Gran Canaria (Telde)

Re: Como utilizar los arrays en NINJATRADER

Mensaje por JRTmarket »

¿Me pueden decir que lenguaje de programación utiliza el Ninja y algún libro, site o cualquier otra cosa de referencia para aprender a "juguetear" con dicho lenguaje?
kefren
Mensajes: 86
Registrado: 01 Sep 2009 09:03

Re: Como utilizar los arrays en NINJATRADER

Mensaje por kefren »

JRTmarket escribió:¿Me pueden decir que lenguaje de programación utiliza el Ninja y algún libro, site o cualquier otra cosa de referencia para aprender a "juguetear" con dicho lenguaje?

Es lenguaje C, y puedes encontrar libros en pdf gratis por la red. Yo me baje uno que esta bastante bien creo que fue de taringa.net.


Saludos
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”