HistoryOrderGetInteger

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

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

long  HistoryOrderGetInteger(
   ulong                        ticket_number,     // Fiş
   ENUM_ORDER_PROPERTY_INTEGER  property_id        // Özellik tanımlayıcı
   );

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  HistoryOrderGetInteger(
   ulong                        ticket_number,     // Fiş
   ENUM_ORDER_PROPERTY_INTEGER  property_id,       // Özellik tanımlayıcı
   long&                        long_var           // Özelik değerini burada farz ediyoruz
   );

Parametreler

ticket_number

[in]  Emir fişi.

property_id

[in]  Özellik tanımlayıcı. Bu değer ENUM_ORDER_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

Alım-satım geçmişindeki emirlerle - "AraçKutusu" çubuğunun "Trade" sekmesinde görünen - bekleyen emirleri birbirine karıştırmayın. İptal edilmiş veya bir faaliyete konu olmuş emirler, "AraçKutusu" çubuğunun "Geçmiş" sekmesinde bulunabilir.

Örnek:

//+------------------------------------------------------------------+
//| Trade function                                                   |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- Haftanın alım-satım geçmişinden son emrin fişini al
   ulong last_order=GetLastOrderTicket();
   if(HistoryOrderSelect(last_order))
     {
      //--- emrin işlenmesinin, 01.01.1970 tarihinden buyana geçen milisaniyeler bazındaki zamanı
      long time_setup_msc=HistoryOrderGetInteger(last_order,ORDER_TIME_SETUP_MSC);
      PrintFormat("Emir #%d ORDER_TIME_SETUP_MSC=%i64 => %s",
                  last_order,time_setup_msc,TimeToString(time_setup_msc/1000));
      //--- 01.01.1970 beri geçen milisaniyeler cinsinden emrin gerçekleşme/iptal edilme zamanı
      long  time_done_msc=HistoryOrderGetInteger(last_order,ORDER_TIME_DONE_MSC);
      PrintFormat("Emir #%d ORDER_TIME_DONE_MSC=%i64 => %s",
                  last_order,time_done_msc,TimeToString(time_done_msc/1000));
     }
   else // başarısızlık durumunda uyar
      PrintFormat("HistoryDealSelect() #%d için başarısız oldu. Hata kodu=%d",
                  last_order,GetLastError());
 
//---
  }
//+------------------------------------------------------------------+
//| Geçmişteki son emir fişine veya -1 eğerine dönüş yapar           |
//+------------------------------------------------------------------+
ulong GetLastOrderTicket()
  {
//--- 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_order,last_order,orders=HistoryOrdersTotal();
//--- eğer varsa emirlerle çalış
   if(orders>0)
     {
      Print("Emirler = ",orders);
      first_order=HistoryOrderGetTicket(0);
      PrintFormat("first_order = %d",first_order);
      if(orders>1)
        {
         last_order=HistoryOrderGetTicket((int)orders-1);
         PrintFormat("last_order = %d",last_order);
         return last_order;
        }
      return first_order;
     }
//--- emir 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

HistorySelect(), HistoryOrdersTotal(), HistoryOrderSelect(), Emir özellikleri