#property description "Dieser Indikator berechnet die Werte nicht, und einmal versucht sie zu verwenden"
#property description "Der Anruf der Funktion ArrayFree() zu drei Arrays: dynamisch, statisch und"
#property description "dem Indikator Puffer. Die Ergebnisse werden in die Zeitschrift der Experten herausgeführt"
//--- der Indikator Einstellungen
#property indicator_chart_window
#property indicator_buffers 1
#property indicator_plots 1
//--- globale Variablen
double ExtDynamic[]; // das dynamische Array
double ExtStatic[100]; // das statische Array
bool ExtFlag=true; // die Flagge
double ExtBuff[]; // der Indikator Puffer
//+------------------------------------------------------------------+
//| Custom indicator initialization function |
//+------------------------------------------------------------------+
int OnInit()
{
//--- trennen Sie den Speicher für den Array ab
ArrayResize(ExtDynamic,100);
//--- Bindung von Array zum Indikator-Puffer
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[])
{
//--- führen Sie die Analyse einmal durch
if(ExtFlag)
{
//--- versuchen Sie den Speicher für die Arrays zu befreien
//--- 1. Das dynamische Array
Print("+============================+");
Print("1. Überprüfung des dynamischen Arrays:");
Print("Die Größe bis zur Befreiung des Speichers = ",ArraySize(ExtDynamic));
Print("Es ist das dynamische Array = ",ArrayIsDynamic(ExtDynamic) ? "Ja" : "Nein");
//--- versuchen Sie den Speicher des Arrays zu befreien
ArrayFree(ExtDynamic);
Print("Die Größe nach der Befreiung des Speichers = ",ArraySize(ExtDynamic));
//--- 2. Das statistisches Array
Print("2. Überprüfung des statischen Arrays:");
Print("Die Größe bis zur Befreiung des Speichers = ",ArraySize(ExtStatic));
Print("Es ist das dynamische Array = ",ArrayIsDynamic(ExtStatic) ? "Ja" : "Nein");
//--- versuchen Sie den Speicher des Arrays zu befreien
ArrayFree(ExtStatic);
Print("Die Größe nach der Befreiung des Speichers = ",ArraySize(ExtStatic));
//--- 3. Indikator Puffer
Print("3. Überprüfung des Indikator Puffers:");
Print("Die Größe bis zur Befreiung des Speichers = ",ArraySize(ExtBuff));
Print("Es ist das dynamische Array = ",ArrayIsDynamic(ExtBuff) ? "Ja" : "Nein");
//--- versuchen Sie den Speicher des Arrays zu befreien
ArrayFree(ExtBuff);
Print("Die Größe nach der Befreiung des Speichers = ",ArraySize(ExtBuff));
//--- ändern Sie den Wert der Flagge
ExtFlag=false;
}
//--- den Wert prev_calculated für den nächsten Anruf zurückgeben
return(rates_total);
}
|