IndicatorParameters

Basierend auf das angegebenen Handle gibt Anzahl von Eingabeparametern des Indikators, sowie die Werte und Type der Parameter zurück.

int  IndicatorParameters(
   int               indicator_handle,     // Handle des Indikators
   ENUM_INDICATOR&   indicator_type,       // Variable, um den Typ des Indikators zu erhalten
   MqlParam&         parameters[]          // Array, um die Parameter zu erhalten
   );

Parameter

indicator_handle

[in] Handle auf den Indikator, für den Sie die Anzahl der Parameter, auf die er berechnet wurde, erhalten möchten.

indicator_type

[out]  Variable vom Typ ENUM_INDICATOR, in die der Typ des Indikators geschrieben wird.

parameters[]

[out]  Ein dynamisches Array für Werte vom Typ MqlParam, in das die Liste der Indikator-Parameter geschrieben wird. Die Funktion IndicatorParameters() gibt die Größe des Arrays zurück.

Rückgabewert

Anzahl der Eingabeparameter des Indikators mit dem angegebenen Handle, im Falle eines Fehlers gibt -1 zurück. Um Informationen über den Fehler zu erhalten, rufen Sie die Funktion GetLastError() an.

Beispiel:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- Die Anzahl der Fenster auf dem Chart (es gibt immer mindestens ein Hauptfenster)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- Für alle Fenster des Charts machen
   for(int w=0;w<windows;w++)
     {
      //--- Die Anzahl der Indikatoren in diesem Fenster/Unterfenster
      int total=ChartIndicatorsTotal(0,w);
      //--- Für alle Indikatoren im Fenster machen
      for(int i=0;i<total;i++)
        {
         //--- Kurzname des Indikators erhalten
         string name=ChartIndicatorName(0,w,i);
         //--- Handle des Indikators erhalten
         int handle=ChartIndicatorGet(0,w,name);
         //--- In Log schreiben
         PrintFormat("Window=%d,  indicator #%d,  handle=%d",w,i,handle);
         //---
         MqlParam parameters[];
         ENUM_INDICATOR indicator_type;
         int params=IndicatorParameters(handle,indicator_type,parameters);
         //--- Nachrichtenkopf
         string par_info="Short name "+name+", type "
                         +EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
         //--- 
         for(int p=0;p<params;p++)
           {
            par_info+=StringFormat("parameter %d: type=%s, long_value=%d, double_value=%G,string_value=%s\r\n",
                                   p,
                                   EnumToString((ENUM_DATATYPE)parameters[p].type),
                                   parameters[p].integer_value,
                                   parameters[p].double_value,
                                   parameters[p].string_value
                                   );
           }
         Print(par_info);
        }
      //--- Getan für alle Indikatoren im Fenster
     }
//---    
  }

Sehen Sie auch

ChartIndicatorGet()