ChartWindowFind

Göstergenin eklendiği alt pencerenin numarasına dönüş yapar. Fonksiyonun 2 çeşidi bulunmaktadır.

1. Fonksiyon, belirtilen çizelge içinde göstergenin kısa ismiyle (kısa isim alt pencerenin sol üst köşesinde gözükür) alt pencereyi arar ve başarı durumunda pencerenin numarasına dönüş yapar.

int  ChartWindowFind(
   long     chart_id,                  // çizelge tanımlayıcısı
   string   indicator_shortname        // kısa gösterge ismi, bakınız INDICATOR_SHORTNAME

2. Fonksiyon bir özel göstergeden çağrılmalıdır. Göstergenin çalıştığı alt pencerenin numarasına dönüş yapar.

int  ChartWindowFind();

Parametreler

chart_id

[in]  Çizelge tanımlayıcısı. 0 mevcut çizelgeyi ifade eder.

indicator_shortname

[in]  Göstergenin kısa ismi.

Dönüş değeri

Başarı durumunda, alt pencerenin numarası. Başarısızlık durumunda fonksiyon -1 değerine dönüş yapar.

Not

Eğer fonksiyonun ikinci çeşidi (parametresiz olan) bir scriptten veya, Uzman danışmandan çağrılırsa, fonksiyon -1 değerine dönüş yapar.

iCustom() ve IndicatorCreate() fonksiyonları tarafından gösterge oluşturulduğunda belirlenen dosya ismiyle, gösterge kısa ismini karıştırmayın. Eğer gösterge kısa ismi açık şekilde belirtilmezse, gösterge kaynak kodunu içeren dosyanın ismi, derleme sırasında kısa isim olarak belirlenir.

INDICATOR_SHORTNAME özelliğinde IndicatorSetString() fonksiyonu ile kaydedilen gösterge kısa ismini doğru şekillendirmek önemlidir. Kısa ismin, gösterge giriş parametrelerini içermesi önerilir, göstergenin çizelgeden kaldırılması için kullanılan ChartIndicatorDelete() fonksiyonu kısa isimle tanımlanır.

Örnek:

#property script_show_inputs
//--- giriş parametreleri
input string   shortname="MACD(12,26,9)";
//+--------------------------------------------------------------------+
//| Göstergenin bulunduğu çizelge penceresinin numarasına dönüş yapar  |
//+--------------------------------------------------------------------+
int GetIndicatorSubWindowNumber(long chartID=0,string short_name="")
  {
   int window=-1;
//--- 
   if((ENUM_PROGRAM_TYPE)MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR)
     {
      //--- fonksiyon göstergeden çağrıldı, isim gerekmiyor.
      window=ChartWindowFind();
     }
   else
     {
      //--- fonksiyon bir Uzman Danışmandan veya scriptten çağrılır
      window=ChartWindowFind(0,short_name);
      if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError());
     }
//---
   return(window);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int window=GetIndicatorSubWindowNumber(0,shortname);
   if(window!=-1)
      Print(+shortname+" göstergesi #"+(string)window)+" penceresindedir");
   else
      Print(shortname+" göstergesi şurada bulunamadı pencere = "+(string)window);
  }

Ayrıca Bakınız

ObjectCreate(), ObjectFind()