HistoryDealGetInteger

Bir işlemin istenen özelliğine dönüş yapar. İşlem özelliği datetime veya int tipinde olmalıdır. Fonksiyonun 2 çeşidi bulunmaktadır.

1. Hemen, özellik değerine dönüş yapar.

long  HistoryDealGetInteger(
   ulong                       ticket_number,     // Fiş
   ENUM_DEAL_PROPERTY_INTEGER  property_id        // Özellik tanımlayıcısı
   );

2. Fonksiyonun başarı durumuna göre, 'true' veya 'false' değerine dönüş yapar. Başarı durumunda, özellik değeri, son parametreye referans ile geçirilen hedef değişkene yerleştirilir.

bool  HistoryDealGetInteger(
   ulong                       ticket_number,     // Fiş
   ENUM_DEAL_PROPERTY_INTEGER  property_id,       // Özellik tanımlayıcısı
   long&                       long_var           // Özelik değerini burada farz ediyoruz
   );

Parametreler

ticket_number

[in]  Alım-satım fişi.

property_id

[in]  Özellik tanımlayıcı. Bu değer, ENUM_DEAL_PROPERTY_INTEGER sayımının değerlerinden biri olabilir.

long_var

[out]  İstenen özellik değerini alacak olan long tipli değişken.

Dönüş değeri

long tipli değer.

Not

Emirleri, işlemleri ve pozisyonları birbiriyle karıştırmayın. İşlemler, bir emrin işlenmesinin sonucudur. Her pozisyon, bir veya daha fazla işlemin sonuç özetidir.

Örnek:

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- haftanın alım-satım geçmişinden, son işlemin fişini al
   ulong last_deal=GetLastDealTicket();
   if(HistoryDealSelect(last_deal))
     {
      //--- işlemin 01.01.1970 tarihinden buyana geçen milisaniyeler bazındaki zamanı
      long deal_time_msc=HistoryDealGetInteger(last_deal,DEAL_TIME_MSC);
      PrintFormat("İşlem #%d DEAL_TIME_MSC=%i64 => %s",
                  last_deal,deal_time_msc,TimeToString(deal_time_msc/1000));
     }
   else
      PrintFormat("HistoryDealSelect() #%d için başarısız oldu. Hata kodu=%d",
                  last_deal,GetLastError());
//---
  }
//+------------------------------------------------------------------+
//| Geçmişteki son işlemin fişine veya -1 değerine dönüş yapar       |
//+------------------------------------------------------------------+
ulong GetLastDealTicket()
  {
//--- son 7 günün geçmişini iste
   if(!GetTradeHistory(7))
     {
      //--- başarısız çağrıda uyar ve -1 dönüşü yap
      Print(__FUNCTION__," HistorySelect() 'false' dönüşü yaptı");
      return -1;
     }
//--- 
   ulong first_deal,last_deal,deals=HistoryOrdersTotal();
//--- eğer varsa emirlerle çalış
   if(deals>0)
     {
      Print("İşlemler = ",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;
     }
//--- işlem bulunamadı, -1 dönüşü yap
   return -1;
  }
//+-------------------------------------------------------------------------------+
//| Son yedi günün geçmişini ister ve başarısızlık durumunda 'false' dönüşü yapar |
//+-------------------------------------------------------------------------------+
bool GetTradeHistory(int days)
  {
//--- alım-satım geçmişini istemek için bir haftalık periyot ayarla
   datetime to=TimeCurrent();
   datetime from=to-days*PeriodSeconds(PERIOD_D1);
   ResetLastError();
//--- istek yap ve sonucu kontrol et
   if(!HistorySelect(from,to))
     {
      Print(__FUNCTION__," HistorySelect=false. Hata kodu=",GetLastError());
      return false;
     }
//--- geçmiş başarıyla alındı
   return true;
  }

Ayrıca Bakınız

HistoryDealsTotal(), HistorySelect(), HistoryDealGetTicket(), İşlem Özellikleri