HistorySelect

Récupère l'historique des transactions et des ordres pour la période spécifiée.

bool  HistorySelect(
   datetime  from_date,     // Date de début
   datetime  to_date        // Date de fin
   );

Parameters

from_date

[in]  Date de début de la requête.

to_date

[in]  Date de fin de la requête.

Valeur de Retour

Retourne true en cas de succès, sinon retourne false.

Note

HistorySelect() crée une liste d'ordres et une liste de trades dans un programme mql5, pour pouvoir ensuite les utiliser dans les fonctions correspondantes. La taille de la liste des transactions peut être récupérée avec la fonction HistoryDealsTotal() ; la taille de la liste des ordres dans l'historique peut être obtenue avec HistoryOrdersTotal(). La sélection dans la liste des ordres devrait être effectuée avec HistoryOrderGetTicket(), pour les éléments de la liste des transactions, HistoryDealGetTicket() convient mieux.

Après l'utilisation de HistoryOrderSelect(), la liste des ordres disponibles de l'historique pour le programme mql5 est réinitialisée et remplie à nouveau avec l'ordre trouvé, si la recherche d'un ordre par son ticket a été effectuée avec succès. La même chose s'applique à la liste des transactions disponibles pour le programme mql5 - elle est réinitialisée avec HistoryDealSelect() et remplie à nouveau si la transaction est obtenue avec succès par son numéro de ticket.

Exemple :

void OnStart()
  {
   color BuyColor =clrBlue;
   color SellColor=clrRed;
//--- demande l'historique de trading
   HistorySelect(0,TimeCurrent());
//--- crée les objets
   string   name;
   uint     total=HistoryDealsTotal();
   ulong    ticket=0;
   double   price;
   double   profit;
   datetime time;
   string   symbol;
   long     type;
   long     entry;
//--- pour toutes les transactions
   for(uint i=0;i<total;i++)
     {
      //--- essaye de récuperer le ticket des transactions
      if((ticket=HistoryDealGetTicket(i))>0)
        {
         //--- récupère les propriétés des transactions
         price =HistoryDealGetDouble(ticket,DEAL_PRICE);
         time  =(datetime)HistoryDealGetInteger(ticket,DEAL_TIME);
         symbol=HistoryDealGetString(ticket,DEAL_SYMBOL);
         type  =HistoryDealGetInteger(ticket,DEAL_TYPE);
         entry =HistoryDealGetInteger(ticket,DEAL_ENTRY);
         profit=HistoryDealGetDouble(ticket,DEAL_PROFIT);
         //--- seulement pour le symbole courant
         if(price && time && symbol==Symbol())
           {
            //--- crée l'objet prix
            name="TradeHistory_Deal_"+string(ticket);
            if(entry) ObjectCreate(0,name,OBJ_ARROW_RIGHT_PRICE,0,time,price,0,0);
            else      ObjectCreate(0,name,OBJ_ARROW_LEFT_PRICE,0,time,price,0,0);
            //--- définit les propriétés de l'objet
            ObjectSetInteger(0,name,OBJPROP_SELECTABLE,0);
            ObjectSetInteger(0,name,OBJPROP_BACK,0);
            ObjectSetInteger(0,name,OBJPROP_COLOR,type?BuyColor:SellColor);
            if(profit!=0) ObjectSetString(0,name,OBJPROP_TEXT,"Profit: "+string(profit));
           }
        }
     }
//--- applique sur le graphique
   ChartRedraw();
  }

Voir également

HistoryOrderSelect(), HistoryDealSelect()