Duda programación NinjaTrader

Foro genérico sobre programas relacionados con el trading: gráficos, ejecución de órdenes, automatización, etc.
Responder
Txen
Mensajes: 135
Registrado: 22 Nov 2007 21:44

Duda programación NinjaTrader

Mensaje por Txen »

Buenas,...
..me gustaría que mi sistema se active, es decir comience a leer las condiciones que le impongo cuando se cumpla, por ejemplo, que una barra cierre por encima del Upperband de Bollinguer.
No puedo ponerlo como una condición, porque en el paquete de condiciones podría estar justamente lo contrario, es decir, que una de ellas fuera que el cierre estuviera por debajo de la Lower band.

Al final debería de leerse: "Opera en la barra 0 cuando se cumplan las condiciones X siendo una de ellas que el cierre de la barra esté por debajo de LowerBand habiéndose producido durante el día en algún momento un cierre por encima de UpperBand"

...agradecería alguna ayuda...(no acabo de consegurilo con una bool)...

gracias y saludos...
Avatar de Usuario
bolsa1
Mensajes: 1347
Registrado: 13 May 2008 09:53
Ubicación: Gallaecia

Mensaje por bolsa1 »

Añade una variable lógica (p.ej. "cortesuperiorbollinguer") que se active a "true" cuando el cierre esté por encima de higherband.. después comprueba otra condición "si cortesuperiorbollinguer=true y -otra condición-" entonces "opera". Al final del día pon "cortesuperiorbollinguer=false" para prepararlo para el día siguiente.

No tengo tiempo de detalles, que me llaman para comer, si tienes dudas pregunta.

Saludos!
"Mercaderes e industriales no deben ser admitidos a la ciudadanía; porque su género de vida es abyecto y contrario a la virtud."

Aristóteles.
Txen
Mensajes: 135
Registrado: 22 Nov 2007 21:44

Mensaje por Txen »

Observo, bolsa 1, que siempre tienes una segundo para comentar aspectos de programación de NinjaTrader, es de agradecer,...
Mira, lo que pongo es:
protected override void Initialize()
{
targets y stops

CalculateOnBarClose = true;
cierreSuperior = false;

}
/// <summary>
/// Called on each bar update event (incoming tick)
/// </summary>
protected override void OnBarUpdate()
{

// Reseteo al inicio del dia:
if (Bars.SessionBreak == true)
cierreSuperior = false;

// Activación de la condición de cierre superior a UPPERBAND
if (Close[0] > Bollinger(DesvBollinger, PeriodoBollinger).Upper[0])
cierreSuperior = true;

// Condiciones de entrada
if (cierreSuperior == true
&& el resto de condiciones)
{
entrada de órdenes
cierreSuperior = false;
}

¿Qué te parece?
Avatar de Usuario
bolsa1
Mensajes: 1347
Registrado: 13 May 2008 09:53
Ubicación: Gallaecia

Mensaje por bolsa1 »

Perfecto.

Creo que el (Bars.SessionBreak ) puede ir antes, fuera del bucle del (BarUpdate)

Ya me dirás si te funciona. ;-)
"Mercaderes e industriales no deben ser admitidos a la ciudadanía; porque su género de vida es abyecto y contrario a la virtud."

Aristóteles.
Txen
Mensajes: 135
Registrado: 22 Nov 2007 21:44

Mensaje por Txen »

...dice que no quiere, seguiré intentándolo,.....]

Avatar de Usuario
bolsa1
Mensajes: 1347
Registrado: 13 May 2008 09:53
Ubicación: Gallaecia

Mensaje por bolsa1 »

Código: Seleccionar todo

/ Condiciones de entrada
if (cierreSuperior == true
&& el resto de condiciones)
{
entrada de órdenes
cierreSuperior = false;
} 
Si la "entrada de órdenes" no se cumple en el esta misma barra, estás volviendo a poner cierreSuperior = false, con lo que sólo operará si el cierre está por encima de la banda superior. Tienes que suprimir cierreSuperior = false:

Código: Seleccionar todo

/ Condiciones de entrada
if (cierreSuperior == true
&& el resto de condiciones)
{
entrada de órdenes
} 
Prueba así, a ver si va.

Saludos!
"Mercaderes e industriales no deben ser admitidos a la ciudadanía; porque su género de vida es abyecto y contrario a la virtud."

Aristóteles.
Txen
Mensajes: 135
Registrado: 22 Nov 2007 21:44

Mensaje por Txen »

...muy interesante...
además estoy pensando alguna cosa más, pero te lo comento cunado lo termine de tener claro,...creo que el problema está en el reseteo, el decir que en la primera barra es "false" puede que se contradiga con la realidad de esa barra...
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Software”