Página 1 de 1

EA para cierre de ordenes

Publicado: 17 Ago 2016 17:16
por Gamelu
Hola, he hecho un EA para que me cierre ordenes que yo he metido manualmente, la condición es que las cierre a mas de 3 o menos de 3 pips en el € y que al menos hayan pasado 15 minutos desde la apertura de la orden.

Parece bien sencillo de programar, y tras probarlo en demo no ejecuta el cierre, he hecho pruebas varias y no pasa del siguiente if, y no se por que.

if(timeinseconds<restatiempo && pipswin<ordenprofit)

Os subo el código a ver si alguien me ilumina.

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 18:31
por atgr90
Buenas Gamelu,

yo te lo puedo mirar. Peeeeero ¿puedes poner algo que cree las ordenes para eliminarlas? A ver, yo te puedo mirar el codigo, pero no me voy a poner a meter ordenes a mano para luego mirar si las borro, eso es una perdida de tiempo. Si puedes hacer un codigo que abra ordenes para luego intentar borrarlas con tu cosa...

Aparte, esto ya no me gusta:

ordenprofit=OrderOpenPrice()-Close[0];

Para calcular el profit usas el Close[0] de la propia barra... Uf... no way... A ver, esto es como mirar el futuro, imagina que estas operando en barras de H1, estas en el minuto 16 de la barra y miras el Close[0] de la propia barra H1 (que pasara dentro de 44 minutos) para tomar una decision de trading... Mal camino, estas usando datos del futuro.

Anyway, si generas codigo para abrir ordenes automaticamente, que luego se puedan borrar con tu EA lo miro un rato.

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:11
por atgr90
Aparte...

haces esto:

restatiempo=TimeCurrent()-OrderOpenTime();

Cuando has definido la variable "restatiempo" de tipo double:

double restatiempo=0;

Cuando la funcion TimeCurrent() devuelve un resultado de tipo "datetime", lo mismo que la funcion OrderOpenTime() como pone en el manual de MQl4:

https://docs.mql4.com/dateandtime/timecurrent
https://docs.mql4.com/dateandtime/timecurrent

Peeeero aun asi, a pesar de que no tiene el tipo de variable que debe de ser, podria ser que el calculo lo
haga bien. O puede que no.

Ya he apañado en el EA para que cada nuevo dia abra una nueva orden. Asi tengo algo que cerrar... Aunque no te garantizo nada.

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:12
por atgr90
Perdon este otro enlace, que he puesto el mismo repe.

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:21
por Gamelu
He testeado el timecurrent y no me da problemas a pesar de no ser lo idóneo,

Creo que el problema mas bien esta :
ordenprofit=(OrderOpenPrice()-Close[0]);
if(ordenprofit<0)
ordenprofit=-1*ordenprofit;

este if : if(pipswin<ordenprofit) no lo hace bien... no veo el error

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:26
por atgr90
No deberia de ser esto???

ordenprofit=(OrderOpenPrice()-Close[0]);

if(ordenprofit<0) ordenprofit=-1*ordenprofit;

Pruebalo

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:38
por Gamelu
no hay ninguna diferencia

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:47
por atgr90
Prueba esto y dime que te sale. He metido codigo para que abra una operacion cada dia.

Yo lo ejecuto en M1 openprice con spread 10.


Y... logro cerrarla, con las condiciones que indicas. Vamos es lo que me parece.

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 19:59
por Gamelu
te aseguro que quiero close[0] no close[1]

close[0] es la mitad entre ASK y BID digamos, no es el futuro, es el presente, pero la mitad como te he dicho

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 20:03
por atgr90
Tu sabras porque quieres close[0].

Bueno, ¿va o no va?

Re: EA para cierre de ordenes

Publicado: 17 Ago 2016 20:21
por Gamelu
Cuelgo la solución, a sido lo de siempre, la guerra que dan los dígitos