Estoy haciendo un EA y hay una parte del código que me da un problema.
Al estar el EA activo, a veces, al entrar una orden de compra, por ejemplo, resulta que inmediatamente me la cierra.
Supongo que el código tiene un "fallo" que no acierto a detectar.
A ver si un experto puede revisarlo y dar con el fallo.
La parte de código en cuestión es esta:
//+------------------------------------------------------------------+
//| Cerrar operacion si el
precio toca Bands superior/inferior |
//+------------------------------------------------------------------+
if (TimeCurrent() - PrevAlertTime > Period()*60)
{
RefreshRates();
for(int ii=0;ii<OrdersTotal();ii++)
{
if(OrderSelect(ii,SELECT_BY_POS,MODE_TRADES)==fals e) break;
{
//--- Precio toca Band superior
if(OrderType()==OP_BUY && OrderSymbol() == Symbol())
{
if(Bid > actualUpperLine && actualHIGH > actualUpperLine && anterior1HIGH < anterior1UpperLine)
{
OrderClose(ii,OrderLots(),0,2,Yellow);
PrevAlertTime=TimeCurrent();
if(EmailOn==true)
{
SendMail(Symbol() + " TF " + Period() + " Closed Long " , TimeToStr(TimeCurrent(),TIME_SECONDS));
}
}
}
//--- Precio toca Band inferior
if(OrderType()==OP_SELL && OrderSymbol() == Symbol())
{
if( Ask < actualLowerLine && actualLOW < actualLowerLine && anterior1LOW > anterior1LowerLine)
{
OrderClose(ii,OrderLots(),0,2,Yellow);
PrevAlertTime=TimeCurrent();
if(EmailOn==true)
{
SendMail(Symbol() + " TF " + Period() + " Closed Short " , TimeToStr(TimeCurrent(),TIME_SECONDS));
}
}
}
continue;
}
}
}
//----
Le llevo dando vueltas y no consigo ver porqué pasa.
Gracias y un saludo.