ChartIndicatorGet

Belirtilmiş çizelgede, belirtilmiş isimli göstergenin tanıtıcı değerine dönüş yapar.

int  ChartIndicatorGet(
   long           chart_id,              // Çizelge tanımlayıcı
   int            sub_window             // Alt pencerenin numarası
   const string   indicator_shortname    // Gösterge kısa ismi
   );

Parametreler

chart_id

[in]  Çizelge tanımlayıcısı. 0, mevcut çizelge anlamına gelir.

sub_window

[in]  Çizelge alt penceresinin numarası. 0, ana çizelge penceresi demektir.

const indicator_shortname

[in] INDICATOR_SHORTNAME özelliği ile IndicatorSetString() fonksiyonu kullanılarak ayarlanan gösterge kısa ismi. Gösterge kısa ismini almak için ChartIndicatorName() fonksiyonunu kullanın.

Dönüş değeri

Başarı durumunda gösterge tanıtıcı değerine, aksi durumda INVALID_HANDLE değerine dönüş yapar. Hata hakkında bilgi almak için, GetLastError() fonksiyonunu çağırın.

Not

ChartIndicatorGet() fonksiyonu kullanılarak elde edilen gösterge tanıtıcı değeri, dahili gösterge kullanım sayacını artırır. Terminal çalışma zamanı sistemi, sayacı sıfırdan büyük olan tüm göstergeleri yüklü tutar. Bu nedenle, artık gerekli olmayan gösterge tanıtıcı değeri, aşağıdaki örnekte gösterildiği gibi, aynı programdaki IndicatorRelease() kullanılarak hemen ve açıkça serbest bırakılmalıdır. Aksi takdirde, "terk edilmiş" tanıtıcı değerini bulmak ve başka bir programdan doğru şekilde serbest bırakmak imkansız olacaktır.

Yeni bir gösterge oluştururken, INDICATOR_SHORTNAME özelliği ile IndicatorSetString() fonksiyonu kullanılarak oluşturulan kısa ismini şekillendirirken dikkatli olun. Göstergenin, ChartIndicatorGet() fonksiyonunda kısa isim ile tanımlanması nedeniyle; kısa ismin gösterge giriş parametrelerinin değerini içermesi önerilir.

Bir göstergeyi tanımlamanın bir diğer yolu – IndicatorParameters() fonksiyonunu kullanarak, verilmiş tanıtıcı değer için gösterge parametrelerinin bir listesini alıp, elde edilen değerleri analiz etmektir.

Örnek:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   //--- Çizelgedeki pencerelerin sayısı (en az bir adet; ana pencere her zaman mevcut)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   //--- Tüm pencereleri kontrol et
   for(int w=0;w<windows;w++)
     {
      //--- bu penceredeki/alt penceredeki göstergelerin sayısı
      int total=ChartIndicatorsTotal(0,w);
      //--- penceredeki tüm göstergeleri araştır
      for(int i=0;i<total;i++)
        {
         //--- bir göstergenin kısa ismini al
         string name=ChartIndicatorName(0,w,i);
         //--- göstergenin tanıtıcı değerini al
         int handle=ChartIndicatorGet(0,w,name);
         //--- Günlüğe ekle
         PrintFormat("Window=%d,  index=%d,  name=%s,  handle=%d",w,i,name,handle);
         //--- You should obligatorily release the indicator handle when it is no longer needed
         IndicatorRelease(handle);
        }
     }
  }

Ayrıca Bakınız

ChartIndicatorAdd(), ChartIndicatorName(), ChartIndicatorsTotal(), IndicatorParameters()