PositionGetInteger

PositionGetSymbol veya PositionSelect kullanılarak önceden seçilmiş olan açık pozisyonun bir özelliğine dönüş yapar. Pozisyon özelliği datetime veya int tiplerinde olmalıdır. Fonksiyonun iki türü mevcuttur.

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

long  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id      // özellik tanımlayıcı
   );

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  PositionGetInteger(
   ENUM_POSITION_PROPERTY_INTEGER  property_id,     // özellik tanımlayıcı
   long&                           long_var         // özellik değerini burada kabul ediyoruz
   );

Parametreler

property_id

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

long_var

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

Dönüş Değeri

long tipli değer. Başarısız sonuç duruunda, 0 dönüşü yapar.

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:

//+------------------------------------------------------------------+
//| Alım-satım fonksiyonu                                            |
//+------------------------------------------------------------------+
void OnTrade()
  {
//--- pozisyonun varlığını kontrol et ve en son değiştirlme zamanını göster
   if(PositionSelect(_Symbol))
     {     
//--- sonraki işlemler için pozisyon tanımlayıcısını al
      ulong position_ID=PositionGetInteger(POSITION_IDENTIFIER);
      Print(_Symbol," pozisyon #",position_ID);
//--- pozisyonun oluşturulma zamanını 01.01.1970 tarihinden itibaren milisaniyeler cinsinden al
      long create_time_msc=PositionGetInteger(POSITION_TIME_MSC);
      PrintFormat("Pozisyon #%d  POSITION_TIME_MSC = %i64 milisaniye => %s",position_ID,
                  create_time_msc,TimeToString(create_time_msc/1000));
//--- pozisyonun son değiştirilme zamanını 01.01.1970 tarihinden itibaren saniyeler cinsinden al
      long update_time_sec=PositionGetInteger(POSITION_TIME_UPDATE);
      PrintFormat("Pozisyon #%d  POSITION_TIME_UPDATE = %i64 saniye => %s",
                  position_ID,update_time_sec,TimeToString(update_time_sec));
//--- pozisyonun son değiştirilme zamanını 01.01.1970 tarihinden itibaren milisaniyeler cinsinden al
      long update_time_msc=PositionGetInteger(POSITION_TIME_UPDATE_MSC);
      PrintFormat("Pozisyon #%d  POSITION_TIME_UPDATE_MSC = %i64 milisaniye => %s",
                  position_ID,update_time_msc,TimeToString(update_time_msc/1000));
     }
//---
  }

Ayrıca bakınız

PositionGetSymbol(), PositionSelect(), Pozisyon Özellikleri