Empezamos por uno que lo que hace es cerrar todas las posiciones abiertas y las pendientes.
Tal cual está solo hay que copiar y pegar en el MetaEditor y darle a compilar, ccon lo que nos creará el archivo mt4 que será el que hay que poner dentro de la carpeta MQL4/Experts.
Código:
//+------------------------------------------------------------------+
//| Cerrar_todo.mq4 |
//+------------------------------------------------------------------+
#property copyright "Elverge"
#property version "1.00"
extern int num_magic = 0; // SI TENEMOS MAS DE UN ROBOT, HAY QUE CAMBIAR EL NUMERO MÁGICO
extern bool Tancar = false; // CUANDO QUERAMOS CERRAR LAS POSICIONES SE CAMBIA POR VERDADERO
int start()
{
if (Tancar == true)
{
Tancar();
return (0);
}
}
int Tancar()
{
int total = OrdersTotal();
for(int i=total-1;i>=0;i--)
{
OrderSelect(i, SELECT_BY_POS,MODE_TRADES);
if ( OrderMagicNumber() == num_magic)
{
int type = OrderType();
bool result = false;
switch(type)
{
//CIERRA COMPRAS
case OP_BUY : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_BID), 0, CLR_NONE );
break;
//CIERRA VENTAS
case OP_SELL : result = OrderClose( OrderTicket(), OrderLots(), MarketInfo(OrderSymbol(), MODE_ASK), 0, CLR_NONE );
break;
//CIERRA ORDENES PENDIENTES
case OP_BUYLIMIT :
case OP_BUYSTOP :
case OP_SELLLIMIT :
case OP_SELLSTOP : result = OrderDelete( OrderTicket() );
}
if(result == false)
{
Alert("Order " , OrderTicket() , " fallo al cerrar. Error:" , GetLastError() );
Sleep(3000);
}
}
}
return(0);
}
Marcadores