Auto-apprentissage du langage MQL5 à partir de zéro - page 23
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
Tu es parti du mauvais pied. Comprenez-vous tout ce que contient le code ? Tous les opérateurs, les mots-clés ?
Question de contrôle sur le code :
Que signifient ces lignes ?
C'était mes commentaires sur le scénario :
/* On continue. Après avoir envoyé des requêtes au serveur de négociation, nous devons savoir si un ordre en attente a été fixé à
ou non. Pour ce faire, utilisons la fonction OrderSend qui est conçue pour
les opérations commerciales en envoyant des requêtes au serveur commercial. Si l'envoi d'une demande à
échoue (un point d'exclamation devant une fonction indique un résultat négatif de son exécution
), nous produisons un message avec un code d'erreur au format suivant : "OrderSend error %d"
et GetLastError(). Comprenons ce qu'est "OrderSend error %d" et ce qu'est GetLastError().
Notez que "OrderSend error %d" est entre guillemets. Cela signifie que
imprimera le texte avec la traduction littérale "OrderSend error %d". Comprenons maintenant ce que signifie
%d. Dans la section PrintFormat de la référence MQL5, nous trouvons : "Si une chaîne de format est suivie de plus de paramètres,
, cette chaîne doit contenir des spécifications de format qui définissent le format de sortie de ces paramètres.
Une spécification de format commence toujours par un signe de pourcentage (%) ". Qu'est-ce qu'un d ? Dans la même section
, juste en dessous, nous trouvons : "Type d - spécifie le nombre minimum de chiffres à sortir. Si le nombre de chiffres de
est inférieur à la précision spécifiée, la valeur de sortie est complétée par des zéros sur la gauche.
La valeur de sortie n'est pas tronquée si le nombre de chiffres à sortir est supérieur à la précision spécifiée. Avec cette
résolue, nous devons maintenant comprendre ce qu'est GetLastError(). En regardant à nouveau dans le livre de référence : "GetLastError()
renvoie le contenu de la variable système _LastError, c'est-à-dire la variable dans laquelle est stockée
la valeur de la dernière erreur survenue pendant l'exécution du programme mql5.
Salutations, Vladimir.
Je n'ai donc pas encore trouvé la solution et il y a du travail à faire.
Salutations, Vladimir.
Encore une fois, commencez par la description de ce que fait votre code. Ce script place le SL et le TP sur les positions. Puisque nous ne savons pas si elles sont là, nous supposons que les positions sont là, et qu'il y a les deux (compte de couverture). La condition de placer des arrêts rendra toujours vrai.... C'est donc comme ça. Travaillez sur le code jusqu'à la fin. ))))
Et essayez de comprendre chaque ligne du code. Dès le début.
Cette condition n'est pas du tout nécessaire à cet endroit. Quel rôle joue-t-il ? Pouvez-vous expliquer ?
Je voulais définir une condition cachée pour définir les ordres d' achat stop et de vente stop en attente.
Salutations, Vladimir.
J'ai vérifié quelques fois de plus - le compilateur ne donne rien.
Salutations, Vladimir.
Et pourquoi devrait-elle produire quelque chose ? Vous ne connaissez pas les macros, vous ne savez pas comment travailler avec elles, mais vous les utilisez, donc vous vous attendez à une erreur ou au moins à un avertissement de leur part. Si vous aviez au moins une fois lancé votre script sur la démo et l'aviez exécuté dans tous les modes, vous auriez vu qu'il ne fonctionne pas. Mais vous allez plus loin. Vous ajoutez un stop-loss, un take-profit, et sur la rive on dit : "Arrêtez la machine !
Encore une fois, commencez par décrire ce que fait votre code. Ce script place un SL et un TP sur les positions que vous avez placées. Comme nous ne savons pas si elles existent, nous supposons qu'il y a des positions, et qu'il y a les deux (compte de couverture). La condition de placer des arrêts rendra toujours vrai.... C'est donc comme ça. Travaillez sur le code jusqu'à la fin. ))))
Et essayez de comprendre chaque ligne du code. Dès le début.
Merci pour le conseil de vérifier d'abord s'il y a des postes ouverts.
Salutations, Vladimir.
Je voulais définir une condition cachée pour définir les ordres Stop d'achat et Stop de vente en attente.
Sincèrement, Vladimir.
Dites-moi, est-ce qu'écrire une macro pour cela, c'est la seule façon de définir une telle condition ? Les conditions, si je comprends bien, ne sont définies que par des macros ? Ou est-il possible de le faire d'une autre manière ? Et s'il existe un autre moyen, pourquoi avoir choisi cette macro ? Il devait y avoir une nécessité ? Mais qu'est-ce que c'était ?
Merci pour le conseil de vérifier d'abord s'il y a des postes ouverts.
Salutations, Vladimir.
L'écriture d'une macro pour cela est-elle le seul moyen de définir cette condition ? Si je comprends bien, les conditions ne sont définies que par des macros ? Ou y a-t-il un autre moyen ? Et s'il existe un autre moyen, pourquoi avoir choisi la macro ? Il devait y avoir une nécessité ? Mais qu'est-ce que c'était ?
Non, il n'y avait aucune nécessité, j'ai simplement trouvé #define en étudiant les modificateurs et j'ai décidé de l'essayer dans le script.
Sincèrement, Vladimir.
Je voulais définir une condition cachée pour définir les ordres d' achat stop et de vente stop en attente.
Salutations, Vladimir.
... Si vous exécutez votre script sur une démo pour une fois et que vous le faites fonctionner dans tous les modes, vous verrez qu'il ne fonctionne pas. Mais vous allez un peu plus loin. Vous ajoutez un stop loss et un take profit, et la rive crie déjà : "Arrêtez la voiture !".
Vasiliy, j'ai exécuté le script plusieurs fois et tous les modes fonctionnent, à savoir, j'ai mis deux ordres en attente Buy Stop et Sell Stop à la distance que j'ai spécifiée. Le Stop Loss et le Take Profit sont également fixés à la distance nécessaire. Les ordres fonctionnent. Je voudrais joindre une capture d'écran ici.
Salutations, Vladimir.