HistoryDealGetString

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

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

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

Parametreler

ticket_number

[in]  İşlem fişi.

property_id

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

string_var

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

Dönüş değeri

string 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:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- işlem ve emir geçmişini talep et
   if(!HistorySelect(0TimeCurrent()))
     {
      Print("HistorySelect() failed. Error "GetLastError());
      return;
     }
 
//--- hesap geçmişindeki işlem listesinde bir döngü içerisinde
   int total=HistoryDealsTotal();
   for(int i=0i<totali++)
     {
      //--- bir sonraki işlemin fişini al (işlem, özelliklerini almak için otomatik olarak seçilir)
      ulong ticket=HistoryDealGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- işlemin türünü ve yönünü al ve seçilen işlemin reel özelliklerinin listesi için başlığı görüntüle
      string type=DealTypeDescription((ENUM_DEAL_TYPE)HistoryDealGetInteger(ticketDEAL_TYPE));
      string entry=DealEntryDescription((ENUM_DEAL_ENTRY)HistoryDealGetInteger(ticketDEAL_ENTRY));
      PrintFormat("String properties of an deal %s entry %s #%I64u:"typeentryticket);
      
      //--- seçilen işlemin tüm reel özelliklerini başlık altında yazdır
      HistoryDealPropertiesStringPrint(ticket13);
     }
   /*
   sonuç:
   String properties of an deal Buy entry In #2785021084:
   Symbol:      EURUSD
   Comment:     Test PositionGetString
   Extarnal ID:
   String properties of an deal Buy entry Out #2497993663:
   Symbol:      EURUSD
   Comment:     [tp 1.08639]
   Extarnal ID
   */
  }
//+------------------------------------------------------------------+
//| Seçilen işlemin dizge özelliklerini günlükte görüntüle           |
//+------------------------------------------------------------------+
void HistoryDealPropertiesStringPrint(const ulong ticketconst uint header_width=0)
  {
   uint   w=0;
   string header="";
   string value ="";
   
//--- başlık metnini ve başlık alanının genişliğini tanımla
//--- başlık genişliği fonksiyona sıfıra eşit olarak aktarılırsa, genişlik başlık satırının boyutu + 1 olacaktır
   header="Symbol:";
   w=(header_width==0 ? header.Length()+1 : header_width);
//--- işlem sembolünü al ve belirtilen başlık genişliğiyle günlükte görüntüle
   if(!HistoryDealGetString(ticketDEAL_SYMBOLvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- işlem yorumunu günlükte görüntüle
   header="Comment:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryDealGetString(ticketDEAL_COMMENTvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- harici bir alım-satım sistemindeki işlem kimliğini görüntüle
   header="Extarnal ID:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!HistoryDealGetString(ticketDEAL_EXTERNAL_IDvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
  }
//+------------------------------------------------------------------+
//| İşlem türü açıklamasını geri döndür                              |
//+------------------------------------------------------------------+
string DealTypeDescription(const ENUM_DEAL_TYPE type)
  {
   switch(type)
     {
      case DEAL_TYPE_BUY                     :  return("Buy");
      case DEAL_TYPE_SELL                    :  return("Sell");
      case DEAL_TYPE_BALANCE                 :  return("Balance");
      case DEAL_TYPE_CREDIT                  :  return("Credit");
      case DEAL_TYPE_CHARGE                  :  return("Additional charge");
      case DEAL_TYPE_CORRECTION              :  return("Correction");
      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_MONTHLY:  return("Monthly agent commission");
      case DEAL_TYPE_INTEREST                :  return("Interest rate");
      case DEAL_TYPE_BUY_CANCELED            :  return("Canceled buy deal");
      case DEAL_TYPE_SELL_CANCELED           :  return("Canceled sell deal");
      case DEAL_DIVIDEND                     :  return("Dividend operations");
      case DEAL_DIVIDEND_FRANKED             :  return("Franked (non-taxable) dividend operations");
      case DEAL_TAX                          :  return("Tax charges");
      default                                :  return("Unknown deal type: "+(string)type);
     }
  }
//+------------------------------------------------------------------+
//| Pozisyon değişim yöntemini geri döndür                           |
//+------------------------------------------------------------------+
string DealEntryDescription(const ENUM_DEAL_ENTRY entry)
  {
   switch(entry)
     {
      case DEAL_ENTRY_IN      :  return("In");
      case DEAL_ENTRY_OUT     :  return("Out");
      case DEAL_ENTRY_INOUT   :  return("Reverce");
      case DEAL_ENTRY_OUT_BY  :  return("Out by");
      case DEAL_ENTRY_STATE   :  return("Status record");
      default                 :  return("Unknown deal entry: "+(string)entry);
     }
  }

Ayrıca Bakınız

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

OSZAR »