Discusión sobre el artículo "Eventos de Trading en MetaTrader 5" - página 2

 
Rosh:
El artículo dice que la comprobación inicial se realiza en el terminal. OrderCheck() también funciona en el terminal, no se envía nada al servidor.
Aquí hay otra: "La solicitud inválida no pasa la comprobación inicial en el lado del servidor".
 
Yedelkin:

El artículo dice: "una vez enviada la solicitud, llega al servidor y se somete a una validación inicial".

Literalmente dice lo siguiente:

Importante: la corrección de cada solicitud se comprueba previamente en el propio terminal cliente antes de ser enviada al servidor de negociación. Las solicitudes plausiblemente incorrectas (comprar un millón de lotes o comprar a un precio negativo) no pasan fuera del terminal. Esto se hace para proteger a los servidores de negociación de peticiones masivas incorrectas en caso de error en el programa mql5.

Después de enviar una solicitud, ésta llega al servidor de comercio y pasa la comprobación inicial:

 
Rosh:
Yo también me confundí. Quité la referencia de la combinación "comprobación inicial".
:) Estoy releyendo el artículo. Pido disculpas si algo está mal. Pero ya he dado dos enlaces directamente desde el artículo sobre la comprobación inicial del lado del servidor.
 
Yedelkin:
Entonces, ¿está diciendo que la función OrderSend() devuelve true sólo después de que el servidor acepte (coloque) el pedido?
Significa que la orden es aceptada. Más adelante puede ser rechazada por el distribuidor, la plataforma de negociación, etc.
 
Rosh:

Dice literalmente lo siguiente:

Importante: se comprueba previamente la corrección de cada solicitud en el propio terminal cliente antes de enviarla al servidor de negociación. Las solicitudes plausiblemente incorrectas (comprar un millón de lotes o comprar a un precio negativo) no pasan fuera del terminal. Esto se hace para proteger a los servidores de comercio de peticiones masivas incorrectas en caso de error en el programa mql5.

Después de enviar una solicitud, ésta llega al servidor comercial y pasa la comprobación inicial:

A continuación, es necesario dividirla en tres comprobaciones:

1) comprobación aproximada por parte del terminal;

2) comprobación del lado del terminal mediante la función OrderCheck()$.

3) comprobación del lado del servidor.

Todavía no está claro a qué se refiere el concepto de "comprobación primaria".

 

Rosh:
Это означает, что запрос принят. Дальше он может быть отвергнут дилером, торговой площадкой и так далее.

DE ACUERDO. No me importa el destino posterior del pedido. De sus palabras deduzco (pregunta 2) que la función OrderSend() no puede devolver true inmediatamente después de comprobar que la solicitud es correcta. true se devuelve sólo después de que el servidor acepte el pedido. ¿Es esto correcto? Entonces resulta que la información de que "en caso de una comprobación correcta de la estructura básica, se devuelve true" no es del todo correcta en el libro de referencia.
 
Yedelkin:
DE ACUERDO. No me importa el destino posterior del pedido. De sus palabras deduzco (pregunta 2) que la función OrderSend() no puede devolver true inmediatamente después de comprobar que la solicitud es correcta. true se devuelve sólo después de que el servidor acepte el pedido. ¿Es esto correcto? Entonces resulta que la información de que "en caso de que la comprobación básica de estructuras sea correcta, se devuelve true" no es del todo correcta en el libro de referencia.
Comprobación básica ≡ Comprobación primaria en el lado del servidor
 
Rosh:
Comprobación básica ≡ Comprobación primaria del lado del servidor

Ya he escrito más arriba, al formular la pregunta 2, que "puede haber situaciones en las que ya se ha comprobado que una solicitud es correcta, pero aún no ha sido aceptada por el intermediario". Nadie parece discutir esta afirmación. Por eso voy a reformular un poco la pregunta 2 teniendo en cuenta vuestras definiciones:

¿en qué momento exacto la función OrderSend( ) devuelve true - inmediatamente después de la comprobación básica (comprobación inicial en el lado del servidor) de la corrección de la solicitud o sólo después de que la orden sea aceptada por el servidor?

De hecho, me interesa la siguiente pregunta: ¿en qué etapa exactamente (del terminal al servidor) la función OrderSend() señala true cuando la orden ha pasado? ¿"Comprobación básica" o "Comprobación básica + aceptación (colocación) de la orden"? ¿O es imposible llegar a la conclusión necesaria sólo con la recepción de true ?

 
Yedelkin:

Ya he escrito más arriba, al formular la pregunta 2, que "puede haber situaciones en las que ya se ha comprobado que una solicitud es correcta, pero aún no ha sido aceptada por el intermediario". Nadie parece discutir esta afirmación. Por lo tanto, voy a reformular un poco la pregunta 2 teniendo en cuenta sus definiciones:

¿en qué momento exacto la función OrderSend() devuelve true - inmediatamente después de la comprobación básica (comprobación primaria en el lado del servidor) de la corrección de la solicitud o sólo después de que la orden sea aceptada por el servidor?

Por supuesto, después de que el servidor lo acepte - es obvio. Además, la función se llama OrderSEND.
 
Yedelkin:

De hecho, me interesa la siguiente pregunta: ¿qué etapa (del terminal al servidor) de la función OrderSend() se señala con true ? ¿"Comprobación básica" o "Comprobación básica + aceptación (colocación) del pedido"? ¿O es imposible sacar la conclusión necesaria sólo con la recepción de true ?
En mi opinión, no hay que sacar conclusiones sólo en base a true, hay que analizar también el código de respuesta del servidor (y esto último es más importante, según me parece)...