HistoryDealGetTicket

La fonction sélectionne une transaction pour pouvoir l'utiliser ensuite et retourne le ticket de la transaction de l'historique. Avant d'appeler HistoryDealGetTicket(), il est nécessaire de récupérer d'abord l'historique des transactions et des ordres avec les fonctions HistorySelect() ou HistorySelectByPosition().

ulong  HistoryDealGetTicket(
   int  index      // indice de la transaction
   );

Parameters

index

[in]  Numéro d'une transaction dans la liste des transactions

Valeur de Retour

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

Note

Ne confondez pas les ordres, les transactions et les positions. Chaque transaction est le résultat de l'exécution d'un ordre, chaque position est le résultat global d'une ou plusieurs transactions.

Exemple :

void OnStart()
  {
   ulong deal_ticket;            // ticket de la transaction
   ulong order_ticket;           // ticket de l'ordre sur lequel la transaction a été exécutée
   datetime transaction_time;    // heure d'exécution de la transaction
   long deal_type ;              // type de l'opération de trading
   long position_ID;             // identifiant de la position
   string deal_description;      // description de l'opération
   double volume;                // volume de l'opération
   string symbol;                // symbole de la transaction
//--- définit la date de début et de fin pour demander l'historique des transactions
   datetime from_date=0;         // date de début
   datetime to_date=TimeCurrent();// date de fin
//--- demande l'historique des transactions pour la période spécifiée
   HistorySelect(from_date,to_date);
//--- nombre total dans la liste des transactions
   int deals=HistoryDealsTotal();
//--- traite maintenant chaque trade
   for(int i=0;i<deals;i++)
     {
      deal_ticket=               HistoryDealGetTicket(i);
      volume=                    HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
      transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
      order_ticket=              HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
      deal_type=                 HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
      symbol=                    HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
      position_ID=               HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
      deal_description=          GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID);
      //--- affiche correctement le numéro de la transaction
      string print_index=StringFormat("% 3d",i);
      //--- affiche les informations sur la transaction
      Print(print_index+" : deal #",deal_ticket," à ",transaction_time,deal_description);
     }
  }
//+------------------------------------------------------------------+
//| Retourne la description textuelle de l'opération                 |
//+------------------------------------------------------------------+
string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID)
  {
   string descr;
//---
   switch(deal_type)
     {
      case DEAL_TYPE_BALANCE:                  return ("solde");
      case DEAL_TYPE_CREDIT:                   return ("crédit");
      case DEAL_TYPE_CHARGE:                   return ("facturé");
      case DEAL_TYPE_CORRECTION:               return ("correction");
      case DEAL_TYPE_BUY:                      descr="buy"break;
      case DEAL_TYPE_SELL:                     descr="sell"break;
      case DEAL_TYPE_BONUS:                    return ("bonus");
      case DEAL_TYPE_COMMISSION:               return ("commission supplémentaire");
      case DEAL_TYPE_COMMISSION_DAILY:         return ("commission quotidienne");
      case DEAL_TYPE_COMMISSION_MONTHLY:       return ("commission mnensuelle");
      case DEAL_TYPE_COMMISSION_AGENT_DAILY:   return ("commission quotidienne de l'agent");
      case DEAL_TYPE_COMMISSION_AGENT_MONTHLYreturn ("commission mensuelle de l'agent");
      case DEAL_TYPE_INTEREST:                 return ("taux d'intérêt");
      case DEAL_TYPE_BUY_CANCELED:             descr="transaction buy annulée"break;
      case DEAL_TYPE_SELL_CANCELED:            descr="transaction sell annulée"break;
     }
   descr=StringFormat("%s %G %s (ordre #%d, identifiant de la position %d)",
                      descr,  // description en cours
                      volume, // volume de la transaction
                      symbol, // symbol de la transaction
                      ticket, // ticket de l'ordre associé à la transaction
                      pos_ID  // identifiant de la position à laquelle la transaction est associée
                      );
   return(descr);
//---
  }

 

Voir également

HistorySelect(), HistoryDealsTotal(), HistoryDealSelect(), Propriétés d'une transaction