HistoryDealGetInteger

Restituisce la proprietà richiesta di un affare. La proprietà dell' affare deve essere datetime, tipo int. Ci sono due varianti della funzione.

1. Restituisce immediatamente il valore della proprietà.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Proprietà Identificatore
   );

2. Restituisce true o false, a seconda del successo della funzione. In caso di successo, il valore della proprietà è posto in una variabile di destinazione passata per riferimento dall ultimo parametro.

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // Ticket
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // Proprietà Identificatore identifier
   long&                       long_var           // Qui si accetta il valore della proprietà
   );

Parametri

ticket_number

[in]  Trade ticket.

property_id

[in] Identificatore della proprietà dell' affare. Il valore può essere uno dei valori dell'enumerazione ENUM_DEAL_PROPERTY_INTEGER.

long_var

[out] Variabile di tipo long che accetta il valore della proprietà richiesta.

Valore restituito

Valore di tipo long.

Nota

Attenzione a non confondere ordini, affari e posizioni. Ogni affare è il risultato dell'esecuzione di un ordine, ogni posizione è il risultato di riepilogo di uno o più affari.

Esempio:

//+--------------------------------------------------------------------------------+
//| Funzione di Trade                                                              |
//+--------------------------------------------------------------------------------+
void OnTrade()
  {
//--- riceve i ticket dell'ultimo affare dalla cronistoria di trading della settimana
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- orario di esecuzione dell'affare in millisecondi dal 01.01.1970
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC);
      PrintFormat("Affare #%d DEAL_TIME_MSC=%i64 => %s",
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000));
     }
   else
      PrintFormat("HistoryDealSelect() fallito per #%d. Codice Errore=%d",
                  last_deal,GetLastError());
//---
  }
//+--------------------------------------------------------------------------------+
//| Restituisce l'ultimo ticket nella cronistoria oppure -1                        |
//+--------------------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- richiede la cronistoria per gli ultimi 7 giorni
   if(!GetTradeHistory(7))
     {
      //--- notifica sull'insuccesso della chiamata e restituisce -1
      Print(__FUNCTION__," HistorySelect() ha restituito false");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- lavora con gli ordini se ce ne sono
   if(deals>0)
     {
      Print("Affari = ",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;
     }
//--- nessun affare trovato, restituito -1
   return -1;
  }
//+-----------------------------------------------------------------------------------------+
//| Richiede la cronistoria per gli ultimi giorni e restituisce false in caso di fallimento |
//+-----------------------------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- imposta il periodo di una settimana per richiedere la cronistoria di trading
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//---- fa una richiesta e controlla il risultato
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Error code=",GetLastError());
      return false;
     }
//--- cronitoria ricevuta con successo
   return true;
  }

Vedi anche

HistoryDealsTotal(), HistorySelect(), HistoryDealGetTicket(), Proprietà Affari