#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); } |