PositionGetString

PositionGetSymbol veya PositionSelect kullanılarak önceden seçilmiş olan açık pozisyonun bir özelliğine dönüş yapar. İstenen pozisyon özelliği string tipinde olmalıdır. Fonksiyonun iki türü mevcuttur.

1. Hızlı bir şekilde özellik değerine dönüş yapar.

string  PositionGetString(
   ENUM_POSITION_PROPERTY_STRING  property_id      // Özellik tanımlayıcısı
   );

2. Fonksiyonun başarısına bağlı olarak 'true' veya 'false' değerlerinden birine dönüş yapar. Başarı durumunda özellik değeri, referansla geçirilen son parametreye girilir.

bool  PositionGetString(
   ENUM_POSITION_PROPERTY_STRING  property_id,     // özellik tanımlayıcı
   string&                        string_var       // özellik değerini burada kabul ediyoruz
   );

Parametreler

property_id

[in]  Pozisyon özelliğinin tanımlayıcısı. Bu değer ENUM_POSITION_PROPERTY_STRING sayımının değerlerinden biri olabilir.

string_var

[out]  İstenen özellik değerinin girileceği string tipli değişken.

Dönüş Değeri

string tipli değişken. Fonuksiyonun başarısız olması durumunda boş bir dizgiye dönüş yapılır.

Not

Netleştirme (netting) sisteminde (ACCOUNT_MARGIN_MODE_RETAIL_NETTING ve ACCOUNT_MARGIN_MODE_EXCHANGE) bir sembol üzerinde sadece bir pozisyon bulunabilir. Bu pozisyon bir veya daha fazla işlemin sonucu açılmış olabilir. Müşteri terminalinde Araçkutusunun "İşlem" sekmesi içinde birlikte gösterilen mevcut bekleyen emirler ve pozisyonlar birbirleriyle karıştırılmamalıdır.

Çoklu pozisyonlara izin verilemsi durumunda (ACCOUNT_MARGIN_MODE_RETAIL_HEDGING) bir sembol üzerinde birden fazla pozisyon açılabilir.

Güncel verinin alınabilmesi için PositionSelect() çağrısının değişikliklerden sonra yapıldığından emin olmanız gerekir.

Örnek:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- hesaptaki tüm pozisyonlara göre bir döngü içerisinde
   int total=PositionsTotal();
   for(int i=0i<totali++)
     {
      //--- özelliklerine erişmek için otomatik olarak seçerek bir sonraki pozisyonun fişini al
      ulong ticket=PositionGetTicket(i);
      if(ticket==0)
         continue;
      
      //--- pozisyonun türünü al ve seçilen pozisyonun dizge özelliklerinin listesi için başlığı görüntüle
      string type=(PositionGetInteger(POSITION_TYPE)==POSITION_TYPE ? "Buy" : "Sell");
      PrintFormat("String properties of an open position %s #%I64u:"typeticket);
      
      //--- seçilen pozisyonun tüm dizge özelliklerini başlık altında yazdır
      PositionPropertiesStringPrint(15);
     }
   /*
   sonuç:
   String properties of an open position Buy #2810798881:
   Symbol:        EURUSD
   Comment:       Test PositionGetString
   External ID:   
   */
  }
//+------------------------------------------------------------------+
//| Seçilen pozisyonun dizge özelliklerini günlükte görüntüle |
//+------------------------------------------------------------------+
void PositionPropertiesStringPrint(const 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);
//--- pozisyon sembolünü al ve belirtilen başlık genişliğiyle günlükte görüntüle
   if(!PositionGetString(POSITION_SYMBOLvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- pozisyon yorumunu günlükte görüntüle
   header="Comment:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!PositionGetString(POSITION_COMMENTvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
   
//--- harici bir sistemdeki pozisyon kimliğini günlükte görüntüle
   header="External ID:";
   w=(header_width==0 ? header.Length()+1 : header_width);
   if(!PositionGetString(POSITION_EXTERNAL_IDvalue))
      return;
   PrintFormat("%-*s%-s"wheadervalue);
  }

Ayrıca bakınız

PositionGetSymbol(), PositionSelect(), Pozisyon Özellikleri