Código:
int start()
{
double Ema1 = iMA(NULL,0,ema1,1,MODE_SMA,PRICE_LOW,1);
double Ema2 = iMA(NULL,0,ema2,1,MODE_SMA,PRICE_LOW,1);
int BuyOrder=0,SellOrder=0,Ordenes=OrdersTotal();
int _GetLastError=0,_OrdersTotal=OrdersTotal();
for(int z=_OrdersTotal-1; z>=0; z --)
{
if(!OrderSelect(z,SELECT_BY_POS))
{
_GetLastError=GetLastError();
Print("OrderSelect( ",z,", SELECT_BY_POS ) - Error #",
_GetLastError);
continue;
}
if(OrderSymbol()!=Symbol()) continue;
if(OrderMagicNumber()!=MagicNumber) continue;
if(OrderType()==OP_BUY)
{
if(OrderTakeProfit()== true)
{
if(!OrderClose(OrderTicket(),OrderLots(),Bid,5,Green))
{
_GetLastError=GetLastError();
Alert("Error al cerrar la posición",_GetLastError);
return(-1);
}
}
else
{
return(0);
}
}
if(OrderType()==OP_SELL)
{
if(OrderTakeProfit()==true)
{
if(!OrderClose(OrderTicket(),OrderLots(), Ask,5,Red))
{
_GetLastError=GetLastError();
Alert("Error al cerrar la posición № ",_GetLastError);
return(-1);
}
}
else return(0);
}
}
if(OrdersTotal()>0)
{
if(OrderSelect(OrdersTotal()-1,SELECT_BY_POS,MODE_TRADES))
{
if(OrderType()==OP_BUY)
{
if(Ema1>Ema2)
{
int ticket = OrderSend(Symbol(),OP_BUY,lots,Ask,5,Ask-stop*Point,Ask+take*Point,"FinalV1",MagicNumber,0,Green);
}
}
if(OrderType()==OP_SELL)
{
if(Ema1<Ema2)
{
int ticket = OrderSend(Symbol(),OP_SELL,lots,Bid,5,Bid+stop*Point,Bid-take*Point,"FinalV1",MagicNumber,0,Red);
}
}
}
}
return(0);
}