Vous manquez des opportunités de trading :
- Applications de trading gratuites
- Plus de 8 000 signaux à copier
- Actualités économiques pour explorer les marchés financiers
Inscription
Se connecter
Vous acceptez la politique du site Web et les conditions d'utilisation
Si vous n'avez pas de compte, veuillez vous inscrire
Malheureusement, seulement à travers une béquille - une variable globale du terminal.
Et par des béquilles supplémentaires pour s'assurer que la variable principale est supprimée en cas de crash, par exemple.
Ainsi, ma variante avec l'attente d'une transaction dans l'historique est plus fiable et plus simple. Mais c'est toujours une béquille.
Je n'ai pas vérifié, mais peut-être qu'après l'envoi de l'ordre, tous les EA reçoivent l'événement correspondant pourOnTradeTransaction.
Ensuite, tout est résolu sans béquilles et pour plusieurs EA sur le même symbole.
Voulez-vous que je vous aide à contourner ces mésaventures (à partir de mon expérience personnelle de trading avec des robots MT5 sur un compte réel) ?
Ajouté
Totalement gratuit :)
Les gens ne veulent pas penser par eux-mêmes, ils veulent que les autres le fassent pour eux... Malheureusement, c'est vrai.
Les gens ne se contentent pas de réfléchir mais partagent également leurs solutions. Les développeurs ne disent rien à ce sujet, malheureusement.
Pas un seul exemple dans la documentation sur ce sujet. Et ça, c'est avec la fonction principale.
Je soutiens. S'il était écrit quelque part que OrderSend() attend une réponse du serveur et ce qui se passe ensuite, il ne serait pas nécessaire de trouver des solutions de contournement pour vérifier.
Il existe un excellent article sur les commandes, les transactions et les positions, ainsi que sur le travail avec eux et leur cache, qui détaille tout. Cependant, il ignore complètement les processus qui se déroulent lors de l'envoi de la commande elle-même.
Ma suggestion
Utilisez-le.
Et que se passe-t-il si l'événement OnTrade() est déclenché avant que le traitement OnTick() ne soit terminé. Parfois, le temps est compté. Attendre que l'événement OnTrade() se produise peut être problématique. En outre, la fonction OrderSend() elle-même est conçue de manière à ce que je puisse obtenir des informations sur ses résultats sur-le-champ. Ou pas ?
OrderSend() est une fonction absolument synchrone - si un ticket est reçu, tout est exécuté.
Voici un exemple
Ajouté, et voici les logs
https://www.mql5.com/ru/forum/38456/page85#comment_2888263
Non exécuté, mais envoyé au serveur MT5.
Non. Pour la Bourse - je suis allé à la Bourse (je n'ai peut-être pas réussi :) ), pour le FOREX je ne sais pas.
Ajouté
Ie (pour la bourse), si vous obtenez un ticket dans la fonction OrderSend((), cela signifie que l'ordre est accepté par la bourse.
Ajouté
Voir photo (il y a eu des changements en 1375)
Il s'agit d'un cas particulier d'envoi d'un ordre à cours limité à une bourse. Qu'en est-il d'un ordre de marché en forex ?
Pas une seule fois dans ce fil. Seulement sur la synchronisation de MT5 et d'OrderSend.
Donc la réponse ne colle pas.
Non. Pour l'échange - je suis allé à l'échange (peut-être pas rempli :) ), pour le FOREX je ne sais pas.
Ajouté
Ie (pour la bourse), si vous obtenez un ticket dans lafonction OrderSend((), cela signifie que l'ordre est accepté par la bourse.
Ajouté
Voir photo (il y a eu des changements en 1375)