Erreurs, bugs, questions - page 3143
![MQL5 - Langage des stratégies de trading intégré au terminal client MetaTrader 5](https://c.mql5.com/i/registerlandings/logo-2.png)
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
Sans vouloir être impoli... La documentation ne précise-t-elle pas clairement que
Si la position est déjà sélectionnée, pourquoi la sélectionner à nouveau avec la fonction PositionSelectByTicket ?
Bonjour, la ligne PositionSelectByTicket est-elle nécessaire dans le code... Si oui, comment écrire correctement un ticket à l'intérieur, par PositionGetTicket(i) ou laisserPositionGetInteger(POSITION_TICKET) ? Merci d'avance !
Merci pour votre réponse ! J'ai commencé à me poser la question, car après avoir regardé dans la bibliothèque <Trade/Trade.mqh>, la fonction PositionClose(const ulong ticket,const ulong deviation) utilise également PositionSelectByTicket. Et la fonction PositionClose( const ulong ticket,const ulong deviation ) elle-même est souvent utilisée par les codeurs en combinaison avec la boucle for(int i = PositionsTotal()-1 ; i >= 0 ; i--) en passant en boucle par toutes les positions. Et je me demande si je n'en utilise pas un de trop quelque part.
La fonction PositionClose(const ulong ticket,const ulong deviation) de la bibliothèque reçoit un ticket de la position à fermer, mais personne ne sait comment le ticket a été reçu et si la position existe.
Par conséquent, PositionSelectByTicket vérifie surtout s'il y a quelque chose à fermer. Et pourquoi avez-vous décidé que tous les postes sont souvent fermés dans la boucle ? Pas nécessairement...
La fonction PositionClose(const ulong ticket,const ulong deviation) de la bibliothèque reçoit un ticket de la position à fermer, mais personne ne sait comment le ticket a été reçu et si la position existe.
Par conséquent, PositionSelectByTicket vérifie surtout s'il y a quelque chose à fermer. Et pourquoi avez-vous décidé que tous les postes sont souvent fermés dans la boucle ? Pas nécessairement...
Bonjour
Pouvez-vous m'aider ?
avec le code.
Faire en sorte qu'un indicateur dans le testeur fonctionne correctement
Lorsque je le place sur le graphique, il ne s'affiche pas correctement.
Je n'arrive pas à comprendre pourquoi c'est mauvais.
Qu'est-ce qui est renvoyé à la structure MqlTradeCheckResult ?
Il est écrit dans la documentation que"Le montant de la marge requise pour l'opération de transaction requise".
Champ
Description
retcode
Code de retour
équilibre
Valeur du solde qui sera après l'exécution de la transaction
actions
Valeur de l'équité, qui sera après l'exécution de la transaction.
profit
Valeur du profit flottant qui sera après l'exécution de la transaction.
marge
Le montant de la marge nécessaire pour l'opération requise.
marge_libre
Le montant de l'équité libre qui restera après l'exécution de la transaction requise.
niveau de marge
Le niveau de marge à fixer après l'exécution de la transaction requise.
commentaire
Commentaire sur le code de réponse, description de l'erreur
Mais ce qui est obtenu en réalité, c'est la taille de la marge totale, actuelle et plus celle qui sera prise après l'exécution de cette opération.
Voici le script
et le résultat de l'exécution
Tant qu'il n'y a pas de positions ouvertes sur le compte, my_check_result.margin est égal à la marge pour la position ouverte avec le lot 0.01, et lorsqu'il y a déjà 0.01 sur le compte, la marge pour le lot 0.02.
Mais ce que vous obtenez réellement, c'est la taille de la marge totale, actuelle et plus celle qui sera prise après la réalisation de cette opération.
Bien.
Bien.
Qu'il en soit ainsi, mais alors il devrait en être de même dans la documentation.
Si balans est la valeur du solde qui sera après que la transaction soit faite
alors la marge - devrait être. La valeur de la marge, qui sera après l'exécution de l'opération commerciale.
J'appelle le code suivant dans MT5 dans le testeur de stratégie
Il est indiqué que le nom du compte est Tester
C'est censé être comme ça ?