Re: Cómo hago que mi EA limite la apertura de ordenes por dia?
Cita:
Iniciado por
Nelson Pineda
Maestro tivag, muchas gracias. Le envío un ejemplo del código por acá para seguir sus indicaciones. He intentado escribirlo de un lado y del otro y de aca para alla. Donde puedo colocar el código que me ha sugerido?
hola de maestro nada , ojala lo fuese... tienes que ponerlo en la parte que te convenga , pues ten en cuenta que eso solo lo va a realizar una vez al dia, por ejemplo si quieres que te haga un analisis al dia pues lo pones antes del analisis, en tu caso como lo que quieres es que solo sea una compra al dia pues ponerlo delante de donde lanzas la orden de apertura, declarando en la parte superior la variable int Today2 = -1;
"
if((iBands(NULL,PERIOD_M15,14,0,1,PRICE_OPEN,MODE_ LOWER,1)>iMA(NULL,0,9,1,MODE_EMA,PRICE_OPEN,1))) //apertura de orden Buy
{
if (DayOfWeek() != Today2)
{
Today2 = DayOfWeek();
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage ,0,0,"EA1",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStopLoss,Digits),NormalizeDouble(TheTa keProfit,Digits),0,Green);
}
return(0);
}
}
}
}"
saludos y espero que te sirva
Re: Cómo hago que mi EA limite la apertura de ordenes por dia?
Cita:
Iniciado por
tivag
hola lo podrias hacer de la siguiente manera:
int Today2 = -1;
{
if (DayOfWeek() != Today2)
{
Today2 = DayOfWeek();
"lo que quieras"();
}
}
esto te hara que una vez al dia te ejecute "lo que tu quieras".
espero que te sirva
saludos
avoid Sunday, means DayOfWeek() == 0
bcoz there is no volume
evitar Domingo , significa DayOfWeek () == 0
bcoz no hay volumen
Re: Cómo hago que mi EA limite la apertura de ordenes por dia?
Cita:
Iniciado por
Nelson Pineda
Hola, compañeros. He estado buscando la forma de como hacer que mi EA limite la apertura de ordenes al dia. Quiero que abra solo una cada dia, pero no he resuelto cómo. Necesito la opinión de un experto. Me pueden ayudar?
hola lo podrias hacer de la siguiente manera:
int Today2 = -1;
{
if (DayOfWeek() != Today2)
{
Today2 = DayOfWeek();
"lo que quieras"();
}
}
esto te hara que una vez al dia te ejecute "lo que tu quieras".
espero que te sirva
saludos
Re: Cómo hago que mi EA limite la apertura de ordenes por dia?
Excelente. Lo pruebo a la brevedad posible, Muchas gracias por su generosidad, compañero.
Reputación :star::star::star::star::star:
Re: Cómo hago que mi EA limite la apertura de ordenes por dia?
Maestro tivag, muchas gracias. Le envío un ejemplo del código por acá para seguir sus indicaciones. He intentado escribirlo de un lado y del otro y de aca para alla. Donde puedo colocar el código que me ha sugerido?
//+------------------------------------------------------------------+
extern int MagicNumber=01;
extern double Lots =0.1;
extern double StopLoss=100;
extern double TakeProfit=150;
extern int TrailingStop=80;
extern int Slippage=3;
//+------------------------------------------------------------------+
// EA1 start function
//+------------------------------------------------------------------+
int start()
{
double MyPoint=Point;
if(Digits==3 || Digits==5) MyPoint=Point*10;
double TheStopLoss=0;
double TheTakeProfit=0;
if( TotalOrdersCount()==0 )
{
int result=0;
if((iBands(NULL,PERIOD_M15,14,0,1,PRICE_OPEN,MODE_LOWER,1)>iMA(NULL,0,9,1,MODE_EMA,PRICE_OPEN,1))) //apertura de orden Buy
result=OrderSend(Symbol(),OP_BUY,Lots,Ask,Slippage ,0,0,"EA1",MagicNumber,0,Blue);
if(result>0)
{
TheStopLoss=0;
TheTakeProfit=0;
if(TakeProfit>0) TheTakeProfit=Ask+TakeProfit*MyPoint;
if(StopLoss>0) TheStopLoss=Ask-StopLoss*MyPoint;
OrderSelect(result,SELECT_BY_TICKET);
OrderModify(OrderTicket(),OrderOpenPrice(),Normali zeDouble(TheStopLoss,Digits),NormalizeDouble(TheTa keProfit,Digits),0,Green);
}
return(0);
}
}
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
OrderSelect(cnt, SELECT_BY_POS, MODE_TRADES);
if(OrderType()<=OP_SELL &&
OrderSymbol()==Symbol() &&
OrderMagicNumber()==MagicNumber
)
{
if(OrderType()==OP_BUY)
{
if(TrailingStop>0)
{
if(Bid-OrderOpenPrice()>MyPoint*TrailingStop)
{
if(OrderStopLoss()<Bid-MyPoint*TrailingStop)
{
OrderModify(OrderTicket(),OrderOpenPrice(),Bid-TrailingStop*MyPoint,OrderTakeProfit(),0,Green);
return(0);
}
}
}
}
else
{
if(TrailingStop>0)
{
if((OrderOpenPrice()-Ask)>(MyPoint*TrailingStop))
{
if((OrderStopLoss()>(Ask+MyPoint*TrailingStop)) || (OrderStopLoss()==0))
{
OrderModify(OrderTicket(),OrderOpenPrice(),Ask+MyP oint*TrailingStop,OrderTakeProfit(),0,Red);
return(0);
}
}
}
}
}
}
return(0);
}
int TotalOrdersCount()
{
int result=0;
for(int i=0;i<OrdersTotal();i++)
{
OrderSelect(i,SELECT_BY_POS ,MODE_TRADES);
if (OrderMagicNumber()==MagicNumber) result++;
}
return (result);
}
//+---------------------------------------------------+
Cómo hago que mi EA limite la apertura de ordenes por dia?
Hola, compañeros. He estado buscando la forma de como hacer que mi EA limite la apertura de ordenes al dia. Quiero que abra solo una cada dia, pero no he resuelto cómo. Necesito la opinión de un experto. Me pueden ayudar?