Borrar órdenes pendientes

Responder
davemac
Mensajes: 4
Registrado: 14 Jun 2017 18:37

Borrar órdenes pendientes

Mensaje por davemac » 04 Ene 2019 22:31

Buenas, lo primero feliz año y un saludo al foro.
He buscado por la red y en esta web algún Ea o script que borre las ordenes pendientes una vez pasado un tiempo determinado, por ejemplo si pone 5 minutos en un campo borre todas las órdenes pendientes que estén puestas en MT4 si han superado ese tiempo desde que se lanzaron.
Encontré algunos expert para manejar órdenes pendientes pero ninguno tiene esa función.
Gracias de antemano y un saludo.



Avatar de Usuario
X-Trader
Administrador
Mensajes: 10500
Registrado: 06 Sep 2004 10:18
Contactar:

Re: Borrar órdenes pendientes

Mensaje por X-Trader » 08 Ene 2019 09:20

Hola Davemac, en realidad es más sencillo de lo que parece: observa que en la función OrderSend, cuya estructura es:
OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
Hay un campo de vencimiento de la orden (lo he marcado en negrita).

Si en ese campo introduces el valor resultante de este cálculo, donde minutes es el valor en minutos que desees, ya lo tienes:

Código: Seleccionar todo

expiration = TimeCurrent()+60*minutes

Saludos,
X-Trader


"Los sistemas de trading pueden funcionar en ciertas condiciones de mercado todo el tiempo, en todas las condiciones de mercado en algún momento del tiempo, pero nunca en todas las condiciones de mercado todo el tiempo."

davemac
Mensajes: 4
Registrado: 14 Jun 2017 18:37

Re: Borrar órdenes pendientes

Mensaje por davemac » 09 Ene 2019 14:28

X-Trader escribió:Hola Davemac, en realidad es más sencillo de lo que parece: observa que en la función OrderSend, cuya estructura es:
OrderSend(string symbol, int cmd, double volume, double price, int slippage, double stoploss, double takeprofit, string comment=NULL, int magic=0, datetime expiration=0, color arrow_color=CLR_NONE)
Hay un campo de vencimiento de la orden (lo he marcado en negrita).

Si en ese campo introduces el valor resultante de este cálculo, donde minutes es el valor en minutos que desees, ya lo tienes:

Código: Seleccionar todo

expiration = TimeCurrent()+60*minutes

Saludos,
X-Trader
Gracias por la respuesta. Un saludo.




Responder

Volver a “Expert Advisors”