HistoryDealGetTicket

Sonraki eylemler için bir işlem seçer ve işlemin geçmiş üzerindeki fişine dönüş yapar. HistoryDealGetTicket() çağrısını yapmadan önce, HistorySelect() veya HistorySelectByPosition() fonksiyonunu kullanarak emir ve işlem geçmişinin alınması gerekir.

ulong  HistoryDealGetTicket(
   int  index      // işlem fişi
   );

Parametreler

index

[in]  İşlemin işlemler listesindeki numarası

Dönüş değeri

ulong tipli değer. Fonksiyon, başarısız olması durumunda 0 dönüşü yapar.

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:

void OnStart()
  {
   ulong deal_ticket;            // işlem fişi 
   ulong order_ticket;           // işlemin gerçekleştiği emrin fişi
   datetime transaction_time;    // işlemin gerçekleşme zamanı
   long deal_type ;              // alım-satım işleminin tipi
   long position_ID;             // pozisyon tanımlayıcısı
   string deal_description;      // işlem tanımlayıcısı
   double volume;                // işlem hacmi
   string symbol;                // işlemin yapıldığı sembol
//--- işlem geçmişinin isteneceği aralığın başlangıç ve bitiş tarihlerini ayarla
   datetime from_date=0;         // en baştan
   datetime to_date=TimeCurrent();// şu ana kadar
//--- belirtilen aralıktaki işlem geçmişini iste
   HistorySelect(from_date,to_date);
//--- işlem listesindeki toplam sayı
   int deals=HistoryDealsTotal();
//--- şimdi her bir alım-satımı işle
   for(int i=0;i<deals;i++)
     {
      deal_ticket=               HistoryDealGetTicket(i);
      volume=                    HistoryDealGetDouble(deal_ticket,DEAL_VOLUME);
      transaction_time=(datetime)HistoryDealGetInteger(deal_ticket,DEAL_TIME);
      order_ticket=              HistoryDealGetInteger(deal_ticket,DEAL_ORDER);
      deal_type=                 HistoryDealGetInteger(deal_ticket,DEAL_TYPE);
      symbol=                    HistoryDealGetString(deal_ticket,DEAL_SYMBOL);
      position_ID=               HistoryDealGetInteger(deal_ticket,DEAL_POSITION_ID);
      deal_description=          GetDealDescription(deal_type,volume,symbol,order_ticket,position_ID);
      //--- işlem numarası için biçimlendirmeyi ayarla
      string print_index=StringFormat("% 3d",i);
      //--- işlem bilgisini göster
      Print(print_index+": deal #",deal_ticket," işlem zamanı ve açıklaması: ",transaction_time,deal_description);
     }
  }
//+------------------------------------------------------------------+
//| Işlemin açıklamasına dizgi şeklinde dönüş yapar                  |
//+------------------------------------------------------------------+
string GetDealDescription(long deal_type,double volume,string symbol,long ticket,long pos_ID)
  {
   string descr;
//---
   switch(deal_type)
     {
      case DEAL_TYPE_BALANCE:                  return ("balance");
      case DEAL_TYPE_CREDIT:                   return ("credit");
      case DEAL_TYPE_CHARGE:                   return ("charge");
      case DEAL_TYPE_CORRECTION:               return ("correction");
      case DEAL_TYPE_BUY:                      descr="buy"break;
      case DEAL_TYPE_SELL:                     descr="sell"break;
      case DEAL_TYPE_BONUS:                    return ("bonus");
      case DEAL_TYPE_COMMISSION:               return ("additional commission");
      case DEAL_TYPE_COMMISSION_DAILY:         return ("daily commission");
      case DEAL_TYPE_COMMISSION_MONTHLY:       return ("monthly commission");
      case DEAL_TYPE_COMMISSION_AGENT_DAILY:   return ("daily agent commission");
      case DEAL_TYPE_COMMISSION_AGENT_MONTHLYreturn ("monthly agent commission");
      case DEAL_TYPE_INTEREST:                 return ("interest rate");
      case DEAL_TYPE_BUY_CANCELED:             descr="cancelled buy deal"break;
      case DEAL_TYPE_SELL_CANCELED:            descr="cancelled sell deal"break;
     }
   descr=StringFormat("%s %G %s (emir #%d, pozisyon tanıtıcı %d)",
                      descr,  // mevcut açıklama
                      volume, // işlem hacmi
                      symbol, // işlem sembolü
                      ticket, // işlem emrinin fişi
                      pos_ID  // işlemin dahil olduğu pozisyonun tanımlayıcısı
                      );
   return(descr);
//---
  }

 

Ayrıca Bakınız

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