SymbolInfoString

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.

string  SymbolInfoString(
   string                   name,        // Sembol
   ENUM_SYMBOL_INFO_STRING  prop_id      // Özellik tanımlayıcı
   );

2. Fonksiyonun başarı durumuna göre, 'true' veya 'false' değerine dönüş yapar. Başarılı olması durumunda değer, son parametrede referans ile geçirilen değişkene atanır.

bool  SymbolInfoString(
   string                   name,        // Sembol
   ENUM_SYMBOL_INFO_STRING  prop_id,     // Özellik tanımlayıcı
   string&                  string_var   // Özelik değerini burada farz ediyoruz
   );

Parametreler

name

[in] Sembol ismi.

prop_id

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

string_var

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

Dönüş değeri

string 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:

#define SYMBOL_NAME "USDJPY"
 
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- SYMBOL_NAME sembolü için dizge verileri al
   string currency_base   = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_BASE);    // Sembolün baz para birimi
   string currency_profit = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_PROFIT);  // Kâr para birimi
   string currency_margin = SymbolInfoString(SYMBOL_NAMESYMBOL_CURRENCY_MARGIN);  // Teminat para birimi
   string symbol_descript = SymbolInfoString(SYMBOL_NAMESYMBOL_DESCRIPTION);      // Sembolün dizge açıklaması
 
//--- elde edilen verilerle bir mesaj metni oluştur
   string text=StringFormat("Symbol %s:\n"+
                            "- Currency Base: %s\n"+
                            "- Currensy Profit: %s\n"+
                            "- Currency Margin: %s\n"+
                            "- Symbol Description: %s",
                            SYMBOL_NAMEcurrency_base,
                            currency_profitcurrency_margin,
                            symbol_descript);
 
//--- elde edilen verileri günlüğe gönder
   Print(text);
   /*
   Symbol USDJPY:
   - Currency BaseUSD
   - Currensy ProfitJPY
   - Currency MarginUSD
   - Symbol DescriptionUS Dollar vs Yen
   */
  }