COMMANDE_POSITION_ID

 

Bonjour !

Est-ce que quelqu'un utilise

 if ( OrderSelect( ticket ) )
 {
  long pos_id = long( OrderGetInteger( ORDER_POSITION_ID ) );

  if ( pos_id > 0 )
  {
  }
}

Moi, quand un ordre est partiellement exécuté pos_id toujours = 0

Pourquoi ?

Dans l'aide de MQ :

COMMANDE_POSITION_ID

L'identifiant de la position qui est mis sur l'ordre lorsqu'il est exécuté. Chaque ordre exécuté génère une transaction, qui ouvre une nouvelle position ou modifie une position existante. L'identifiant de cette position est fixé à l'ordre exécuté à ce moment-là.

 
Personne n'est au courant ?
 
J'utilise :) comme par magie lorsque vous devez lier des ordres à une position.
 
Yurich:
Je l'utilise :) Comme par magie, lorsqu'il est nécessaire de lier un ordre à une position.

Alors pourquoi j'en ai 0 ?

Parce que si ça avait été écrit dans l'aide, ça aurait dit :

ID de la position, qui est mis sur l'ordre lorsqu'il est exécuté.

Alors peut-être que ça devrait être zéro.

Mais ça dit :

Chaque ordre exécuté génèreune transaction qui ouvre une nouvelleposition ou modifie uneposition existante. L'identifiant de cette position est fixé à l'ordre exécuté à ce moment-là.

Et un ordre partiellement exécuté génère également une transaction.

Qu'est-ce que tu veux dire ?

 
Mikalas:

Alors pourquoi j'en ai 0 ?

C'est à Servicedesk.

Je répondais à la question"Est-ce que quelqu'un utilise" et j'étais imprécis, j'utilise laposition ID.

 
Yurich:

C'est à Servicedesk.

Je répondais à la question"Est-ce que quelqu'un utilise" et j'étais imprécis, j'utilise laposition ID.

Je vois, merci.

Mais c'est l'identifiant de la position, mais seulement à l'ordre.

 
Mikalas:

Chez moi, lorsqu'un ordre est partiellement exécuté, pos_id est toujours égal à 0.

Pourquoi ?

Je n'utilise pas pos_id, probablement parce que je ne comprends pas à quoi il sert.

Je me demande quel ID un ordre doit avoir s'il ferme une position précédente et en ouvre une nouvelle (flip) ?

p.s. L'idée est qu'il ne devrait y avoir qu'une seule position commerciale civile (quelle que soit la manière : achat, vente, couverture). S'il semble n'y avoir aucune position, c'est qu'elle est temporaire).

 
Serj_Che:

Je n'utilise pas pos_id, probablement parce que je ne comprends pas à quoi il sert.

Je me demande quel ID un ordre doit avoir s'il ferme une position précédente et en ouvre une nouvelle (flip) ?

p.s. L'idée est qu'il ne devrait y avoir qu'une seule position commerciale civile (quelle que soit la manière : achat, vente, couverture). S'il semble n'y avoir aucune position, c'est qu'elle est temporaire).

Cela est dû au fait que la référence a une description ambiguë,

qui peuvent être interprétées différemment. Parce qu'un ordre partiellement exécuté crée également un

Par conséquent, un ORDER_POSITION_ID doit être attribué à l'ordre.

 
Mikalas:

Bonjour !

Est-ce que quelqu'un utilise

J'ai toujours pos_id = 0 lorsqu'un ordre est partiellement exécuté.

Pourquoi ?

Peut-être parce que ORDER_POSITION_ID est demandé immédiatement après l'exécution de l'ordre, lorsque le serveur commercial n'a pas encore eu le temps d'envoyer des informations sur la transaction.

Lire l'article Événements commerciaux dans MetaTrader 5


 
Rosh:

Cela peut être dû au fait que ORDER_POSITION_ID est demandé immédiatement après l'exécution de l'ordre, lorsque le serveur commercial n'a pas encore eu le temps d'envoyer des informations sur la transaction.

Lire l'article Événements commerciaux dans MetaTrader 5


Vous n'êtes pas sûr de votre réponse ?
 
Rosh:

Peut-être parce que ORDER_POSITION_ID est demandé immédiatement après l'exécution de l'ordre, lorsque le serveur de négociation n'a pas encore eu le temps d'envoyer des informations sur la transaction.

Lire l'article Événements commerciaux dans MetaTrader 5


Ce n'est pas clair. S'il y a un ticket, la transaction est exécutée, et nous avons reçu une réponse du serveur.

Que voulez-vous dire, nous avons un ticket, mais le serveur n'a pas reçu la réponse ?