Les erreurs typiques et la façon de les traiter dans l'environnement de négociation - page 9
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
Bonjour !
J'ai une question similaire pour tout le monde et surtout pour fxsaber.
Cela semble être une question primitive, mais je n'arrive pas à trouver la réponse à cette question.
On m'a dit ici https://www.mql5.com/ru/forum/6343/page939 "Essayez de le chercher. fxsaber travaille sur ce problème depuis un moment maintenant. Ce qui a marché, je ne sais pas, ça ne m'intéresse pas." J'ai donc décidé de vous demander.
La question est la suivante. J'ai ouvert une position et je veux imprimer le contenu de MqlTradeResult:
retcode, order et volume sont imprimés, mais deal et price sont toujours des zéros.
S'il vous plaît, conseillez-moi ce que je fais mal et comment obtenir l'accès (au moins, l'imprimer d'abord) au contenu de la structure de résultat ?
Que pensez-vous de ça ?
J'ouvre une position et je veux imprimer le contenu de MqlTradeResult comme ceci :
retcode, order et volume sont imprimés mais deal et price sont toujours des zéros.
Veuillez m'indiquer ce que je fais mal et comment accéder (au moins l'imprimer en premier) au contenu de la structure de résultat?
Les zéros sont écrits dans le résultat.
Que pensez-vous de ça ?
Les zéros et sont prescrits dans le résultat.
Je vois un ordre ouvert, j'obtiens result.retcode 10009 et result.price = 0 ?
Pouvez-vous expliquer la signification du terme "résultat" s'il ne contient pas de résultat ?
Veuillez expliquer quel est l'intérêt du résultat s'il ne contient pas le résultat ?
Il s'agit d'une fonctionnalité de MT5 où le résultat est uniquement un ordre (ticket et pas de prix) mais pas une transaction. Vous avez plusieurs possibilités
Il s'agit d'une fonctionnalité de MT5 où le résultat est uniquement un ordre (ticket et pas de prix) mais pas une transaction. Vous avez plusieurs possibilités
Dans MQL4, il n'y avait pas de structure de résultats et nous recevions un ticket et sélectionnions l'ordre approprié et demandions les données nécessaires. MQL5 possède la structure de résultat qui contient de nombreuses données nécessaires, et il serait illogique de ne pas l'utiliser.
1. Avant de poser une question sur le forum, j'ai essayé de "comprendre par moi-même comment tout fonctionne" et ce que je vois - dans la structure des résultats :
sort result.deal, c'est-à-dire qu'il est supposé avoir un sens et qu'il n'est pas toujours représenté par zéro dans la structure du résultat. D'autres exemples pourraient être donnés qui indiquent que result.price ainsi que result.deal peuvent être obtenus à partir de MqlTradeResul, ce que j'ai essayé de faire.présent double prix ; // Prix de la transaction, confirmé par le courtier.
Dans l'exemple de code du développeur
Je n'ai vu nulle part l'information suivante : "Il s'agit d'une fonctionnalité de MT5, lorsque le résultat est uniquement un ordre (ticket et pas de prix), mais pas une transaction". Pouvez-vous me dire sur quelles informations vous vous êtes basé pour arriver à cette conclusion ?
2. Si vous connaissez des "développements de niveau supérieur déjà prêts (le niveau inférieur est caché)", qui permettent d'obtenir les paramètres d'une position immédiatement après son ouverture (le code 10009 apparaît), sans sélection préalable par ticket, veuillez me donner un exemple ou me donner un lien vers celui-ci.
Merci.
Dans MQL4, il n'y avait pas de structure de résultats et nous devions sélectionner l'ordre approprié et demander les données nécessaires. MQL5 possède la structure de résultat avec de nombreuses données nécessaires et il serait illogique de ne pas l'utiliser.
1. Avant de poser une question dans le forum, j'ai essayé de "comprendre par moi-même comment tout fonctionne" et ce que j'ai vu, c'est que le résultat de la structure :
sort result.deal, c'est-à-dire qu'il est supposé avoir un sens et qu'il n'est pas toujours représenté par zéro dans la structure du résultat. Il existe d'autres exemples qui indiquent que result.price ainsi que result.deal peuvent être obtenus à partir de MqlTradeResul, ce que j'ai essayé de faire.Il y a un double prix ; // Prix de la transaction, confirmé par le courtier.
Dans l'exemple de code du développeur
Je n'ai vu nulle part d'information indiquant que "c'est une fonctionnalité de MT5 où le résultat est seulement un ordre (ticket et pas de prix) mais pas une transaction". Pouvez-vous me dire sur quelles informations vous vous êtes basé pour arriver à cette conclusion ?
2. Si vous connaissez des "développements de niveau supérieur prêts à l'emploi (le niveau inférieur est caché)", qui permettent d'obtenir les paramètres d'une position immédiatement après son ouverture (le code 10009 apparaît), sans sélection préalable par ticket, veuillez en donner un exemple ou donner un lien vers celui-ci.
Une demande de transaction donne lieu soit à un rejet, soit à un ordre au marché. Il ne s'agit pas d'une transaction, ni d'une position générée par une transaction.
Une demande de transaction donne lieu soit à un rejet, soit à un ordre au marché. Il ne s'agit pas d'une transaction, ni d'une position générée par une transaction.
- Après quelle étape pensez-vous que la structure de résultat de la demande de transaction (MqlTradeResult) apparaisse, parmi celles que vous avez énumérées ?
- Selon la description du MQL5 :
" Structure du résultat de la demande de transaction (MqlTradeResult)
En réponse à une demande de transaction, le serveur commercial renvoie des données contenant le résultat du traitement de la demande de transaction sous la forme d'une structure prédéfinie spéciale MqlTradeResult". et "10009 TRADE_RETCODE_DONE Ordre exécuté".
C'est-à-dire que le code de retour 10009 du serveur de commerce signifie que la demande d'envoi d'ordre a été exécutée avec succès. Si je demande des données à partir de MqlTradeResult, après avoir reçu le code 10009, comment puis-je expliquer que result.price = 0 ?
Merci :
- Après quelle étape, parmi celles que vous avez listées, la structure du résultat de la demande de transaction (MqlTradeResult) apparaît-elle ?
- Selon la description du MQL5 :
" Structure du résultat de la demande de transaction (MqlTradeResult)
En réponse à une demande de transaction, le serveur commercial renvoie des données contenant le résultat du traitement de la demande de transaction sous la forme d'une structure prédéfinie spéciale MqlTradeResult". et "10009 TRADE_RETCODE_DONE Ordre exécuté".
Par conséquent, le code de retour du serveur de commerce 10009 signifie que la requête OrderSend a été exécutée avec succès, c'est-à-dire que si je demande des données à partir de MqlTradeResult, après avoir reçu le code 10009, comment puis-je expliquer que result.price = 0 ?
10009 TRADE_RETCODE_DONE - vous l'avez décrit vous-même - l'ordre a été exécuté. Il s'agit simplement du fait que la commande a été mise en file d'attente avec succès sur le serveur pour être exécutée.
En outre, si cet ordre est exécuté (après tout, il peut être rejeté par le serveur), alors il y a une transaction - c'est le résultat de la transaction avec le prix d'ouverture.
Lire la suite
OnTradeTransaction
Il est appelé dans les Expert Advisors lorsqu'un événement TradeTransaction se produit. Cette fonction est destinée à traiter les résultats de l'exécution de la demande de transaction.
voidOnTradeTransaction( )
const MqlTradeTransaction&trans,// structure d'une transaction commerciale
const MqlTradeRequest&request,// structure de la requête
const MqlTradeResult& result// structure de la réponse
) ;
Je n'ai vu nulle part l'information suivante : "Il s'agit d'une fonctionnalité de MT5 où le résultat est seulement un ordre (ticket et pas de prix) mais pas une transaction". Veuillez me dire sur la base de quelles informations vous êtes parvenu à cette conclusion.
Expérience personnelle.
2. Si vous connaissez des "développements de niveau supérieur déjà prêts (le niveau inférieur est caché)", qui permettent d'obtenir les paramètres d'une position immédiatement après son ouverture (le code 10009 apparaît), sans sélection préalable par ticket, veuillez en donner un exemple ou donner un lien vers celui-ci.
Il existe une autre option, mais elle est "avancée".