SISTEMA PARA NT AYUDA PROGRAMACION

Todo sobre el trading en los mercados financieros: funcionamiento, dudas, noticias, etc.
Responder
R333
Mensajes: 23
Registrado: 26 Jun 2011 23:39

SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por R333 »

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 ) ;
}
CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por CJS »

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,
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
R333
Mensajes: 23
Registrado: 26 Jun 2011 23:39

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por R333 »

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 ) ;
}
CJS
Mensajes: 174
Registrado: 01 May 2008 16:54
Ubicación: Barcelona

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por CJS »

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,
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
R333
Mensajes: 23
Registrado: 26 Jun 2011 23:39

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por R333 »

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 .

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

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por CJS »

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.
___________________________

El trading puede aportar beneficios mucho más valiosos que el dinero.
CJS
R333
Mensajes: 23
Registrado: 26 Jun 2011 23:39

Re: SISTEMA PARA NT AYUDA PROGRAMACION

Mensaje por R333 »

ok , muchisimas gracias y que lo pases muy bien , saludos .
Si te ha gustado este hilo del Foro, ¡compártelo en redes!


Responder

Volver a “Trading en General”