MetaTrader 5 herunterladen

ArrayIsDynamic

Prüft, ob das Array dynamisch ist.

bool  ArrayIsDynamic(
   const void&  array[]    // das geprüfte Array 
   );

Parameter

array[]

[in]  Das geprüfte Array.

Rückgabewert

Gibt true zurück, wenn das angegebene Array dynamisch ist, anderenfalls false.

Beispiel:

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

Sehen Sie auch

Zugang zu Zeitreihen und Indikatoren