Archivo de la etiqueta: mql4

Cierre parcial de lotaje y break event en MT4

Bueno este simple script que les traigo que ha habido varias personas que me habían pedido que se lo codificara, me imagino que estará público en varios foros, pero era mas rápido codificarlo a gusto que ponerme a buscarlo.

Les voy a dejar el código aquí pegado por eso de que lo puedan configurar con alguna explicación de qué modificar para que el script se ejecute mas rápido

_____________________________________________________________

//+——————————————————————+
//| Partial_Close.mq4 |
//| VabRus[at]bk[dot]ru |
//| https://vabrusfx.wordpress.com/ |
//+——————————————————————+
#property copyright “VabRus[at]bk[dot]ru”
#property link “https://vabrusfx.wordpress.com/”
#property show_confirm
#property show_inputs // Si quitamos esta linea ya no nos pedirá que lo configuremos por lo que se ejecutará

                                                   // con la configuración del código

extern bool Break_Event = true;  //Si ponemos false no pasará el SL a BE sólo cerrara los lotes indicados en Close_Lots
extern double Close_Lots = 0.1;
extern int BEpip = 10; //Sólo funciona si Break_Event es true, lo que hace es sumarle los pips configurados al BE o restar si es venta

                                               // Cuidado con los dígitos del broker
//+——————————————————————+
//| script program start function |
//+——————————————————————+
int start()
{
CheckForClose();
return(0);
}

int CheckForClose()
{
for(int i=0;i<OrdersTotal();i++)
{
if(OrderSelect(i,SELECT_BY_POS,MODE_TRADES)==false) break;
if(OrderType()==OP_BUY && OrderSymbol() == Symbol())
{
if (Bid < OrderOpenPrice()) Alert(“Error apertura de precio menor que compra”); return(0);
if (Break_Event)
if (OrderModify(OrderTicket(), 0, OrderOpenPrice() + BEpip*Point, OrderTakeProfit(), 0, Green) == true)
{
Print (“Se modifico la compra”);
}
if (OrderClose(OrderTicket(), Close_Lots, Bid, 3, Green))
Print (“Se cerro ” + Close_Lots + ” lotes”);
}
if (Ask > OrderOpenPrice()) Alert(“Error apertura de precio mayor que venta”); return(0);
if(OrderType()==OP_SELL && OrderSymbol() == Symbol())
{
if (Break_Event)
if (OrderModify(OrderTicket(), 0, OrderOpenPrice() – BEpip*Point, OrderTakeProfit(), 0, Green) == true)
{
Print (“Se modifico la venta”);
}
if (OrderClose(OrderTicket(), Close_Lots, Ask, 3, Green))
Print (“Se cerro ” + Close_Lots + ” lotes”);

}
}
}

______________________________________________________________

No lo he probado pero espero que funcione correctamente cualquier problemilla o duda comenten.

Ahh es un script y por lo tanto va en la carpeta experts/script/…

Saludos y muchos pips a todos.

Pueden descargarlo de aquí.

Anuncios

Deja un comentario

Archivado bajo herramientas propias