Función OrderSendAsync() - página 6

 
Renat:

La cuestión es que la petición asíncrona prácticamente no da ningún estado "enviado con éxito".

La finalización exitosa de la función sólo significa "desde el punto de vista del cliente la orden parece correcta y fue lanzada a la tubería de red, espere la respuesta en OnTrade".

Lo siento, he estado fuera durante un tiempo.

Sin embargo, me gustaría aclarar esta frase: "Wait for reply onTrade" que se refiere a una situación en la que una solicitud no llegó al servidor.

Si la solicitud no ha llegado al servidor, no se generarán eventos comerciales que puedan estar relacionados con esta solicitud "perdida". ¿Verdad? Y si es así, tampoco obtendré una respuesta adecuada en OnTrade(). ¿Sería correcto sacar esa conclusión?

Si la función OrderSendAsync() finaliza con éxito, es posible que la solicitud no llegue al servidor, y en este caso es inútil esperar la respuesta en OnTrade()

?

 

sergeev:

Yedelkin:
¡Sps! Resulta que una petición asíncrona enviada con éxito puede perderse fácilmente y no entrar en el historial.

No.

Explíquese, por favor. "No" ¿es mi conclusión incorrecta, o es una confirmación de la misma?

Lo más probable es que sea una conclusión incorrecta, pero Renat dijo antes que "si la petición no llegó al servidor, no tiene ninguna posibilidad de aparecer en el terminal del cliente". Si seguimos con esta lógica: si la solicitud no tiene posibilidad de aparecer en el terminal del cliente, no tiene posibilidad de entrar en el terminal base y por tanto no tiene posibilidad de entrar en la base de órdenes históricas. Si este razonamiento no es correcto, ¿dónde está el error y cuál es?

 
Renat:

La cuestión es que la petición asíncrona prácticamente no da ningún estado "enviado con éxito".

La finalización exitosa de la función sólo significa que "desde el punto de vista del cliente, la orden parece correcta y fue lanzada a la tubería de la red, espere la respuesta en OnTrade".

Espero que en un futuro próximo OnTrade sea mejorado de tal manera que la comprobación de"la solicitud no llegó al servidor" pueda ser organizada por el usuario sin problemas y, de hecho, así como otros tipos de control de ejecución.

porque en su forma actual OnTrade no es capaz de tales hazañas, ya que no tiene ni idea de qué tipo de respuesta está trabajando.

 
Urain:

Espero que OnTrade se finalice en un futuro próximo para que la comprobación de"la petición no ha llegado al servidor" pueda ser organizada por el usuario sin problemas, así como otros tipos de control de ejecución.

porque OnTrade, tal y como está ahora, es incapaz de tales hazañas, ya que no tiene ni idea de qué tipo de respuesta está trabajando.

En principio, podemos añadir una respuesta virtual "request failed by timeout" si después de enviar la petición no hemos recibido una respuesta del servidor en los 5-10 segundos en que la petición ha llegado al servidor.

Esto nos permitirá atrapar una solicitud en OnTrade. Pero para ello, tendremos que sobrecargar la función con parámetros añadidos.

 
Yedelkin:


Si la solicitud no ha llegado al servidor, no se generará ningún evento comercial que pueda relacionarse con esta solicitud "perdida". ¿Verdad?

Sí, eso tiene sentido.

Podemos añadir una respuesta virtual como he descrito anteriormente. Esto nos permitirá controlar la ejecución de las operaciones asíncronas.

 
Renat:

En principio, podemos añadir una respuesta virtual de "solicitud fallida por tiempo de espera" si, después de enviar la solicitud, no recibimos una respuesta del servidor en un plazo de 5 a 10 segundos de que la solicitud haya llegado al servidor.

Esto le permitirá captar el rebote de una orden en OnTrade. Pero para ello tendrás que sobrecargar la función con parámetros añadidos.

Me estás asustando,

La gente está esperando la mejora de OnTrade con parámetros para implementar el control de la ejecución. Ha sonado que estará "en una construcción", es decir, cronológicamente en la siguiente.

Tengo tres pedidos pendientes desde hace meses, esperando un tiempo de espera, y usted dice "podemos... "pero tenemos que sobrecargar..."

¿No está haciendo un refinamiento de OnTrade?

No sé los demás, pero yo no estoy contento con la situación actual. Aplazo la escritura de todos los códigos hasta que MQL5 tenga un funcional que garantice el control de la ejecución directa, no indirecta.

 
Urain:

Me estás asustando,

La gente está esperando el ajuste de OnTrade con parámetros para implementar el control en tiempo de ejecución. Has dicho que será "en una build", es decir, cronológicamente en la próxima build.

Tengo tres pedidos pendientes desde hace meses, y ustedes dicen "podemos... "pero tenemos que sobrecargar..."

¿No está haciendo un refinamiento de OnTrade?

Intentaremos hacerlo en la próxima compilación.

La verdad es que hay muchas tareas en marcha, y además estamos en época de vacaciones de verano: es difícil mantener el ritmo habitual de desarrollo.

 
Renat:

Vamos a esforzarnos y a tratar de hacerlo en la próxima construcción.

Las tareas en el trabajo es realmente mucho, además de que todavía es tiempo de vacaciones - en el verano, el ritmo habitual de desarrollo es difícil de mantener.

Uf, eso es un alivio :)

realmente asustado, porque una situación bastante real, habló con los demás y se olvidó, y la gente está esperando con suerte :)

Ojalá pudiera vivir lo suficiente :))

 

Los metaquotes constituyen un terminal fuerte, ligero y versátil .

Fuerte y ligero ya han aprendido a hacer. Pero aquí hay otra tarea: la continuidad. Tenemos que enlazar en un solo terminal todos los "puntos de estrangulamiento" de las diferentes plataformas de negociación y un montón de corredores. Creo que este es el problema. No hay más MQ5 universal.

PS Sí Los parámetros de OnTrade están a la espera. Y en nuestros corredores de bolsa. Y necesitamos una forma exitosa de manejar la asincronía. Entonces parece que no hay competidores (para los terminales). El probador por sí solo vale mucho...

 
Renat:

En principio, podemos añadir una respuesta virtual de "solicitud fallida por tiempo de espera" si, después de enviar la solicitud, no recibimos una respuesta del servidor en un plazo de 5 a 10 segundos de que la solicitud haya llegado al servidor.

Nos permitirá detectar una ruptura de la solicitud en OnTrade. Pero para ello necesitaremos sobrecargar la función con parámetros añadidos.

Podemos añadir una respuesta virtual como he descrito anteriormente. Esto nos permitirá controlar la ejecución de las operaciones asíncronas.

Gracias, es una buena solución. Al menos mi problema está resuelto. Esperando, pero sin empujar :)