Ayuda a la codificación de ordersend()... - página 3

 
mugged:

Raptor, si no te importa... ¿cómo pensabas comprobar la conectividad vía php?

Lo que tenía en mente era esto:

El EA enviará un pequeño archivo a través de FTP cada 2 minutos (podría ser 5 minutos, 30 minutos, lo que su tolerancia es ... * ) a mi servidor web alojado, que se ejecuta en ese servidor web será un trabajo Cron que busca el archivo recibido a través de FTP y comprueba si se ha actualizado en los últimos 2 minutos * si no lo ha hecho me envía un correo electrónico de alerta.

 
SDC:
Siempre lo he hecho así porque así es como lo hacen en los ejemplos del libro MQL4 pero ahora estoy pensando que no parece correcto, seguramente si abres en el precio Ask quieres tomar ganancias a ese precio + tu cantidad de TP, y quieres parar en ese precio - tu cantidad de SL ?

Si quieres parar en el precio X. ¿Qué significa eso? ¿Quiere parar cuando la oferta alcance el precio x (o cuando la demanda lo alcance)?

Si quieres un SL de 3 pips en una compra y usas Ask - 3*pips2dbl. En el momento en que abre, está a 1 pip de distancia (asumiendo un spread de 2 pips.) De nuevo depende de su definición

Si se refiere a cuando la Oferta alcanza el precio-x, en una compra su SL sería el precio-x. Pero en una venta usted todavía quiere parar en el precio-x pero el precio de activación debe ser relativo al ask. precio-x+spread.

¿Qué haces cuando el spread cambia? En una Venta, eso significa que para cerrar en la misma posición (una Oferta) debes modificar el TP/SL. Depende de su definición.

Lo que hago es hacer todos los cálculos en relación con la oferta, y ajustar al final.

//want to open at P
if (OP == OP_BUY)  double bid.to.open = Ask-Bid, bid.to.stop = 0,       DIR=+1.;
else                      bid.to.open = 0;       bid.to.stop = Ask-Bid; DIR=-1.;
:
if ((Bid - P) *DIR >= 0.){ // Time to open
  double openPrice = Bid + bid.to.open,
  OrderSend(NULL, OP, v, Bid+bid.to.open...)
 
WHRoeder:

Mi enfoque es simplemente informar del error y volver.

Mi preocupación es que tengo una orden abierta con SL & TP = 0 y mi EA no tiene conexión a Internet....... Prefiero que me avisen de esta posibilidad aunque mi EA esté en un VPS o en mi propio servidor colocado.
 

No es que esté en desacuerdo con eso, lo que sí he dicho es "informar del error".

No hay nada que el EA pueda hacer con isConnected()==false más que esperar.

No hay nada que el EA pueda hacer con ERR_TRADE_TIMEOUT más que esperar y luego ver.

Regresar desde el inicio y esperar el siguiente tick y luego recuperar es lo más fácil.

 
WHRoeder:
No estoy en desacuerdo con eso, dije "reportar el error". No hay nada que el EA pueda hacer con isConnected()==false o ERR_TRADE_TIMEOUT sino esperar al siguiente tick y luego ver.
Claro, sólo me aseguraba de que se entendía lo que quería decir, en algún momento me gustaría que un perro guardián me dijera que algo no está bien... de ahí la idea del cron job y el PHP.
 
mugged:

Raptor, si no te importa... ¿cómo pensabas comprobar la conectividad a través de php?

Tal vez algo como esto...

<?php
$to = "recipient@example.com";
$subject = "EA is silent";
$body = "EA has stopped responding . . . ";

$file = 'somefile.txt';
$filetime = filemtime($file);
$timetwomins = time()-120; // two mins ago

if ($filetime < $timetwomins) {
   mail($to, $subject, $body)
}
?>
 

Supongo que lo que voy a hacer es tener una alerta por correo electrónico justo antes de que la orden se dispare y luego otra que confirme que la parada ha sido modificada.

Así que si recibo el primero y el correspondiente correo electrónico de modificación no viene a través de entonces sé que hay problemas.

 
mugged:

Supongo que lo que voy a hacer es tener una alerta por correo electrónico justo antes de que la orden se dispare y luego otra que confirme que la parada ha sido modificada.

Así que si recibo el primero y el correspondiente correo electrónico de modificación no viene a través de entonces sé que hay problemas.

Creo que enviar un correo después de que la orden se dispare y otro que confirme que el stop ha sido cambiado
 
qjol:
creo que enviar un correo después de que la orden se dispara y otro confirma la parada se ha cambiado

Mi única preocupación con el envío del correo electrónico después es lo que si la orden se dispara y luego su conexión muere antes de que el correo puede ser enviado ...

De la otra manera tienes el primer correo diciéndote que algo está a punto de dispararse, y luego el segundo confirmando la modificación del stop.

 
RaptorUK:

Tal vez algo como esto...


Raptor, me gusta esta idea. He pensado en ello en el pasado, pero no tenía idea de cómo hacerlo.

Lo que tengo en este momento es sólo la EA el envío de un correo electrónico cada hora confirmando que está en marcha y funcionando. Sólo necesitaría alguna forma de comprobar ese correo y si no llega entonces enviar una advertencia. La misma idea diferente enfoque supongo.

Razón de la queja: