COMMANDE_POSITION_ID - page 2

 
Besoin de plus de contexte (code). D'où vient ce ticket et qu'est-ce qu'il équivaut avant l'exécution de ce code ?
 
Rosh:

Peut-être est-ce 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


J'ai donné un extrait de code à titre d'exemple, mais en fait la fonction pour obtenir l'ID ressemble à ceci :

//+------------------------------------------------------------------+
//| Get order position ID function                                   |
//+------------------------------------------------------------------+
long GetOrderPosId( const ulong ticket )
{
  long pos_id = 0;
  
  if ( OrderSelect( ticket ) )
  {
    string pos_symbol = OrderGetString( ORDER_SYMBOL );
    
    if ( PositionSelect( pos_symbol ) )
    {
      return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );
    }
  }
  
  return( pos_id );
}

P/S Rosh, ne m'envoyez pas lire des articles.

Croyez-moi, j'ai beaucoup lu, et le fait que je demande beaucoup de choses...

Questions, c'est parce qu'il y a beaucoup d'ambiguïté dans la documentation.

 
marketeer:
Nous avons besoin de plus de contexte (code). D'où vient ce ticket et qu'est-ce qu'il équivaut avant l'exécution de ce code ?

Si l'ordre est sélectionné, quel était le billet, selon vous ?

Et le ticket a été retiré de l'internet en réponse à l'acceptation de l'ordre par le serveur de trading.

 
Mikalas:

Si l'ordre est sélectionné, quel était le billet, selon vous ?

Et le ticket a été retiré de l'internet en réponse à l'acceptation de l'ordre par le serveur de trading.

Et comment pensez-vous que nous savons ce que et d'où vous l'obtenez ? Vous montrez encore du code qui ne dit rien sur le contenu du ticket, sur la façon dont la requête a été exécutée, et vous n'utilisez pas, par exemple, le debug print ou d'autres moyens pour vérifier que la variable ne contient pas un numéro de gaucher (pour commencer, alors request.action égale quoi ?). Un insecte peut se faufiler partout.
 
marketeer:
Comment pensez-vous que nous savons ce que vous recevez et d'où ça vient ? Vous montrez encore du code qui ne dit rien sur le contenu du ticket, sur la façon dont la requête a été exécutée, et vous n'utilisez pas, par exemple, le debug print ou d'autres moyens pour vous assurer que la variable ne contient pas un numéro de gaucher (pour commencer, alors request.action égale quoi ?). Un insecte peut se faufiler partout.
Merci, je comprends votre point de vue.
 
Mikalas:
Merci, je comprends votre point de vue.
Vous êtes les bienvenus. Je ne comprends pas votre point de vue. On vous a déjà fait allusion à l'exécution asynchrone de la demande et à la réception du ticket. Jusqu'à ce que vous montriez au code comment et quand vous traitez ce genre de choses, la question s'avère être adressée aux télépathes.
 
marketeer:
Vous êtes les bienvenus. Et je ne comprends pas votre point de vue. On vous a déjà fait allusion à l'exécution asynchrone de la demande et à la réception du ticket. Jusqu'à ce que vous montriez le code, comment et quand vous traitez ce genre de choses, la question s'avère être adressée aux télépathes.

Laissez-moi vous expliquer.

D'après le code ci-dessus, tout est évident.

Peu importe le billet (la commande est passée seule). Regardez attentivement (ordre par ticket et position par symbole d'ordre ouvert partiellement exécuté par cet ordre).

En plus de l'impression, il y a également une exécution du programme étape par étape et

quand j'arriverai à

return( long( OrderGetInteger( ORDER_POSITION_ID ) ) );

Il renvoie "0".

La question n'est pas de savoir si je peux ou non programmer en MQL5 (ainsi que tracer le programme), mais

La question est de savoir si l'on dit une chose dans la documentation et que l'on en met une autre en œuvre (le Service Desk est silencieux comme d'habitude).

Ou j'ai peut-être interprété correctement la description donnée dans la documentation surORDER_POSITION_ID.

(lire mes 3 posts).

 
Mikalas:

Laissez-moi vous expliquer.

D'après le code ci-dessus, tout est évident.

Peu importe le ticket (la commande est passée seule). Regardez attentivement (ordre par ticket et position par symbole d'ordre ouvert partiellement exécuté par cet ordre).

En plus de l'impression, il y a également une exécution du programme étape par étape et

quand j'arriverai à

Il renvoie "0".

La question n'est pas de savoir si je peux ou non programmer en MQL5 (ainsi que tracer le programme), mais

La question est de savoir si l'on dit une chose dans la documentation et que l'on en met une autre en œuvre (le Service Desk est silencieux comme d'habitude).

Ou j'ai peut-être interprété correctement la description donnée dans la documentation surORDER_POSITION_ID.

(Lire mes 3 posts).

Encore 25. Il est IMPORTANT de savoir quelle commande et comment vous la passez. Si, par exemple (hypothétiquement, car tout est encore un mystère), vous avez un pendule, alors quelle peut être la position ID ?

Le code ci-dessus n'a aucun sens.

 
marketeer:

25 encore. Il est IMPORTANT de savoir quelle commande et comment vous la passez. Si vous avez, par exemple (hypothétiquement, car tout est encore un mystère), un pendule, alors quelle peut être la position ID ?

Le code ci-dessus n'a aucun sens.

Désolé, mais nous parlons des langues "différentes", ou vous lisez à travers la ligne.

L'ordre en attente est UN et la position a été partiellement ouverte par cetordre qui est toujours en vigueur,

En traçant le programme, j'obtiensreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) ) ;

 
Mikalas:

Désolé, mais vous et moi parlons des langues "différentes", ou vous lisez à travers la ligne.

L'ordre en attente est UN et la position a été partiellement ouverte par cetordre, qui est toujours en vigueur,

En traçant le programme, j'obtiensreturn( long( OrderGetInteger( ORDER_POSITION_ID ) ) ) ;

Vous observez cet ordre partiellement exécuté. Où se trouve-t-elle ? Dans la liste des transactions ou dans les ordres exécutés ?

Raison: