HistoryDealGetInteger

Retourne la propriété demandée d'une transaction. La propriété de la transaction doit être de type datetime ou int. Il existe 2 variantes de la fonction.

1. Retourne immédiatement la valeur de la propriété.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Identifiant de la propriété
   );

2. Retourne true ou false, suivant le succès de la fonction. En cas de succès, la valeur de la propriété est placée dans la variable correspondante passée par référénce (le dernier paramètre).

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // Identifiant de la propriété
   long&                       long_var           // Valeur de la propriété
   );

Parameters

ticket_number

[in]  Ticket du trade.

property_id

[in]  Identifiant de la propriété de la transaction. La valeur peut être l'une des valeurs de l'énumération ENUM_DEAL_PROPERTY_INTEGER

long_var

[out]  Variable de type long qui prendra la valeur de la propriété demandée.

Valeur de Retour

Valeur de type long.

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 :

//+------------------------------------------------------------------+
//| Fonction Trade                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- récupère le ticket de la dernière transaction depuis l'historique de trading de la semaine
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- heure d'exécution de la transaction en millisecondes depuis le 01.01.1970
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC);
      PrintFormat("Transaction #%d DEAL_TIME_MSC=%i64 => %s",
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000));
     }
   else
      PrintFormat("Echec de HistoryDealSelect() pour #%d. Code d'erreur=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//| Retourne le ticket de la dernière transaction ou -1              |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- récupère l'historique des 7 derniers jours
   if(!GetTradeHistory(7))
     {
      //--- notification d'un appel non réussi et retourne -1
      Print(__FUNCTION__," HistorySelect() a retourné false");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- utilise les ordres s'il y en a
   if(deals>0)
     {
      Print("Transactions = ",deals);
      first_deal=HistoryDealGetTicket(0);
      PrintFormat("first_deal = %d",first_deal);
      if(deals>1)
        {
         last_deal=HistoryDealGetTicket((int)deals-1);
         PrintFormat("last_deal = %d",last_deal);
         return last_deal;
        }
      return first_deal;
     }
//--- aucune transaction trouvée, retourne -1
   return -1;
  }
//+--------------------------------------------------------------------------+
//| Récupère l'historique des derniers jours et retourne false en cas d'échec|
//+--------------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- utilise la période de la semaine pour récupérer l'historique de trading
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- effectue une demande et vérifie le résultat
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Code d'erreur=",GetLastError());
      return false;
     }
//--- l'historique a été récupéré avec succès
   retourne vrai;
  }

Voir également

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