PositionSelect

Üzerinde çalışılmak istenen bir açık pozisyonu seçer. İşlem başarıyla tamamlanmışsa 'true', Aksi durumda false dönüşü yapar. Hata hakkında detaylı bilgi almak için GetLastError() çağrısı yapın.

bool  PositionSelect(
   string  symbol      // Sembol ismi
   );

Parametreler

symbol

[in]  finansal Ensrümanın ismi.

Dönüş Değeri

bool tipli değişken.

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. Bu durumda PositionSelect fonksiyonu en düşük fiş numarasına sahip olan pozisyonu kapatır.

PositionSelect() bir pozisyonla ilgili verileri program ortamına kopyalar. PositionGetDouble(), PositionGetInteger() ve PositionGetString() çağrıları, daha önceden kopyalanmış bu verilere dönüş yapar. Yani, pozisyonun kendisi artık mevcut olmasa da (veya yön, hacim vb. değiştirilmiş olsa da), ilgili veri hala elde edilebilir. Bu yüzden, 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:

#define   SYMBOL_NAME   "EURUSD"
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- belirtilen sembol üzerindeki bir pozisyonu seç
   if(!PositionSelect(SYMBOL_NAME))
     {
      PrintFormat("PositionSelect(%s) failed. Error %d",SYMBOL_NAMEGetLastError());
      return;
     }
 
//--- bir pozisyon seçilirse, PositionGetDouble(), PositionGetInteger() ve PositionGetString() kullanarak verilerini elde edebiliriz
//--- seçilen pozisyonun fişini al
   ResetLastError();
   long ticket=PositionGetInteger(POSITION_TICKET);
   if(ticket==0)
     {
      PrintFormat("Failed to get %s position ticket. Error %d"SYMBOL_NAMEGetLastError());
      return;
     }
     
//--- fiş başarılı bir şekilde alınırsa, seçilen pozisyonun sembolünü ve fişini günlüğe yazdır
   PrintFormat("The position that is selected on the %s symbol has ticket %I64d"SYMBOL_NAMEticket);
   /*
   sonuç:
   The position that is selected on the EURUSD symbol has ticket 2810846623
   */
  }

Ayrıca bakınız

PositionGetSymbol(), PositionsTotal(), Pozisyon Özellikleri