Hola alguien me puede decir por favor que tengo que hacer para que este sistema me lance las ordenes que lleva aparejadas un vez tome la posición y no que espere a que se cierre la primera barra para hacerlo con lo cual si el objetivo o el stop se produce en la 1 barra no lo reconoce , muchas gracias.
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Close[0];
EnterLong ();
}
{
if (Position .MarketPosition == MarketPosition.Long )
ExitLongLimit (Position .AvgPrice + 10);
if (Position .MarketPosition == MarketPosition.Long )
ExitLongStop (suelo - 10 ) ;
}
SISTEMA PARA NT AYUDA PROGRAMACION
Re: SISTEMA PARA NT AYUDA PROGRAMACION
Hola,
Para que se lancen el Sl y TP junto con la orden de entrada debes utilizar las funciones SetStopLoss y SetProfitTarget.
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Close[0];
EnterLong ();
SetStopLoss(CalculationMode.Ticks, 10);
SetProfitTarget(CalculationMode.Ticks, 10);
}
Te sugiero veas las distintas modalidades de estas funciones en las guias de ayuda de NT:
http://www.ninjatrader.com/support/help ... index.html
No hace falta que guardes el precio de entrada en la variable "suelo", esta función ya lo tiene en cuenta.
Saludos,
Para que se lancen el Sl y TP junto con la orden de entrada debes utilizar las funciones SetStopLoss y SetProfitTarget.
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Close[0];
EnterLong ();
SetStopLoss(CalculationMode.Ticks, 10);
SetProfitTarget(CalculationMode.Ticks, 10);
}
Te sugiero veas las distintas modalidades de estas funciones en las guias de ayuda de NT:
http://www.ninjatrader.com/support/help ... index.html
No hace falta que guardes el precio de entrada en la variable "suelo", esta función ya lo tiene en cuenta.
Saludos,
___________________________
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Re: SISTEMA PARA NT AYUDA PROGRAMACION
Hola a si me lo reconoce muy bien pero en el momento que quiero en vez de colocarle 10 puntos , quiero que me cierre por ejemplo en el minimo de la barra - stop , ya no lo consigo y el codigo se raya , puedes decirme por favor por como seria , muchas gracias .
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Low[0];
EnterLong ();
ExitLongStop (suelo - stop ) ;
}
{
if (Position .MarketPosition == MarketPosition.Long )
ExitLongStop (suelo - stop ) ;
}
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Low[0];
EnterLong ();
ExitLongStop (suelo - stop ) ;
}
{
if (Position .MarketPosition == MarketPosition.Long )
ExitLongStop (suelo - stop ) ;
}
Re: SISTEMA PARA NT AYUDA PROGRAMACION
Hola,
Esto debería funcionar sin problemas:
if (Position .MarketPosition != MarketPosition.Long )
{
if (Close[0] > Open[0] )
{
suelo = Low[0];
Cierre=suelo-10*TickSize;
EnterLong ();
SetStopLoss(CalculationMode.Price, Cierre);
}
}
Díme que tal.
Saludos,
Esto debería funcionar sin problemas:
if (Position .MarketPosition != MarketPosition.Long )
{
if (Close[0] > Open[0] )
{
suelo = Low[0];
Cierre=suelo-10*TickSize;
EnterLong ();
SetStopLoss(CalculationMode.Price, Cierre);
}
}
Díme que tal.
Saludos,
___________________________
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Re: SISTEMA PARA NT AYUDA PROGRAMACION
Hola lo siento pero no lo consigo , el ejemplo que me pones si lo hace bien y cierra en la primera barra -- Cierre=suelo-10*TickSize;
pero si quiero salir por ejemplo en el suelo - stop y el stop es por ejemplo la banda superior de bollinger - banda inferior por un factor yo intento hacerlo cambiando .price por .percent pero el codigo se raya .
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Low[0];
stop=bandainferior-bandasuperior*factor
cierre = suelo-stop
EnterLong ();
SetStopLoss(CalculationMode.percent, Cierre);
}
le pongo .percent pero tampoco lo hace bien , si queremos quer lance la orden en el minimo de la barra - el valor del stop como seria entonces , ninguna de las 3 opciones que devuelve la instruccion CalculationMode me funciona acaso no serviria esta instruccion , muchisimas gracias .
pero si quiero salir por ejemplo en el suelo - stop y el stop es por ejemplo la banda superior de bollinger - banda inferior por un factor yo intento hacerlo cambiando .price por .percent pero el codigo se raya .
protected override void OnBarUpdate()
{
if (Position .MarketPosition != MarketPosition.Long )
if (Close[0] > Open[0] )
{
suelo = Low[0];
stop=bandainferior-bandasuperior*factor
cierre = suelo-stop
EnterLong ();
SetStopLoss(CalculationMode.percent, Cierre);
}
le pongo .percent pero tampoco lo hace bien , si queremos quer lance la orden en el minimo de la barra - el valor del stop como seria entonces , ninguna de las 3 opciones que devuelve la instruccion CalculationMode me funciona acaso no serviria esta instruccion , muchisimas gracias .
Re: SISTEMA PARA NT AYUDA PROGRAMACION
Hola,
Esta es la última ayuda que te puedo dar al respecto durante unos días, pues me voy fuera esta mañana y no podré conectarme dursante un par de semanas.
Lo que tienes que hacer es guardar el valor en una variable.
Por ejemplo: double DifBandas= BollingerUpper-BollingerLower[0].
Usar un SetStopLoss(CalculationMode.Price, Cierre) desde la posición Flat para que cubra el temido escenario de la primera barra.
Y usar SetStopLoss(CalculationMode.Price, DifBandas) desde el bloque de la posición Long una vez estamos largos. En cada tick te irá recalculando el nuevo valor y modificando el stop loss.
Espero que te salga.
Saludos y lo comenamos a mi vuelta.
Esta es la última ayuda que te puedo dar al respecto durante unos días, pues me voy fuera esta mañana y no podré conectarme dursante un par de semanas.
Lo que tienes que hacer es guardar el valor en una variable.
Por ejemplo: double DifBandas= BollingerUpper-BollingerLower[0].
Usar un SetStopLoss(CalculationMode.Price, Cierre) desde la posición Flat para que cubra el temido escenario de la primera barra.
Y usar SetStopLoss(CalculationMode.Price, DifBandas) desde el bloque de la posición Long una vez estamos largos. En cada tick te irá recalculando el nuevo valor y modificando el stop loss.
Espero que te salga.
Saludos y lo comenamos a mi vuelta.
___________________________
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
Re: SISTEMA PARA NT AYUDA PROGRAMACION
ok , muchisimas gracias y que lo pases muy bien , saludos .
Si te ha gustado este hilo del Foro, ¡compártelo en redes!