SymbolInfoInteger

Belirtilen sembolün karşılık gelen özelliğine dönüş yapar. Fonksiyonun 2 çeşidi bulunmaktadır.

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

long  SymbolInfoInteger(
   string                    name,      // sembol
   ENUM_SYMBOL_INFO_INTEGER  prop_id    // özellik tanımlayıcısı
 
   );

2. Fonksiyonun başarı durumuna göre 'true' veya 'false' değerine dönüş yapar. Başarı durumunda özelliğin değeri, son parametreye referansla geçirilen alıcı değişkene yerleştirilir.

bool  SymbolInfoInteger(
   string                    name,      // sembol
   ENUM_SYMBOL_INFO_INTEGER  prop_id,   // özelliğin tanımlayıcısı
   long&                     long_var   // özelik değerinin burada olduğunu farz ediyoruz
   );

Parametreler

name

[in] Sembol ismi.

prop_id

[in] Bir sembol özelliğinin tanımlayıcısı. Değer, ENUM_SYMBOL_INFO_INTEGER sayımının değerlerinden biri olabilir.

long_var

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

Dönüş değeri

long tipli değer. Çalışma hatası durumunda, hata bilgisi GetLastError() fonksiyonu ile elde edilebilir:

  • 5040 – sembol ismi belirtmek için kullanılan string parametre hatalı,
  • 4301 – bilinmeyen sembol (finansal enstrüman),
  • 4302 – sembol "Piyasa Gözleminde" seçili değil (mevcut sembollerin listesinde bulunamadı),
  • 4303 – sembol özelliği için geçersiz tanımlayıcı.

Not

Fonksiyon, son tik hakkında bilgi almak için kullanılacaksa SymbolInfoTick() fonksiyonunun kullanılması tavsiye edilir. Terminalin alım-satım hesabına bağlanmasından beri geçen sürede tek bir fiyat teklifi bile gelmemiş olabilir. Bu durumda, istenen değer tanımsız olacaktır.

Çoğu durumda, SymbolInfoTick() fonksiyonunun kullanımı, Alış fiyatı, Satış fiyatı, Son fiyat, hacim ve son tik zamanı gibi bilgilerin elde edilmesi için yeterlidir.

Örnek:

void OnTick()
  {
//--- makas değerini sembol özelliklerinden alalım
   bool spreadfloat=SymbolInfoInteger(Symbol(),SYMBOL_SPREAD_FLOAT);
   string comm=StringFormat("Spread %s = %I64d puan\r\n",
                            spreadfloat?"değişken":"sabit",
                            SymbolInfoInteger(Symbol(),SYMBOL_SPREAD));
//--- şimdi, makas değerini kendimiz hesaplayalım
   double ask=SymbolInfoDouble(Symbol(),SYMBOL_ASK);
   double bid=SymbolInfoDouble(Symbol(),SYMBOL_BID);
   double spread=ask-bid;
   int spread_points=(int)MathRound(spread/SymbolInfoDouble(Symbol(),SYMBOL_POINT));
   comm=comm+"Hesaplanan makas = "+(string)spread_points+" puan";
   Comment(comm);
  }