Questions d'un "mannequin - page 100

 
220Volt:

Bon après-midi. Il existe un phénomène de distorsion des derniers bits d'un double, veuillez indiquer quelles conditions doivent être créées pour qu'une telle distorsion se produise. La distorsion est-elle possible dans les opérations ? Une distorsion est-elle possible lors du stockage d'entiers dans un double ? Pendant les opérations ?

x=M_PI;
y=sqrt(x);
y=y*y;

Quelle est une variante de la distorsion ?
 

Veuillez me conseiller. Existe-t-il un moyen de savoir par programme (dans la fonction OnTrade()) si un Stop Loss, Take Profit ou un ordre en attente a été fixé, modifié ou supprimé manuellement (par un terminal)? Et un petit exemple, si ce n'est pas difficile.

Actuellement, les opérations répertoriées sont enregistrées et écrites dans le(s) fichier(s), qui se trouve(nt) dans le répertoire D:\Metatrader 5\logs\. Je ne peux donc pas les lire de manière programmatique.

Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
Документация по MQL5: Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров
  • www.mql5.com
Стандартные константы, перечисления и структуры / Торговые константы / Свойства ордеров - Документация по MQL5
 
tol64:

Veuillez me conseiller. Existe-t-il un moyen de savoir par programme (dans la fonction OnTrade()) si un Stop Loss, Take Profit ou un ordre en attente a été fixé, modifié ou supprimé manuellement (par un terminal)? Et un petit exemple, si ce n'est pas difficile.

La fonction a géré des événements lorsque certaines listes ont été modifiées auparavant, il n'y avait pas de paramètres. Si tout est identique, il s'avère que les événements de mise en place, de modification ou de suppression des ordres doivent être traités indépendamment du fait que les ordres aient été mis en place manuellement ou non. Est-ce correct ? Si c'est correct, nous pouvons essayer de retrouver le ticket de commande lorsque les événements commerciaux arrivent (si l'événement fait référence à une commande), et si nous découvrons qu'aucun ticket de ce type n'a été mis en place de manière programmatique, nous pouvons suivre son destin. Ça donne quelque chose comme ça.
 
Yedelkin:
Auparavant, la fonction gérait les événements lorsque certaines listes étaient modifiées, il n'y avait pas de paramètres. Si tout reste inchangé, il s'avère que les événements d'établissement, de modification ou de suppression doivent être reçus, que les ordres soient établis manuellement ou non. Est-ce correct ? Si c'est le cas, nous pouvons essayer de trouver le ticket de chaque événement de commerce (si l'événement se réfère à une commande) et si nous découvrons qu'aucun ticket de ce type n'a été mis en place de manière programmatique, nous pouvons suivre son destin. Ça donne quelque chose comme ça.
Oui, c'est exact, mais seulement si les événements sont liés à des transactions, d'après ce que je comprends. J'ai besoin de savoir si les événements de modification des ordres en mode manuel peuvent être suivis de manière programmatique.
 
tol64:
Oui, tout est correct, mais seulement si les événements sont liés aux transactions, d'après ce que je comprends. J'ai besoin de savoir s'il est possible de suivre les événements de modification de commande en mode manuel de manière programmatique.

Non, non, lisez d'urgence la documentation :) Ou des articles encore meilleurs. La liste des transactions n'est qu'une partie de toutes les listes. Cela signifie que les événements devraient être différents... Cependant, je l'ai lu moi-même il y a longtemps, j'ai peut-être oublié.

L'article"Traitement des événements commerciaux dans l'Expert Advisor avec la fonction OnTrade()" et l'article"Trade Events in MetaTrader 5" de Roche.

 
Yedelkin:

Non, non, lisez d'urgence la documentation :) Au moins, cette partie était plus ou moins claire. La liste des transactions n'est qu'une partie de toutes les listes. Les événements doivent donc être différents, eux aussi.

Et encore mieux : il y avait un article sur cette fonction, et un article de Roche sur les événements commerciaux (si je ne me trompe pas dans le titre).

)) Dans OnTrade() je parviens à définir des événements comme ceci :

DEAL_ENTRY_IN, DEAL_ENTRY_OUT, DEAL_ENTRY_INOUT.

Je peux également déterminer si l'un de ces événements était une simple transaction ou un ordre en attente déclenché et quel type d'ordre en attente il s'agissait. Et aussi s'il s'agit d'un nouveau poste ou d'une augmentation/diminution d'un poste déjà existant.

---

Je ne sais pas comment détecter les modifications d'un ordre quelconque. Je n'ai pas non plus vu d'exemples de ce type dans la documentation. J'ai besoin d'un indice. Un simple conseil des développeurs. Cette possibilité existe-t-elle ou non ? Et cette possibilité sera-t-elle un jour mise en œuvre ou non, pour se débarrasser de cette question ou tenter de la résoudre d'une autre manière intelligente. :)

---

Il y a aussi cette section dans la documentation : Types de métiers. Mais ces événements peuvent être identifiés s'ils ont été réalisés de manière programmatique.

 
Yedelkin:

...

Article sur cette fonction"Handling trade events in EAs using OnTrade() function".

J'ai trouvé dans cet article ce que je demandais. Je l'ai lu une fois, mais je l'ai complètement oublié. :)
 
tol64:
J'ai trouvé ce que je cherchais dans cet article. Je l'ai lu une fois, mais je l'avais complètement oublié. :)

J'oublie généralement toutes les subtilités au bout d'un mois. C'est pourquoi je ne fais que relire. Je lis des sections du manuel et des articles :)

Voici une autre phrase "...le changement de SL et TP ne change pas ... et même l'événement OnTrade n'est pas généré, nous écrasons juste les champs SL et TP (comme pour une position ouverte)" peut être utile. Cependant, je n'ai pas encore trouvé comment le faire.

 
tol64:
Oui, c'est exact, mais seulement si les événements sont liés à des transactions, d'après ce que je comprends. J'ai besoin de savoir si les événements de modification de commande peuvent être suivis de manière programmatique en mode manuel.
Au moins, la mise en place et la suppression d'un ordre sont gérées, mais sans paramètres, c'est une vraie galère. Je ne peux pas dire pour le changement, mais il devrait être géré, aussi, par l'idée.
tol64:
J'ai trouvé ce que je cherchais dans cet article. Je l'ai lu une fois, mais je l'ai complètement oublié. :)
J'y ai pensé tout de suite. Les solutions qui y sont décrites ne sont peut-être pas aussi idéales et élégantes que nous le souhaiterions (surtout si l'on considère qu'il manque encore des paramètres), mais en principe, elles présentent tous les éléments de base.
 

Pouvez-vous me dire comment obtenir les cours acheteur et vendeur d'une autre paire de devises, non actuelle pour le moment, dans mt4 il y avait une commande marketinfo, dans mt5 il n'y en a pas.

Je suppose que nous devons passer àSymbolInfoDouble(Symbol(),SYMBOL_ASK) et opérer ici avec la valeurSymbol(), mais je n'arrive pas à trouver comment.

Raison: