#property description "Bu gösterge değer hesaplamaz. ArrayFree() fonksiyon çağrısını;"
#property description "bir dinamik, bir statik ve bir göserge tamponu olmak üzere, üç ayrı diziye uygulamayı dener."
#property description "Sonuçlar Experts (Uzmanlar) bülteninde gösterilir."
//--- gösterge ayarları
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//--- global değişkenler
double ExtDynamic[]; // dinamik dizi
double ExtStatic[100]; // statik dizi
bool ExtFlag=true; // bayrak
double ExtBuff[]; // gösterge tamponu
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- dizi için bellek tahsis et
ArrayResize(ExtDynamic,100);
//--- gösterge tamponlarının eşlenmesi
SetIndexBuffer(0,ExtBuff);
PlotIndexSetDouble(0,PLOT_EMPTY_VALUE,0);
//---
return(INIT_SUCCEEDED);
}
//+------------------------------------------------------------------+
//| Custom indicator iteration function |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
const int prev_calculated,
const int begin,
const double &price[])
{
//--- bir tekil analiz gerçekleştir
if(ExtFlag)
{
//--- belleği diziler için boşaltmayı dene
//--- 1. Dinamik dizi
Print("+============================+");
Print("1. Dinamik diziyi kontrol et:");
Print("Belleğin boşalmasından önce büyüklük = ",ArraySize(ExtDynamic));
Print("Bu bir dinamik dizi mi = ",ArrayIsDynamic(ExtDynamic) ? "Evet" : "Hayır");
//--- dizi belleğini serbest bırakmayı dene
ArrayFree(ExtDynamic);
Print("Belleğin boşalmasından sonra büyüklük = ",ArraySize(ExtDynamic));
//--- 2. Statik dizi
Print("2. Statik diziyi kontrol et:");
Print("Belleğin boşalmasından önce büyüklük = ",ArraySize(ExtStatic));
Print("Bu bir dinamik dizi mi = ",ArrayIsDynamic(ExtStatic) ? "Evet" : "Hayır");
//--- dizi belleğini serbest bırakmayı dene
ArrayFree(ExtStatic);
Print("Belleğin boşalmasından sonra büyüklük = ",ArraySize(ExtStatic));
//--- 3. Gösterge tamponu
Print("3. Gösterge tamponunu kontrol et:");
Print("Belleğin boşalmasından önce büyüklük = ",ArraySize(ExtBuff));
Print("Bu bir dinamik dizi mi = ",ArrayIsDynamic(ExtBuff) ? "Evet" : "Hayır");
//--- dizi belleğini serbest bırakmayı dene
ArrayFree(ExtBuff);
Print("Belleğin boşalmasından sonra büyüklük = ",ArraySize(ExtBuff));
//--- bayrak değerini değiştir
ExtFlag=false;
}
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
return(rates_total);
}
|