Discussion de l'article "Événements de trade dans MetaTrader 5" - page 2

 
Rosh:
L'article indique que le contrôle initial est effectué dans le terminal. OrderCheck() fonctionne également dans le terminal, rien n'est envoyé au serveur.
En voici une autre : "invalid request does not pass the initial check on the server side".
 
Yedelkin:

L'article dit : "une fois la requête envoyée, elle arrive au serveur et subit une première validation".

Il dit littéralement ce qui suit :

Important : l 'exactitude de chaque demande est vérifiée au préalable dans le terminal du client avant qu'elle ne soit envoyée au serveur de négociation. Les demandes vraisemblablement incorrectes (acheter un million de lots ou acheter à un prix négatif) ne sortent pas du terminal. Cette mesure vise à protéger les serveurs de négociation contre l'envoi massif de demandes incorrectes en cas d'erreur dans le programme mql5.

Après l'envoi d'une demande, celle-ci arrive au serveur commercial et passe le contrôle initial :

 
Rosh:
Vous m'avez aussi embrouillé. J'ai supprimé la référence à la combinaison "vérification initiale".
Je suis en train de relire l'article. Je m'excuse si quelque chose n'est pas correct. Mais j'ai déjà donné deux liens directement à partir de l'article sur la vérification initiale côté serveur.
 
Yedelkin:
Vous dites donc que la fonction OrderSend() ne renvoie un message vrai qu'une fois que le serveur a accepté (placé) la commande ?
Cela signifie que la demande est acceptée. Elle peut ensuite être rejetée par le courtier, la plate-forme de négociation, etc.
 
Rosh:

Elle dit littéralement ce qui suit :

Important : l 'exactitude de chaque demande est vérifiée au préalable dans le terminal du client avant qu'elle ne soit envoyée au serveur de négociation. Les demandes vraisemblablement incorrectes (acheter un million de lots ou acheter à un prix négatif) ne sortent pas du terminal. Cette mesure vise à protéger les serveurs de négociation contre l'envoi massif de demandes incorrectes en cas d'erreur dans le programme mql5.

Après l'envoi d'une demande, celle-ci arrive au serveur commercial et passe le contrôle initial :

Il est ensuite nécessaire de la diviser en trois contrôles :

1) vérification grossière par le terminal ;

2) contrôle du côté du terminal à l'aide de la fonction OrderCheck()$ ; 3) contrôle du côté du serveur.

3) vérification côté serveur.

La notion de "contrôle primaire" n'est toujours pas claire.

 

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

D'ACCORD. Je ne me préoccupe pas du sort de la commande. Je conclus de vos propos (question 2) que la fonction OrderSend() ne peut pas renvoyer true immédiatement après avoir vérifié l'exactitude de la demande. true n'est renvoyé qu'après l'acceptation de la commande par le serveur. Est-ce exact ? Il s'avère ensuite que l'information selon laquelle "en cas de contrôle réussi de la structure de base, true est renvoyé" n'est pas tout à fait correcte dans le livre de référence.
 
Yedelkin:
D'ACCORD. Je ne me préoccupe pas du sort de la commande. Je conclus de vos propos (question 2) que la fonction OrderSend() ne peut pas renvoyer true immédiatement après avoir vérifié l'exactitude de la demande. true n'est renvoyé qu'après l'acceptation de la commande par le serveur. Est-ce exact ? Il s'avère ensuite que l'information selon laquelle "en cas de contrôle de base réussi des structures, true est renvoyé" n'est pas tout à fait correcte dans le livre de référence.
Contrôle de base ≡ Contrôle primaire du côté du serveur
 
Rosh:
Contrôle de base ≡ Contrôle primaire côté serveur

J'ai déjà écrit plus haut, en formulant la question 2, qu'"il peut y avoir des situations où une demande a déjà été vérifiée pour son exactitude mais n'a pas encore été acceptée par le courtier". Personne ne semble contester cette affirmation. C'est pourquoi je vais reformuler la question 2 en tenant compte de vos définitions :

à quel moment précis la fonction OrderSend() renvoie-t-elle true - immédiatement après la vérification de base (vérification initiale du côté du serveur) de l'exactitude de la demande ou seulement après que l'ordre a été accepté par le serveur ?

En fait, la question qui m'intéresse est la suivante : à quelle étape précise (du terminal au serveur) la fonction OrderSend() signale-t-elle que l'ordre est passé ? "Contrôle de base" ou "Contrôle de base + acceptation (placement) de l'ordre" ? Ou bien est-il impossible de tirer les conclusions qui s'imposent uniquement sur la base de la réception de true ?

 
Yedelkin:

J'ai déjà écrit plus haut, en formulant la question 2, qu'"il peut y avoir des situations où une demande a déjà été vérifiée quant à son exactitude mais n'a pas encore été acceptée par le courtier". Personne ne semble contester cette affirmation. Je vais donc reformuler la question 2 en tenant compte de vos définitions :

à quel moment précis la fonction OrderSend() renvoie-t-elle true - immédiatement après la vérification de base (vérification primaire du côté du serveur) de l'exactitude de la demande ou seulement après l'acceptation de l'ordre par le serveur ?

Bien sûr, après que le serveur l'a acceptée - c'est évident. D'ailleurs, la fonction s'appelle OrderSEND.
[Supprimé]  
Yedelkin:

En fait, je suis intéressé par la question suivante : quelle étape (du terminal au serveur) de la fonction OrderSend() est signalée par true ? "Contrôle de base" ou "Contrôle de base + acceptation (placement) de l'ordre" ? Ou bien est-il impossible de tirer la conclusion qui s'impose uniquement sur la base de la réception de true ?
À mon avis, il ne faut pas tirer de conclusions uniquement sur la base de true, il faut aussi analyser le code de réponse du serveur (et ce dernier est plus important, me semble-t-il)...