Questions des débutants MQL5 MT5 MetaTrader 5 - page 814

 
Existe-t-il un moyen d'empêcher ces inusables checkboxes-news-objects de remplir encore et encore ma liste d'objets?
 
User_mt5:
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.


 
User_mt5:
Existe-t-il un moyen d'empêcher ces inusables checkboxes-news-objects de remplir encore et encore ma liste d'objets?
Vous n'avez pas besoin de recharger quoi que ce soit. Dans le calendrier, décochez "Supprimer tous les événements", puis décochez "Mises à jour automatiques".
 
Kirill Belousov:

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é

 
pivomoe:

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 ?

Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
Документация по MQL5: Стандартные константы, перечисления и структуры / Структуры данных / Структура торговой транзакции
  • www.mql5.com
Например, при отсылке рыночного ордера на покупку он обрабатывается, для счета создается соответствующий ордер на покупку, происходит исполнение ордера, его удаление из списка открытых, добавление в историю ордеров, далее добавляется соответствующая сделка в историю и создается новая позиция. Все эти действия являются торговыми транзакциями...
 

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.

 
pivomoe:

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 ?


 
Ce n'est pas un problème de changer l'algorithme. Je n'arrive pas à comprendre si CPositionInfo renvoie 1, puis 0, puis 1 à nouveau après l'ouverture de la position (je veux dire la taille de la position). Bien que, selon l'histoire, le poste n'ait été ni fermé ni rouvert.
Совершение сделок - Торговые операции - Справка по MetaTrader 5
Совершение сделок - Торговые операции - Справка по MetaTrader 5
  • www.metatrader5.com
Торговая деятельность в платформе связана с формированием и отсылкой рыночных и отложенных ордеров для исполнения брокером, а также с управлением текущими позициями путем их модификации или закрытия. Платформа позволяет удобно просматривать торговую историю на счете, настраивать оповещения о событиях на рынке и многое другое. Открытие позиций...
 
La fonction personnalisée Abc() est exécutée, qui met en œuvre un algorithme long (dans le temps).
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() ?