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

 

Sabes que estaba pensando en lo que te dije antes que dije:

Si es una compra:

SL = Oferta - StopLoss* Punto

TP = Oferta + TakeProfit* Punto

Si es una venta:

SL = Oferta + Punto de StopLoss*;

TP = Oferta - Punto de Beneficio*;

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 de venta quieres tomar ganancias a ese precio + tu cantidad de TP, y quieres parar en ese precio - tu cantidad de SL ?

En otras palabras, la forma en que lo tienes parece ser correcta o hay algo que me estoy perdiendo?

 
mugged:

1) Sí, este método funciona. Pero, ¿hay alguna forma de evitarlo? Odio pensar en el peor caso en el que la orden inicial entra pero la modificación no se produce (la conexión muere, se produce un error, etc.)

Buena pregunta. NUNCA he visto a nadie con una solución para esto.

Por favor, pregunte a su corredor sobre este "peor caso".

 
mugged:

1) Sí, este método funciona. Pero, ¿hay alguna forma de evitarlo? Odio pensar en el peor caso en el que la orden inicial entra pero la modificación no se produce (la conexión muere, se produce un error, etc.)

En mi código, si el OrderModify falla, se reintenta varias veces, si los reintentos fallan, la orden se cierra, si el OrderClose falla, se reintenta, si los reintentos fallan, hay otra función que comprueba todas las operaciones, detectará la orden sin SL o TP e intentará cerrarla. Todas estas fallas generarán errores, estos errores son reportados en pantalla y por correo electrónico, el correo electrónico también generará una alerta empujada a mi teléfono móvil.

Hay un modo de fallo más que todavía no he manejado, que es una pérdida de conectividad a Internet inmediatamente después de que la orden se coloca y antes de que se modifique.... Tengo una idea para manejar esto, pero no tengo los conocimientos de codificación PHP necesarios.

 

Me puse en contacto con mi broker, y fueron bastante inútiles ya que no ofrecen ninguna ayuda de programación. Todo lo que el representante sabía era cómo aplicar un EA al gráfico.

Es un poco extraño que este problema acaba de empezar a suceder sin embargo, que estaba funcionando perfectamente bien en el pasado. Me pregunto qué lo causó...

 
¿Habéis tenido este problema durante mucho tiempo o es algo nuevo?
 
Es un hecho con un broker ECN.
 

Gracias por vuestra ayuda, chicos.

Creo que voy a trabajar en ello.

 
RaptorUK:

En mi código si la OrderModify falla se reintenta varias veces, si los reintentos fallan entonces la Orden se cierra, si la OrderClose falla se reintenta, si los reintentos fallan hay otra Función que comprueba todas las operaciones, detectará la Orden sin SL o TP establecido e intentará cerrarla. Todas estas fallas generarán errores, estos errores son reportados en pantalla y por correo electrónico, el correo electrónico también generará una alerta empujada a mi teléfono móvil.

Hay un modo de fallo más que todavía no he manejado, que es una pérdida de conectividad a Internet inmediatamente después de que la orden se coloca y antes de que se modifique.... Tengo una idea para manejar esto, pero no tengo los conocimientos de codificación PHP necesarios.


Raptor, si no te importa... ¿cómo planeas comprobar la conectividad a través de php?
 
Tal vez podría tener un teléfono móvil en modo módem conectado al ordenador, de modo que si el ordenador pierde su conectividad regular a Internet puede volver a conectarse temporalmente utilizando la red del teléfono móvil
 
RaptorUK:
Hay un modo de fallo más que todavía no he manejado, que es una pérdida de conectividad a Internet inmediatamente después de que la orden se coloca y antes de que se modifique . Tengo una idea para manejar esto pero no tengo los conocimientos de codificación PHP necesarios.

Mi enfoque es simplemente reportar el error y regresar. En el siguiente tick, en un reinicio, en la reconexión, el bucle orderSelect de EA encontrará la orden abierta y luego establecerá los stops.

El mayor problema es que el orderSend no devuelve ningún resultado. La orden puede estar abierta o no. Una vez que usted consigue la siguiente garrapata entonces usted sabrá.

Razón de la queja: