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

 
Igor Makanu:

Merci !

Oui, c'est ce que je cherchais, si je ne pouvais pas écrire en "cinq lignes" avec SB.

Mais j'ai bien compris qu'un seul SB CTrade ne pourra pas résoudre mon problème et que je dois aussi utiliser CPositionInfo ? - Si je veux accompagner 9 postes par plusieurs TF en même temps ?

ZS : Je suis assis dans l'aide MQL5 avec smart TV - assez bien décrit les fonctions commerciales, l'utilisation de SatB est sous une question .... je pense qu'il est logique d'utiliser SB pour les stratégies primitives, un peu plus compliquées - la fonctionnalité est insuffisante ou l'utilisation pas évidente, peut-être que j'ai besoin de plus de pratique - je vais essayer de "tordre" le SB


Merci encore !

Il est acceptable pour "ouvrir/fermer une position" dans le testeur, ou pour les codes de formation comme substitut. Sinon, vous devez créer votre propre code ou l'hériter de CTrade pour créer votre propre classe à part entière pour les opérations de trading en tenant compte de diverses nuances.
Il y a des choses bien plus agréables à SB - vous les connaissez et les utilisez.

 
fxsaber:

Il n'y a pas d'erreur ici, car la liste est générée par HistorySelectByPosition.

Oui, j'ai oublié qu'il ne s'agit pas d'une liste complète.

 
Artyom Trishkin:

SB a des choses beaucoup plus agréables - vous les connaissez et les utilisez.

donc ce sont les belles choses qui sont trompeuses ! - J'espérais que pendant tant d'années les développeurs de SB ont peaufiné et réalisé la fonctionnalité attendue, et que je suis juste un utilisateur qui n'était pas capable d'utiliser SB en 2 clics, mais il s'avère que je ne suis pas l'utilisateur - la tristesse en général !!!

SZY : L'aide de MQL5 est très habilement écrite, pleine de commandes ... Mais on dit que tant qu'on n'a pas oublié l'ordre des mots, c'est sans espoir !

 
Igor Makanu:

donc ce sont les belles choses qui sont trompeuses ! - J'espérais que pendant tant d'années les développeurs de SB ont peaufiné et réalisé la fonctionnalité attendue, et que je suis juste un utilisateur qui ne pouvait pas utiliser SB en 2 clics, mais il s'avère que je ne suis pas l'utilisateur - tristesse-chagrin en général !!!

SZY : L'aide de MQL5 est très habilement écrite, pleine de commandes ... Mais on dit que tant qu'on n'a pas oublié l'ordre des mots, c'est sans espoir !

C'est assez simple ici. Ordre -> transaction -> position. Dans MQL5, nous ne pouvons pas non plus éviter les ordres - ils sont là, et ils sont le début de tout. Nous envoyons une demande de transaction au serveur (c'est un ordre), le serveur l'accepte/reçoit et renvoie le code. Parfois, si la demande est incorrecte, l'ordre n'est pas du tout envoyé au serveur - son envoi est bloqué au niveau du terminal. Une fois que l'ordre a été envoyé avec succès au serveur et mis en file d'attente pour exécution, nous attendons que cet ordre se déclenche (son exécution, en d'autres termes - une transaction) et, à la suite de cette transaction (qu'il s'agisse d'un ordre au marché ou d'un ordre en suspens), une position est formée (pas toujours - lors de la compensation, et s'il existe une position dans la même direction, elle ajoute simplement du volume à la position existante, si c'est dans la direction opposée, alors, selon le volume de la transaction engagée, la position actuelle est soit partiellement fermée, soit reconduite).

Les commandes ont aussi leur propre ticket. Il en va de même pour les transactions et les positions. Mais un poste a aussi un identifiant. L'identifiant d'une position sera toujours égal au ticket de son tout premier ordre - l'ordre d'ouvrir cette position.

Un ordre au marché n'a qu'un ticket. Et sa propriété d'identifiant de position n'est pas remplie tant que l'ordre n'est pas déclenché. C'est-à-dire que seul un ordre historique possède un identifiant de position - il est renseigné au moment de la transaction - au moment du déclenchement de cet ordre. S'il s'agit d'unordre en attente supprimé, son identifiant de position n'est pas non plus rempli - il n'y a pas eu de transaction ou de position respectivement.

La transaction a un ticket (son ticket), il y a un identifiant de l'ordre - à la suite duquel cette transaction a été exécutée, et il y a un identifiant de position - la position qui est apparue à la suite de l'exécution de cette transaction ou la position qui a été modifiée à la suite de l'exécution de cette transaction.

La position a un ticket, qui lui est attribué lorsqu'elle est ouverte ou modifiée. Si le poste est seulement ouvert, son ticket sera égal à son identifiant - un numéro de poste unique, qui ne change pas pendant toute la durée de vie du poste. Alors que le ticket d'une position peut changer à plusieurs reprises et correspond au ticket d'un ordre - suite au déclenchement de cet ordre, une nouvelle transaction apparaît qui modifie cette position - le ticket de cet ordre est affecté au ticket de la position.

Si nous surveillons de près toutes ces métamorphoses d'une position, nous pouvons facilement voir le comportement de la position dans mql4 pendant sa fermeture partielle - son ticket change là aussi.

 
Artyom Trishkin:

Si vous observez attentivement toutes ces métamorphoses dans la position

Merci ! Je le regarde pour le deuxième jour, mais tout ce qu'il faut c'est de la pratique, aujourd'hui j'ai compris le SB...enfin, compris ;)

PS : vous expliquez bien, du talent à coup sûr !

 
Igor Makanu:

Merci ! Je le regarde pour le deuxième jour, mais tout ce qu'il faut, c'est de la pratique, alors aujourd'hui j'ai réglé le SB... enfin, je l'ai réglé ;)

PS : bien expliqué, un talent certain !

Heureux d'aider ;)

 
Artyom Trishkin:

..................

Une commande a également son propre ticket. Il en va de même pour les transactions et les positions. Mais un poste a aussi un identifiant. L'identifiant de la position sera toujours égal au ticket de son tout premier ordre - l'ordre d'ouverture de cette position.

Un ordre au marché n'a qu'un ticket. Et sa propriété d'identifiant de position n'est pas remplie tant que l'ordre n'est pas déclenché. C'est-à-dire que seul un ordre historique possède un identifiant de position - il est renseigné au moment de la transaction - au moment du déclenchement de cet ordre. S'il s'agit d'un ordre en attente supprimé, son identifiant de position n'est pas non plus rempli - il n'y a pas eu de transaction ou de position respectivement.

La transaction a un ticket (son ticket), il y a un identifiant de l'ordre - à la suite duquel cette transaction a été exécutée, et il y a un identifiant de position - la position qui est apparue à la suite de l'exécution de cette transaction ou la position qui a été modifiée à la suite de l'exécution de cette transaction.

La position a un ticket, qui lui est attribué lorsqu'elle est ouverte ou modifiée. Si le poste est seulement ouvert, son ticket sera égal à son identifiant - un numéro de poste unique, qui ne change pas pendant toute la durée de vie du poste. Alors que le ticket d'une position peut être modifié à plusieurs reprises et correspond au ticket de l'ordre - suite au déclenchement de cet ordre, une nouvelle transaction apparaît qui modifie cette position - le ticket de cet ordre est affecté au ticket de la position.

Si nous surveillons de près toutes ces métamorphoses d'une position, nous pouvons facilement voir le comportement de la position dans mql4 pendant sa fermeture partielle - son ticket change là aussi.

Il s'avère donc que la non-concordance a été obtenue en raison du retard dans la transformation de l'ordre en transaction - position ? Même dans le testeur... ? C'est incroyable.

Donc, après avoir placé l'ordre, nous devons encore nous assurer que la position est ouverte... Combien de temps doit-on attendre ? Est-ce pour suspendre la chouette jusqu'à ce que toutes les conversions soient confirmées ? Ou comment c'est en général ?

 
Сергей Таболин:

Il s'avère que le décalage était dû au retard dans la transformation de l'ordre en transaction - position ? Même dans le testeur... ? Quel tas de conneries.

Donc, après avoir placé l'ordre, nous devons encore nous assurer que la position est ouverte... Combien de temps doit-on attendre ? Est-ce pour suspendre la chouette jusqu'à ce que toutes les conversions soient confirmées ? Ou comment c'est en général ?

Nous avons placé un ordre de transaction (nous nous sommes souvenus du ticket de transaction) et avons levé le drapeau d'attente - dès que nous avons un déclencheur garanti dans OnTradeTransaction - type de transaction TRADE_TRANSACTION_DEAL_ADD - nous vérifions le ticket de transaction. Si tout allait bien ensemble - très bien.

Il s'agit de la vie réelle - les événements peuvent se produire avec un intervalle différent, des pannes de connexion ... Beaucoup de choses peuvent se produire. C'est la réalité - il n'y a pas de chaîne rigide.

 
Vladimir Karputov:

Nous avons placé un ordre de transaction (rappelons le ticket de transaction) et activé le drapeau en attente - dès que OnTradeTransaction a reçu un déclencheur garanti - type de transaction TRADE_TRANSACTION_DEAL_ADD - nous vérifions le ticket de transaction. Si tout allait bien ensemble - très bien.

Il s'agit de la vie réelle - les événements peuvent se produire avec un intervalle différent, des pannes de connexion ... Beaucoup de choses peuvent se produire. C'est la réalité - il n'y a pas de chaîne rigide.

Eh bien, c'est essentiellement la pendaison du conseiller... En attendant que la confirmation vienne ou ne vienne pas... Je suis un peu perdu là... Comment faire pour attendre ? Utilisation de while() ?

 
Сергей Таболин:

Eh bien, il s'agit essentiellement de suspendre le conseiller... En attendant que la confirmation vienne ou ne vienne pas... Je ne sais pas quoi faire. Comment faire pour attendre ? Utilisation de while() ?

Non. Le sommeil et le repos sont catégoriquement interdits.

Raison: