Questions des débutants MQL5 MT5 MetaTrader 5 - page 814
![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
Existe-t-il un moyen d'empêcher ces inusables checkboxes-news-objects de remplir encore et encore ma liste d'objets?
Ici, dans les paramètres, supprimez les nouvelles et rechargez le terminal.
Existe-t-il un moyen d'empêcher ces inusables checkboxes-news-objects de remplir encore et encore ma liste d'objets?
Dans les paramètres, supprimez les nouvelles et redémarrez le terminal.
Kirill, merci beaucoup. Sinon, mon expert passe en revue les objets - les passe en revue encore et encore.
Merci.
J'essaie d'apprendre à utiliser la fonction OnTradeTransaction.
En l'utilisant dans le testeur, je constate le problème suivant. Un ordre est ouvert et, par conséquent, la transaction OnTradeTransaction est appelée. Pour l'instant, j'obtiens la taille de la position dans OnTradeTransaction en utilisant la classe CPositionInfo. Tout va bien. Ensuite, lors du même appel, j'appelle une autre fonction directement à partir de OnTradeTransaction et là, CPositionInfo renvoie zéro, c'est-à-dire pas ce dont j'ai besoin. Quelques minutes plus tard, j'ai essayé d'obtenir la taille de la position dans OnTimer mais tout était OK là, c'est-à-dire 1. Bien sûr, la position n'a pas été fermée et ouverte à nouveau tout au long de l'histoire.
Question. Pourquoi CPositionInfo renvoie dans OnTradeTransaction ce dont il a besoin, mais dans une autre fonction appelée depuis OnTradeTransaction il renvoie 0 au lieu du volume de la position.
Voici les journaux. (Position ouverte à 10:30:12 fermée à 10:48:53)
Cela déclenche une commande.
2017.09.22 10:30:12 ordre [#3 achat limite 1.00 SBRF-3.18 à 19352] déclenché
OnTradeTransaction est appelé trois fois. CPositionInfo à chaque appel le volume de la position est égal à 1. Au dernier appel de TRADE_TRANSACTION_HISTORY_ADD, j'appelle la fonction.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
Dans une fonction appelée depuis OnTradeTransaction.
2017.09.22 10:32:50 Il y a une position 0.0 sur le symbole coté SBRF-3.18 vers POSITION_TYPE_BUY
Après un certain temps, j'ai essayé de rétablir le volume dans OnTimer.
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volume=1.0
Ferme la position
2017.09.22 10:48:53 ordre [#5 vente limite 1.00 SBRF-3.18 à 19435] déclenché
J'essaie d'apprendre à utiliser la fonction OnTradeTransaction.
En l'utilisant dans le testeur, je constate le problème suivant. Un ordre est ouvert et, par conséquent, la transaction OnTradeTransaction est appelée. Pour l'instant, j'obtiens la taille de la position dans OnTradeTransaction en utilisant la classe CPositionInfo. Tout va bien. Ensuite, lors du même appel, j'appelle une autre fonction directement à partir de OnTradeTransaction et là, CPositionInfo renvoie zéro, c'est-à-dire pas ce dont j'ai besoin. Quelques minutes plus tard, j'ai essayé d'obtenir la taille de la position dans OnTimer mais tout était OK là, c'est-à-dire 1. Bien sûr, la position n'a pas été fermée et ouverte à nouveau tout au long de l'histoire.
Voici ma question. Pourquoi CPositionInfo renvoie-t-il ce dont j'ai besoin dans OnTradeTransaction mais dans une autre fonction appelée depuis OnTradeTransaction, il renvoie 0 au lieu du volume de la position.
Voici les journaux. (Position ouverte à 10:30:12 fermée à 10:48:53)
Cela déclenche une commande.
2017.09.22 10:30:12 ordre [#3 achat limite 1.00 SBRF-3.18 à 19352] déclenché
OnTradeTransaction est appelé trois fois. CPositionInfo à chaque appel le volume de la position est égal à 1. Au dernier appel de TRADE_TRANSACTION_HISTORY_ADD, j'appelle la fonction.
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_DEAL_ADD order=3 order_type=ORDER_TYPE_BUY state=ORDER_STATE_STARTED Price=19352.0 deal=2 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_ORDER_DELETE order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
2017.09.22 10:30:50 Synmvo =SBRF-3.18 TRADE_TRANSACTION_HISTORY_ADD order=3 order_type=ORDER_TYPE_BUY_LIMIT state=ORDER_STATE_FILLED Price=19352.0 deal=0 deal_type=DEAL_TYPE_BUY Position direction POSITION_TYPE_BUY Volume 1.0
Dans une fonction appelée depuis OnTradeTransaction.
2017.09.22 10:32:50 Il y a une position 0.0 sur le symbole coté SBRF-3.18 vers POSITION_TYPE_BUY
Après un certain temps, j'ai essayé de rétablir le volume dans OnTimer.
2017.09.22 10:40:00 In OnTimer Symbol=SBRF-3.18 Volume=1.0
Ferme la position
2017.09.22 10:48:53 ordre [#5 vente limite 1.00 SBRF-3.18 à 19435] déclenché
Et pourquoi utiliser CPositionInfo s'il existe une structure MqlTradeTransaction contenant toutes les informations sur l'ordre, la transaction et la position ?
Pour plus de commodité. Une petite fonction est appelée depuis MqlTradeTransaction. Il trouve l'élément nécessaire en recherchant les éléments de la classe. Ensuite, l'une des fonctions de la classe est appelée pour cet élément et fait quelque chose d'utile.
Pour plus de commodité. Une petite fonction est appelée depuis MqlTradeTransaction. On y trouve l'élément nécessaire en recherchant les éléments de la classe. Une des fonctions de la classe est appelée pour cet élément et fait quelque chose d'utile.
Apparemment, il faut changer tout l'algorithme pour faire ça. Le problème est très mal décrit. Si vous aviez besoin de certaines classes sans utiliser OnTradeTransaction, vous n'avez pas besoin de certaines classes utilisant OnTradeTransaction. C'est exactement pourquoi il est dit
Forum sur le trading, les systèmes de trading automatisés et les tests de stratégie
FAQ des débutants MQL5 MT5 MetaTrader 5
Alexey Viktorov, 2017.12.30 09:04
Et pourquoi utiliser CPositionInfo alors qu'il existe une structure MqlTradeTransaction où se trouvent toutes les informations relatives aux ordres, aux transactions et aux positions ?
Pendant l'exécution de cette fonction, des événements se produisent, par exemple - Trade, Timer, etc.
Est-il possible de savoir que ces événements se sont produits sans terminer l'exécution de la fonction Abc() ?