Página 1 de 1

Expert advisor que cierre ordenes a determinada hora

Publicado: 13 Nov 2009 17:37
por eurer
Tengo un expert advisor que cierra órdenes abiertas a la hora que yo lo especifique.Me falta que cierre además a esa misma hora, tanto órdenes abiertas como órdenes pendientes.
Ejemplo: que a las 21:15 cierre órdenes abiertas, y también órdenes pendientes.
En el EA que subo se puedo poner la hora de cierre de órdenes abiertas,pero no me cierra las órdenes pendientes que tenga puestas.
Si alguien es tan amable y le añade esa función estaré eternamente agradecido.
Fue obra de nstrader este EA.
Saludos.

#property copyright "Copyright © 2009, NsTrader"
#property link "[email protected]"

extern int Hora = 22;
extern int Minutos = 00;
//+------------------------------------------------------------------+
//| expert initialization function |
//+------------------------------------------------------------------+
int init()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert deinitialization function |
//+------------------------------------------------------------------+
int deinit()
{
//----

//----
return(0);
}
//+------------------------------------------------------------------+
//| expert start function |
//+------------------------------------------------------------------+
int start()
{
//----
int THora = TimeHour(TimeCurrent());
int TMin = TimeMinute(TimeCurrent());

Comment(THora,":",TMin);

if(Hora == THora && Minutos == TMin)
{
OClose(false);//true cierra solo las que estén en beneficio / false cierra todas
}
//----
return(0);
}
//+------------------------------------------------------------------+

void OClose(bool profit)
{
for(int cnt=0;cnt<OrdersTotal();cnt++)
{
if(OrderSelect(cnt,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderSymbol() != Symbol()) continue;
if(OrderType() <= 1 && ((profit && OrderProfit() > 0) || !profit))
{
color c;
double closePrice;

int tradeDirection = 1 - 2 * ( OrderType() % 2 );
if( tradeDirection > 0)
{
c = Blue;
closePrice = MarketInfo(Symbol(),MODE_BID);
}
else
{
c = Violet;
closePrice = MarketInfo(Symbol(),MODE_ASK);
}
OrderClose(OrderTicket(), OrderLots(), closePrice, 3, c);

}
}
}

Re: Expert advisor que cierre ordenes a determinada hora

Publicado: 16 Nov 2009 18:03
por elcctrro
Aqui tienes la modificación, un saludo.

Re: Expert advisor que cierre ordenes a determinada hora

Publicado: 16 Nov 2009 23:57
por eurer
Funciona de maravilla,como un reloj suizo.
Mil gracias electro. ;-)

Re: Expert advisor que cierre ordenes a determinada hora

Publicado: 17 Nov 2009 16:46
por elcctrro
Si quieres que comentemos algo del experto... msn.
un saludo.