Ea para cerrar trades cuando precio toca bands
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.
Re: Ea para cerrar trades cuando precio toca bands
Cita:
Iniciado por
boysinhaus
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.
No entiendo mucho de programacion, no obstante me hago la siguiente pregunta,
Segun entiendo el Eas es para trabajar con bollinger bands, despues de que abre la operacion, el debe de cerrar cuando toca la banda contraria o cuando toca la cualquier banda?
te lo comento porque si lo estas programando para que cierre cuando vuelva a tocar la banda, pues si el evalua cada tick y si la vela sigue tocando la misma banda, para mi es logico que te cierre la operacion que acaba de abrir, no se si mi percepcion es correcta?
Re: Ea para cerrar trades cuando precio toca bands
Gracias tivag,
Lo veré. Haré pruebas con él. Puede que me sirva. Gracias.
Saludos.
1 Archivos adjunto(s)
Re: Ea para cerrar trades cuando precio toca bands
Cita:
Iniciado por
boysinhaus
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.
hola , hace tiempo que me baje esto pero aun no he probado si funciona , no se si te ayudara en algo pero por si las moscas ...... saludos
Re: Ea para cerrar trades cuando precio toca bands
Gracias Wolfman,
Está claro que es lo que dices tu. Tema aclarado. Perdona el retraso, estuve de viaje.... Saludos.