SymbolInfoDouble

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.

double  SymbolInfoDouble(
   string                   name,       // sembol
   ENUM_SYMBOL_INFO_DOUBLE  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  SymbolInfoDouble(
   string                   name,       // sembol
   ENUM_SYMBOL_INFO_DOUBLE  prop_id,    // özellik tanımlayıcı
   double&                  double_var  // burada özellik değerinin 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_DOUBLE sayımının değerlerinden biri olabilir.

double_var

[out] İstenen özelliği alması için double tipli değişken.

Dönüş değeri

double 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.

SymbolInfoMarginRate() fonksiyonu, emrin tipine ve yönüne bağlı olarak, alınan marjin miktarı ile ilgili veri sağlar.

Ö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);
  }