Questions des débutants MQL5 MT5 MetaTrader 5 - page 1266
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
Bon temps à vous tous !
J'ai une question sur la fonction ResultDeal() dans la classe CTrade.
Le problème est que dans le testeur de stratégie, cette fonction renvoie le ticket de transaction sans aucun problème, mais lorsque vous lancez l'EA sur le graphique, il renvoie toujours "zéro", malgré le fait que la fonction ResultRetcode() renvoie toujours "TRADE_RETCODE_DONE".
Exemple de code :
Journal d'exécution dans le Testeur :
Journal d'exécution sur le graphique :
Qu'est-ce que je fais de mal ? Comment obtenir un ticket d'échange en temps réel ?
Et la deuxième question (de moindre importance), pourquoi, immédiatement après l'exécution d'une transaction , la fonction PositionsTotal() renvoie "zéro" ? Et il affiche des données fiables au prochain tic-tac. Est-il possible d'obtenir ces informations en une seule fois ?
Bon temps à vous tous !
J'ai une question sur la fonction ResultDeal() dans la classe CTrade.
Le problème est que dans le testeur de stratégie, cette fonction renvoie le ticket de transaction sans aucun problème, mais lorsque vous lancez l'EA sur le graphique, il renvoie toujours "zéro", malgré le fait que la fonction ResultRetcode() renvoie toujours "TRADE_RETCODE_DONE".
Exemple de code :
Journal d'exécution dans le Testeur :
Journal d'exécution sur le graphique :
Qu'est-ce que je fais de mal ? Comment obtenir un ticket d'échange en temps réel ?
Et la deuxième question (de moindre importance), pourquoi, immédiatement après l'exécution d'une transaction , la fonction PositionsTotal() renvoie "zéro" ? Et il affiche des données fiables au prochain tic-tac. Est-il possible d'obtenir ces informations en une seule fois ?
Hmm... Tout à coup, les données dont j'ai besoin en temps réel sont renvoyées par la fonction ResultOrder() de la même classeCTrade, bien que je n'aie pas utilisé d'ordres en attente...
La question est la même : qu'est-ce que je fais mal ?
Il existe une macro comme celle-ci.
Je l'utilise comme ça.
Warning"Warnig сработал. ");
Question : Que faut-il corriger dans la définition de la macro pour pouvoir l'utiliser de cette manière ?
Warning("Warnig сработал. ");
c'est-à-dire avec une parenthèse entre Warning et "Warnig worked". "J'ai essayé d'utiliser une parenthèse dans la définition de la macro.
mais le compilateur ne me laisse pas utiliser une parenthèse.
Hmm... Soudain, la fonction ResultOrder() de la même classeCTrade renvoie les données dont j'ai besoin en temps réel, bien que je n'aie pas utilisé d'ordres en attente...
La question est la même : qu'est-ce que je fais de mal ?
Il suffit de comprendre le système d'ordre de MT5, ordre - transaction - position.
ResultOrder est l'ordre d'ouverture. La position sera avec POSITION_IDENTIFIER égale au ticket de cette commande.
Toutes les transactions peuvent être retrouvées dans l'historique par l'identifiant de la position. Ne pas confondre avec le billet de la position, il peut changer, et l'identifiant est constant.
s.s. Le testeur est différent en ce sens qu'il n'y a pas de retard dans l'exécution de l'ordre et que l'affaire est créée immédiatement. Dans la vie réelle, le temps passe et au moment de la création réussie d'un ordre, il n'y a pas encore d'accord, il doit être pris dans les événements OnTrade.Il existe une macro comme celle-ci.
Je l'utilise comme ça.
Question : Que faut-il corriger dans la définition de la macro pour pouvoir l'utiliser de cette manière ?
c'est-à-dire avec une parenthèse entre Warning et "Warnig worked". "J'ai essayé d'utiliser une parenthèse dans la définition de la macro.
mais le compilateur ne vous laissera pas utiliser une parenthèse.
vous voulez utiliser une forme paramétrique, mais vous avez spécifié une forme non-paramétrique. cela devrait se passer comme suit
Je ne l'ai pas bien expliqué. Commençons par le début. Maintenant, j'utilise la macro comme ceci :
Warning,"Warnig сработал. i=",i);
Voici la macro elle-même :
Dans l'appel de la macro entre "Warning," et ") ;" Un nombre arbitraire de paramètres de types arbitraires. Tout ceci est réalisé en rechargeant de manière répétée la fonction d'écriture.
Question. Que dois-je corriger dans la macro pour pouvoir l'appeler comme ceci :
Warning("Warnig сработал. i=",i);
Je ne l'ai pas bien expliqué. Commençons par le début. Maintenant, j'utilise la macro comme ceci :
Voici la macro elle-même :
Dans l'appel de la macro entre "Warning," et ") ;" Un nombre arbitraire de paramètres de types arbitraires. Tout cela est réalisé en rechargeant de manière répétée la fonction d'écriture.
Question. Que faut-il corriger dans la macro pour permettre son appel comme ceci :
Réponse : rechargez également la macro plusieurs fois)
Mais il est préférable d'utiliser l'opérateur + pour les chaînes de caractères et de tout convertir en chaînes de caractères. Ainsi, vous n'avez pas besoin d'une version de la fonction (et de la macro) avec de nombreux paramètres.
Il suffit de comprendre le système d'ordre de MT5, ordre - transaction - position.
ResultOrder est l'ordre d'ouverture. La position sera avec POSITION_IDENTIFIER égale au ticket de cette commande.
Toutes les transactions peuvent être retrouvées dans l'historique par l'identifiant de la position. Ne pas confondre avec le billet de la position, il peut changer, et l'identifiant est constant.
s.w. Le testeur est différent en ce sens qu'il n'y a pas de retard dans l'exécution de l'ordre et qu'une transaction est immédiatement née. Dans une transaction réelle, le temps passe et au moment de l'exécution réussie, il n'y a pas encore d'accord, cela doit être pris en compte dans les événements OnTrade.Bonjour, comment puis-je accéder aux propriétés d'un indicateur à partir d'une EA ? Par exemple, je veux changer la couleur de la ligne d'un EA si je connais la poignée de l'indicateur. Je l'ai cherché, je ne l'ai pas trouvé, peut-être que je cherche trop ?
Un indicateur pour cela doit avoir un paramètre de couleur d'entrée. C'est-à-dire qu'il doit s'agir d'un indicateur personnalisé.