IndicatorRelease

Gösterge tanıtıcı değerini kaldırır ve başka biri tarafından kullanılmıyorsa hesaplama bloğunu serbest bırakır.

bool  IndicatorRelease(
   int       indicator_handle     // gösterge tanıtıcı değeri
   );

Dönüş değeri

Başarı durumunda 'true' değerine, aksi durumda 'false' değerine dönüş yapar.

Not

Fonksiyon, göstergenin artık ihtiyaç olmayan tanıtıcı değerini kaldırır. Böylece bellekten tasarruf edilir. İşleyici hemen, hesaplama bloğu ise bir süre sonra kaldırılır (artık çağrılmıyorsa).

Strateji sınayıcı ile çalışırken, IndicatorRelease() fonksiyonu çalıştırılmaz.

Örnek:

//+------------------------------------------------------------------+
//|                                        Test_IndicatorRelease.mq5 |
//|                         Copyright 2000-2024, MetaQuotes Ltd. |
//|                                              https://www.mql5.com |
//+------------------------------------------------------------------+
#property copyright "2010, MetaQuotes Software Corp."
#property link      "https://www.mql5.com"
#property version   "1.00"
//--- giriş parametreleri
input int                MA_Period=15;
input int                MA_shift=0;
input ENUM_MA_METHOD     MA_smooth=MODE_SMA;
input ENUM_APPLIED_PRICE price=PRICE_CLOSE;
//--- gösterge tanıtıcı değerini saklayacağız
int MA_handle=INVALID_HANDLE;
//+------------------------------------------------------------------+
//| Expert initialization function                                   |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- gösterge tanıtıcı değerini oluştur
   MA_handle=iMA(Symbol(),0,MA_Period,MA_shift,MA_smooth,PRICE_CLOSE);
//--- global değişkenleri sil
   if(GlobalVariableCheck("MA_value"))
      GlobalVariableDel("MA_value");
//---
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Expert tick function                                             |
//+------------------------------------------------------------------+
void OnTick()
  {
//--- global değişkenin değeri mevcut değilse
   if(!GlobalVariableCheck("MA_value"))
     {
      //--- son iki çubuktaki gösterge değerlerini al
      if(MA_handle!=INVALID_HANDLE)
        {
         //--- gösterge değerleri için bir dinamik dizi
         double values[];
         if(CopyBuffer(MA_handle,0,0,2,values)==2 && values[0]!=EMPTY_VALUE)
           {
            //--- son çubuk için global değişkenin değerini hatırla
            if(GlobalVariableSet("MA_value",values[0]))
              {
               //--- gösterge tanıtıcı değerini serbest bırak
               if(!IndicatorRelease(MA_handle))
                  Print("IndicatorRelease() başarısız oldu. Hata",GetLastError());
               else MA_handle=INVALID_HANDLE;
              }
            else
               Print("GlobalVariableSet başarısız oldu. Hata",GetLastError());
           }
        }
     }
//---
  }