HistoryOrderGetTicket

Retoure le ticket de l'ordre correspondant dans l'historique. Avant d'appeler HistoryOrderGetTicket(), il est nécessaire de récupérer d'abord l'historique des transactions et des ordres avec les fonctions HistorySelect() ou HistorySelectByPosition().

ulong  HistoryOrderGetTicket(
   int  index      // indice dans la liste des ordres
   );

Parameters

index

[in]  Numéro de l'ordre dans la liste des ordres

Valeur de Retour

Valeur de type ulong. Si la fonction échoue, retourne 0.

Note

Ne confondez pas les ordres d'un historique de trading avec les ordres en attente en cours qui apparaissent dans l'onglet "Trade" de la barre "Boîte à Outils". La liste des ordres qui ont été annulés ou qui on conduit à une transaction, est visible dans l'onglet "Historique" de la "Boîte à Outils" du terminal client.

Exemple :

void OnStart()
  {
   datetime from=0;
   datetime to=TimeCurrent();
//--- demande l'historique en entier
   HistorySelect(from,to);
//--- variables pour retourner les valeurs des propriétés de l'ordre
   ulong    ticket;
   double   open_price;
   double   initial_volume;
   datetime time_setup;
   datetime time_done;
   string   symbol;
   string   type;
   long     order_magic;
   long     positionID;
//--- nombre d'ordres en attente en cours
   uint     total=HistoryOrdersTotal();
//--- parcours les ordres dans une boucle
   for(uint i=0;i<total;i++)
     {
      //--- retourne le ticket de l'ordre par sa position dans la liste
      if((ticket=HistoryOrderGetTicket(i))>0)
        {
         //--- retourne les propriétés de l'ordre
         open_price    =HistoryOrderGetDouble(ticket,ORDER_PRICE_OPEN);
         time_setup    =(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_SETUP);
         time_done     =(datetime)HistoryOrderGetInteger(ticket,ORDER_TIME_DONE);
         symbol        =HistoryOrderGetString(ticket,ORDER_SYMBOL);
         order_magic   =HistoryOrderGetInteger(ticket,ORDER_MAGIC);
         positionID    =HistoryOrderGetInteger(ticket,ORDER_POSITION_ID);
         initial_volume=HistoryOrderGetDouble(ticket,ORDER_VOLUME_INITIAL);
         type          =GetOrderType(HistoryOrderGetInteger(ticket,ORDER_TYPE));
         //--- prépare et affiche les informations de l'ordre
         printf("#ticket %d %s %G %s à %G a été établi à %s => fait à %s, pos ID=%d",
                ticket,                  // ticket de l'ordre
                type,                    // type
                initial_volume,          // volume placé
                symbol,                  // symbole
                open_price,              // prix d'ouverture spécifié
                TimeToString(time_setup),// heure du placement de l'ordre
                TimeToString(time_done), // heure d'exécution de l'ordre ou de sa suppression
                positionID               // identifiant de la position à laquelle la transaction de l'ordre est associée
                );
        }
     }
//---
  }
//+------------------------------------------------------------------+
//| Retourne le nom du type de l'ordre                               |
//+------------------------------------------------------------------+
string GetOrderType(long type)
  {
   string str_type="opération inconnue";
   switch(type)
     {
      case (ORDER_TYPE_BUY):            return("buy");
      case (ORDER_TYPE_SELL):           return("sell");
      case (ORDER_TYPE_BUY_LIMIT):      return("buy limit");
      case (ORDER_TYPE_SELL_LIMIT):     return("sell limit");
      case (ORDER_TYPE_BUY_STOP):       return("buy stop");
      case (ORDER_TYPE_SELL_STOP):      return("sell stop");
      case (ORDER_TYPE_BUY_STOP_LIMIT): return("buy stop limit");
      case (ORDER_TYPE_SELL_STOP_LIMIT):return("sell stop limit");
     }
   return(str_type);
  }

Voir également

HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), Propriétés d'un Ordre