Página 1 de 1

Colocacion de stop loss automaticamente al lanzar una orden

Publicado: 19 Jun 2009 15:05
por rau
Hola, alguien sabe decirme como debo hacer para que al lanzar una orden se me coloque el stop loss automaticamente?

Publicado: 19 Jun 2009 15:07
por FUTURIBLE
Hola rau
Eso dependerá de la plataforma de trading con la que trabajes.
Un saludo

Publicado: 19 Jun 2009 15:23
por rau
Metatrader .

Publicado: 19 Jun 2009 16:10
por eurer
Es imposible, tienes que ponerlo luego manualmente.
Otra opcion es quizas con el expert advisor, un script que te lo haga...

Publicado: 19 Jun 2009 17:02
por rau
Y es complicado hacer un EA de ese tipo ? :(

Publicado: 19 Jun 2009 17:12
por rufus
Con Oanda puedes prefijar un stop en pips, % de pérdidas, % de la posición, etc, pero no es metatrader. Tb con el profit

Publicado: 19 Jun 2009 17:42
por rau
Lo que pasa es que solo he trabajado con metatrader , entonces toy con XTB que me parece que con los spread que tiene en forex vale la pena.

Siempre he utilizado el stop mental, ahora tambien haré lo mismo pero antes tenia conexion en casa pero por trabajo me he tenido que desplazar, me pillé internet movil y lo que me da miedo es perder la conexion en medio de una operacion y se me lie la gorda. Manualmente podria hacerlo pero perderia un tiempo precioso porque me gustan los time frame pequeños.

Gracias por la informacion rufus !

Publicado: 19 Jun 2009 18:16
por eurer
Mira aqui lo del EA , busca en search por ejemplo "automatic stop"


http://www.mql4.com/

Publicado: 19 Jun 2009 18:17
por eurer

Publicado: 19 Jun 2009 23:57
por rau
Muchas gracias eurer, voy a empezar a estudiar un poco de programacion xq me vendrá muy bien, tengo tanto que aprender y no se puede tanto tan rapido.

//+------------------------------------------------------------------+
//| close.mq4 |
//| Copyright © 2004, MetaQuotes Software Corp. |
//| http://www.metaquotes.net/ |
//+------------------------------------------------------------------+
#property copyright "Copyright © 2004, MetaQuotes Software Corp."
#property link "http://www.metaquotes.net/"
#property show_confirm

//+------------------------------------------------------------------+
//| script "close first market order if it is first in the list" |
//+------------------------------------------------------------------+
int start()
{
bool result;
double price;
int cmd,error;
//----
if(OrderSelect(0,SELECT_BY_POS,MODE_TRADES))
{
cmd=OrderType();
//---- first order is buy or sell
if(cmd==OP_BUY || cmd==OP_SELL)
{
while(true)
{
if(cmd==OP_BUY) price=Bid;
else price=Ask;
result=OrderClose(OrderTicket(),OrderLots(),price,3,CLR_NONE);
if(result!=TRUE) { error=GetLastError(); Print("LastError = ",error); }
else error=0;
if(error==135) RefreshRates();
else break;
}
}
}
else Print( "Error when order select ", GetLastError());
//----
return(0);
}
//+------------------------------------------------------------------+

A ver si me vale xq no entiendo nada, lo voy a probar a ver que me sale.

Saludos !!

Publicado: 30 Jun 2009 13:23
por elcctrro
Aplicate esta script cuando tengas ya abiertas las ordenes ...

//+------------------------------------------------------------------+
//| StopLossMove.mq4 |
//| |
//| |
//| Bookkeeper, 2006, [email protected] |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

//+------------------------------------------------------------------+
extern int Distance=5; // Distancia del Stop Loss |
extern bool UpDoun=true; // =false |
// =true |
//+------------------------------------------------------------------+
void start()
{
double NewPrice;
int i,Total,Dist;
int Dgts=MarketInfo(Symbol(),MODE_DIGITS);
bool GoGo;
//+------------------------------------------------------------------+
// if(Distance<10>0)
{
for(i=Total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
NewPrice=Ask+Dist*Point;
if(UpDoun==true) GoGo=true;
else
{
if(OrderStopLoss()>NewPrice) GoGo=true;
else GoGo=false;
}
if(GoGo==true) if(OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(NewPrice,Dgts),
OrderTakeProfit(),
OrderExpiration(),
CLR_NONE)!=TRUE)
Print("LastError = ", GetLastError());
}
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
{
NewPrice=Bid-Dist*Point;
if(UpDoun==true) GoGo=true;
else
{
if(OrderStopLoss()<NewPrice) GoGo=true;
else GoGo=false;
}
if(GoGo==true) if(OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(NewPrice,Dgts),
OrderTakeProfit(),
OrderExpiration(),
CLR_NONE)!=TRUE)
Print("LastError = ", GetLastError());
}
}
}
}
}
//+------------------------------------------------------------------+

Un saludo

Publicado: 30 Jun 2009 13:26
por elcctrro
Aplicate esta script cuando tengas ya abiertas las ordenes ...

//+------------------------------------------------------------------+
//| StopLossMove.mq4 |
//| |
//| |
//| Bookkeeper, 2006, [email protected] |
//+------------------------------------------------------------------+
#property copyright ""
#property link ""

//+------------------------------------------------------------------+
extern int Distance=5; // Distancia del Stop Loss |
extern bool UpDoun=true; // =false |
// =true |
//+------------------------------------------------------------------+
void start()
{
double NewPrice;
int i,Total,Dist;
int Dgts=MarketInfo(Symbol(),MODE_DIGITS);
bool GoGo;
//+------------------------------------------------------------------+
// if(Distance<10>0)
{
for(i=Total-1; i>=0; i--)
{
if(OrderSelect(i, SELECT_BY_POS, MODE_TRADES)==true)
{
if(OrderSymbol()==Symbol() && OrderType()==OP_SELL)
{
NewPrice=Ask+Dist*Point;
if(UpDoun==true) GoGo=true;
else
{
if(OrderStopLoss()>NewPrice) GoGo=true;
else GoGo=false;
}
if(GoGo==true) if(OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(NewPrice,Dgts),
OrderTakeProfit(),
OrderExpiration(),
CLR_NONE)!=TRUE)
Print("LastError = ", GetLastError());
}
if(OrderSymbol()==Symbol() && OrderType()==OP_BUY)
{
NewPrice=Bid-Dist*Point;
if(UpDoun==true) GoGo=true;
else
{
if(OrderStopLoss()<NewPrice) GoGo=true;
else GoGo=false;
}
if(GoGo==true) if(OrderModify(OrderTicket(),
OrderOpenPrice(),
NormalizeDouble(NewPrice,Dgts),
OrderTakeProfit(),
OrderExpiration(),
CLR_NONE)!=TRUE)
Print("LastError = ", GetLastError());
}
}
}
}
}
//+------------------------------------------------------------------+

Un saludo

Publicado: 30 Jun 2009 13:39
por Fer137
En muchos brokers de metatrader si que puedes poner el stop y/o el takeprofit al mismo tiempo que pones la orden.
Lo acabo de probar en activtrades, sin problemas.

Y en los brokers que no dejen lo mas sencillo es clikear por ejemplo en la columna 'S/L' y sale una ventanita para modificaciones donde puedes poner el stop o el tp en un momento, tanto o mas rapido que cualquier script o EA que fueses a utilizar.