Erreurs, bugs, questions - page 2598

 
Andrey Khatimlianskii:

Pourquoi une position i-di pour tout cela ? Je ne vois pas du tout comment l'utiliser.

Il suffit d'analyser les transactions.

J'utilise un algorithme interne de compensation. Il existe donc plusieurs positions virtuelles, qui doivent être régulièrement comparées à la position réelle, afin d'éviter toute divergence. De plus, le trade s'effectue sur plusieurs Symboles, il y a donc plusieurs positions réelles.

 
Francuz:

J'utilise un algorithme interne de compensation. Il existe donc plusieurs positions virtuelles, et elles doivent être régulièrement vérifiées par rapport à la position réelle pour éviter les divergences. De plus, le trade s'effectue sur plusieurs Symboles, il y a donc plusieurs positions réelles.

Pourquoi la position i-di ? Avec quoi le vérifiez-vous ?

Gérez-vous vos postes virtuels ? Super, il suffit de calculer le volume et de s'assurer qu'il est égal au volume réel.

Apparemment, je ne vois pas la tâche dans son ensemble.

 
Andrey Khatimlianskii:

Pourquoi une position i-d ? A quoi le comparez-vous ?

Conservez-vous vos postes virtuels ? Super, il suffit de calculer le volume et de s'assurer qu'il est égal au volume réel.

Apparemment, je ne vois pas la tâche dans son ensemble.

Ceci pendant le fonctionnement normal. Mais lorsque le terminal s'arrête soudainement, tout est perdu. Pour cette raison, j'ai fait une protection contre les échecs en utilisant les variables globales du terminal. Je ne peux pas y mettre Symbol. J'utilise donc PositionID à la place. C'est encore plus pratique.

Mais nous nous sommes écartés de l'essence de la question. L'erreur dans les transactions a été détectée. Mais personne parmi les développeurs n'a pris la peine de répondre. Les informations ont-elles été prises en compte, ou n'ont-elles même pas été lues ?

 
Francuz:

Ceci pendant le fonctionnement normal. Mais lorsque le terminal est soudainement éteint, tout est perdu. C'est pourquoi je l'ai protégé avec les variables globales du terminal. Et vous ne pouvez pas y mettre Symbol. J'utilise donc PositionID à la place. C'est encore plus pratique.

Mais nous nous sommes écartés du sujet. L'erreur dans les transactions a été détectée. Mais personne parmi les développeurs n'a pris la peine de répondre. Les informations ont-elles été prises en compte, ou n'ont-elles même pas été lues ?

Quelle est l'erreur ?

 
Artyom Trishkin:

Quelle erreur ?

Cette erreur :

https://www.mql5.com/ru/forum/1111/page2596#comment_13707304

Il a été établi avec précision qu'il ne fonctionne pas comme indiqué dans la description officielle de la structure :

https://www.mql5.com/ru/docs/constants/structures/mqltradetransaction

Ошибки, баги, вопросы
Ошибки, баги, вопросы
  • 2019.10.29
  • www.mql5.com
Общее обсуждение: Ошибки, баги, вопросы
 
Francuz:

Cette erreur :

https://www.mql5.com/ru/forum/1111/page2596#comment_13707304

Il a été établi avec précision qu'il ne fonctionne pas comme indiqué dans la description officielle de la structure :

https://www.mql5.com/ru/docs/constants/structures/mqltradetransaction

position

Ticket de la position affectée par la transaction.


Qu'est-ce qu'il y a ? On vous montre un ticket de position. Il s'agit de l'ID du poste. Vous avez un compte de compensation - il n'y a qu'une seule position sur ce compte jusqu'à ce qu'il soit fermé. Retourner un poste n'est pas le fermer.

 
Artyom Trishkin:

position

Ticket du poste concerné par la transaction.


Qu'est-ce qu'il y a ? Le ticket de poste vous est présenté. Il s'agit de l'identifiant du poste. Vous avez un compte avec un type de compensation ; il n'y a qu'une seule position sur ce compte jusqu'à ce qu'il soit fermé. Retourner un poste n'est pas le fermer.

Vous vous trompez. Le ticket de poste et l'identifiant de poste sont des entités différentes. Ils sont très similaires, il n'y a donc aucune raison de les confondre. Dans l'énumérationENUM_POSITION_PROPERTY_INTEGER, ils sont clairement séparés en tant qu'entités différentes.

 

Le testeur MT5 ne voit pas l'historique :






historique disponible dans le terminal :



Vous pouvez voir tous les détails du lancement dans les captures d'écran. Merci à tous.

 
Francuz:

Vous vous trompez. Le ticket de poste et l'identifiant de poste sont des entités différentes. Ils sont très similaires, il n'y a donc aucune raison de les confondre. Dans l'énumérationENUM_POSITION_PROPERTY_INTEGER, ils sont clairement séparés en tant qu'entités différentes.

Je ne me trompe pas en disant que l'identification du poste vous est montrée. C'est ce que j'ai dit pour la dernière fois.

Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.

 Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.

 При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен

Utilisez votre logique.
Si le nombre indiqué ne change pas lorsque la position est inversée et reste le même, cela ne peut signifier qu'une chose : ce nombre est un identifiant de position. Regardez l'ordre qui a engendré la transaction - il n'est pas le même que le numéro de position, ce qui signifie que la position est l'ID de la position.

C'est sur cette base que vous devez procéder. Il ne s'agit pas d'une erreur dans la transaction, mais plutôt d'une erreur dans l'aide apportée alors.

Et en ce qui concerne cette déclaration de votre part, je peux dire - s'il vous plaît, regardez mes articles et imaginez comment je pourrais les écrire sans une étude approfondie et une compréhension du sujet ? Je comprends tout parfaitement et je sais faire la différence - je ne fais que vous montrer exactement ce que vous voyez dans le magazine.
 
Artyom Trishkin:

Je ne me trompe pas sur l'identification de la position qui vous a été montrée. C'est ce que j'ai dit pour la dernière fois.

Идентификатор позиции - это уникальное число, которое присваивается каждой вновь открытой позиции и не изменяется в течение всей ее жизни. Соответствует тикету ордера, которым была открыта позиция.

 Идентификатор позиции указывается в каждом ордере (ORDER_POSITION_ID) и сделке (DEAL_POSITION_ID), которая ее открыла, изменила или закрыла. Используйте это свойство для поиска ордеров и сделок, связанных с позицией.

 При развороте позиции в режиме неттинга (единой сделкой in/out) идентификатор позиции POSITION_IDENTIFIER не изменяется. Однако при этом POSITION_TICKET изменяется на тикет ордера, в результате которого произошел разворот. В режиме хеджинга разворот позиции не предусмотрен

Il suffit d'inclure la logique.
Si le numéro indiqué n'a pas changé lors de l'inversion de la position et reste le même, cela ne peut signifier qu'une chose - ce numéro est l'identifiant de la position. Regardez l'ordre qui a engendré la transaction - il n'est pas le même que le numéro de position, ce qui signifie que la position est un ID de position.

C'est sur ça qu'il faut se baser. Il ne s'agit pas d'une erreur dans le terminal, mais plutôt d'une erreur dans l'aide ensuite.

Même si vous suivez votre logique, il y a toujours une contradiction entre le code et la description. C'est-à-dire que si le code est correct, vous devez corriger la description. Mais, malheureusement, ce n'est pas l'identifiant du poste qui est substitué dans ce domaine. A titre d'exemple, je citerai à nouveau une capture d'écran du courtier BCS, mais avec un grand nombre de transactions :

BCS2

Qu'est-ce que c'est ? Ça ne ressemble pas à un identifiant de position.