ChartIndicatorDelete

Belirtilen çizelgeden belirtilen bir göstergeyi kaldırır.

bool  ChartIndicatorDelete(
   long           chart_id,              // çizelge tanımlayıcı
   int            sub_window             // alt pencere numarası
   const string   indicator_shortname    // göstergenin kısa ismi
   );

Parametreler

chart_id

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

sub_window

[in]  Çizelge alt penceresinin indisi. 0 ana çizelge penceresini tanımlar.

const indicator_shortname

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

Dönüş değeri

Göstergenin silinmesinin başarılı olması durumunda 'true' değerine, aksi durumda 'false' değerine dönüş yapar. Hata detayları için GetLastError() fonksiyonunu kullanın.

Not

Eğer çizelge penceresinde aynı isimli birden fazla gösterge varsa, ilki silinecektir.

Eğer başka göstergeler bu silinen göstergenin verilerine dayanıyorsa, onlar da silinecektir.

Gösterge oluşturulurken iCustom() ve IndicatorCreate() fonksiyonları aracılığıyla belirlermiş dosya ismi ile gösterge kısa ismini birbirine karıştırmayın. Gösterge kısa ismi açık yolla belirtilmemişse, derleme sırasında kaynak kodu içeren dosyanın ismi, kısa isim olarak belirlenecektir.

Bir göstergenin çizelge üzerinden kaldırılması, hesaplama kısmının da terminalde silineceği anlamına gelmez. Göstergenin tanıtıcı değerini serbest bırakmak için IndicatorRelease() fonksiyonunu kullanın.

Gösterge kısa ismi, düzgün şekilde girilmelidir. Bu, INDICATOR_SHORTNAME özelliğine, IndicatorSetString() fonksiyonu kullanılarak yazılır. Kısa isimde, gösterge parametre değerlerinin içerilmesi önerilir; çünkü çizelge penceresinden göstergeyi silerken kullanılan ChartIndicatorDelete() fonksiyonu kısa isimle tanımlanır.

Başlatma başarısız olduktan sonra, göstergenin silinmesi örneği:

//+------------------------------------------------------------------+
//|                                    Demo_ChartIndicatorDelete.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "Copyright 2000-2024, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
#property indicator_separate_window
#property indicator_buffers 1
#property indicator_plots   1
//--- plot Histogram
#property indicator_label1  "Histogram"
#property indicator_type1   DRAW_HISTOGRAM
#property indicator_color1  clrRed
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- giriş parametreleri
input int      first_param=1;
input int      second_param=2;
input int      third_param=3;
input bool     wrong_init=true;
//--- gösterge tamponları
double         HistogramBuffer[];
string         shortname;
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
   int res=INIT_SUCCEEDED;
//--- HistogramBuffer dizisini gösterge dizisine bağla
   SetIndexBuffer(0,HistogramBuffer,INDICATOR_DATA);
//--- Giriş parametreleri temelinde bir kısa isim belirle
   shortname=StringFormat("Demo_ChartIndicatorDelete(%d,%d,%d)",
                          first_param,second_param,third_param);
   IndicatorSetString(INDICATOR_SHORTNAME,shortname);
//--- Eğer gösterge zorla tamamlanmaya ayarlanmışsa, sıfır olmayan bir değere dönüş yap
   if(wrong_init) res=INIT_FAILED;
   return(res);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
//--- Döngü içinde çalışmak için başlangıç konumu
   int start=prev_calculated-1;
   if(start<0) start=0;
//--- Gösterge tamponunu değerlerle doldur
   for(int i=start;i<rates_total;i++)
     {
      HistogramBuffer[i]=close[i];
     }
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| A handler of the Deinit event                                    |
//+------------------------------------------------------------------+
void OnDeinit(const int reason)
  {
   PrintFormat("%s: Sonlandırma sebebi kodu=%d",__FUNCTION__,reason);
   if(reason==REASON_INITFAILED)
     {
      PrintFormat("%s kısa isimli bir gösterge (dosya %s), kendisini çizelgeden sildi",shortname,__FILE__);
      int window=ChartWindowFind();
      bool res=ChartIndicatorDelete(0,window,shortname);
      //--- ChartIndicatorDelete() çağrısının sonucunu analiz et
      if(!res)
        {
         PrintFormat("%s göstegesinin #%d penceresinden silinmesi başarısız. Hata kodu %d",
                     shortname,window,GetLastError());
        }
     }
  }

Ayrıca Bakınız

ChartIndicatorAdd(), ChartIndicatorName(), ChartIndicatorsTotal(), iCustom(), IndicatorCreate(), IndicatorSetString()