Duda programar Bracket con NINJA

Foro dedicado a esta excelente herramienta de desarrollo e implementación de sistemas de trading
Responder
CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Duda programar Bracket con NINJA

Mensaje por CJS »

Hola alguien me puede ayudar a programar un bracket alrededor de un rango fijo con NT?

Por ejemplo, cojo la primera vela de 1 hora de cotización. Entonces quiero situar 2 órdenes stop, una un pip sobre el máximo de esta vela, y otra un pip por debajo del mínimo. De manera que si rompe por erriba entro largo con la orden stop y se cancela la corta (Y viceversa).

El problema lo tengo en que alubicar las órdenes, el programa solo hace caso de la orden larga.


if (Bars.FirstBarOfSession)
{
mylow=(Low[0]-TickSize*margen);
myhigh=(High[0]+TickSize*margen);

EnterLongStop(DefaultQuantity,High[0]+TickSize*margen,"La entrada Larga");
EnterShortStop(DefaultQuantity,Low[0]-TickSize*margen,"La entrada Corta");
}

Saludos y gracias
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Calike
Mensajes: 31
Registrado: 31 Ene 2009 16:20

Re: Duda programar Bracket con NINJA

Mensaje por Calike »

CJS no se exactamente donde está tu error pero yo lo haría de la siguiente manera.

variables
ofset= 2; // por ejemplo

if (Bars.FirstBarOfSession)
{
highRange= High[0] +Ofset*TickSize;
lowRange= Low[0] -Ofset*TickSize; }

if ( GetCurrentBid >= highRange ) { EnterLong();}

if ( GetCurrentAsk <= lowRange ) { EnterShort();}

Es otra forma de plantearlo que quizás te sirva.
Saludos.
Calike
Mensajes: 31
Registrado: 31 Ene 2009 16:20

Re: Duda programar Bracket con NINJA

Mensaje por Calike »

y para cancelar la contraria..

if (Position.MarketPosition != MarketPosition.Flat)
{ return; }
Avatar de Usuario
cls
Mensajes: 1336
Registrado: 24 May 2007 18:46
Contactar:

Re: Duda programar Bracket con NINJA

Mensaje por cls »

Ninja no te permite abrir largos y cortos simultáneamente, por lo que no se pueden enviar esas órdenes para entrar en stop.
Lo que hace es que te coge la primera, y la segunda, al contravenir sus reglas, la obvia (mírate el log que debe ponerlo. O también pon en el Initialize TraceOrders = true y abre la Output window al ejecutar la estrategia).

La única forma que conozco de hacerlo es con órdenes unmanaged y ligarlas con un id-OCO, de forma que el filled de una cancele la otra de forma automática. (Con los partial filled tendrías que ver qué ocurre. Es decir, si pones 10 contratos para entrar y se te hacen 6 largos, no sé si cancelaría los 10 cortos o sólo 6).
Esto me funciona para los take-profit y stop-loss, así que supongo que también debería para dos órdenes de entrada.

S2
CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Re: Duda programar Bracket con NINJA

Mensaje por CJS »

Hola,

Muchas gracias por las respuestas.

Veo que para minimizar esta limitación que tiene NT hay que dirigir el flujo del programa con condicionales de forma que si se cumple una condición se lanze la orden stop larga sobre el máximo de la vela y si no se cumple que se lance la orden stop bajo el mínimo.

Bueno, de momento con esto me apaño. Lo de las órdenes unmanaged creo lo dejo para un poco más adelante, pues estoy empezando a programar ahora.

Calike, el problema que me encuentro es que para los BT sean precisos en este tipo de estrategias, necesito entrar con órdenes stop, ya que las órdenes a mercado se ejecutan en la siguiente apertura y eso desvirtúa muchísimo la operativa real.


Saludos y gracias.
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS

CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Re: Duda programar Bracket con NINJA

Mensaje por CJS »

Por cierto,

Si alguien tiene programado algo en NT similar a los rangos fijos, me encantaría echarle un vistazo el script. Es el tipo de estartegias que me gustaria estudiar y backtestear, pero no parecen fáciles de programar.

saludos.
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Calike
Mensajes: 31
Registrado: 31 Ene 2009 16:20

Re: Duda programar Bracket con NINJA

Mensaje por Calike »

Cjs, el lunes desde el pc te envio lo que buscas, ahora estoy desde el movil.
Las ordenes a mercado entran en la siguiente baRra si haces backtest, pruebalo en market replay o quita el bar close. Yo tengo funcionando en una cuenta real mas o menos lo q tu buscas y no hay problema en entrar a mercado.
Supongo yo que el max/min es el que te deja la primera barra al cerrar, si los guardas en una variable la orden no se activa hasta que el precio no los toca, osea q es lo mismo que un stop.
Mandame un mail por mp y el lunes te lo paso.
Saludos.
CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Re: Duda programar Bracket con NINJA

Mensaje por CJS »

Hola,

Gracias por los consejos.

No conocía lo del Market Replay. Parece interesante para ver el comportamiento de la estrategia en real.

De todas formas, para poder realizar BT de históricos largos, lo más cercano a la realidad parece ser crear condiciones en el menor time frame posible de forma que cuando el precio esté muy cerca del máximo de la barra de 1 hora esté activa la orden stop larga (y viceversa).

Saludos y gracias de nuevo
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Ninja Trader”