IndicatorParameters

Basato sull' handle specificato, restituisce il numero di parametri di input dell'indicatore, nonché i valori ed i tipi di parametri.

int  IndicatorParameters(
   int               indicator_handle,     // handle indicatore
   ENUM_INDICATOR&   indicator_type,       // la variable per la ricezione del tipo di indicatore
   MqlParam&         parameters[]          // l' array per la ricezione dei parametri
   );

Parametri

indicator_handle

[in] L' handle dell'indicatore, per cui è necessario conoscere il numero di parametri su cui è calcolato.

indicator_type

[out]  A variable if the ENUM_INDICATOR tipo, con il quale l'indicatore verrà scritto.

parameters[]

[out] Un array dinamico per ricevere valori di tipo MqlParam, in cui verrà scritto l'elenco dei parametri indicatori. La grandezza dell'array viene restituita dalle funzione IndicatorParameters().

Valore restituito

Il numero di parametri di input dell'indicatore con l'handle specificato. In caso di un errore restituisce -1. Per ulteriori informazioni sull'errore chiamare la funzione GetLastError().

Esempio:

//+--------------------------------------------------------------------------------+
//| Funzione di avvio del programma Script                                         |
//+--------------------------------------------------------------------------------+
voidOnStart()
  {
 
//--- Il numero di finestre sul grafico (almeno una finestra principale è sempre presente)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- Va attraverso le finestre grafico
   for(int w=0;w<windows;w++)
     {
      // --- Il numero di indicatori in questa finestra/sottofinestra
      int total=ChartIndicatorsTotal(0,w);
      //--- Prende tutti gli indicatori nella finestra
      for(int i=0;i<total;i++)
        {
         //--- Ottiene il nome breve dell'indicatore
         string name=ChartIndicatorName(0,w,i);
         //--- Ottiene l'handle indicatore
         int handle=ChartIndicatorGet(0,w,name);
         //--- Aggiunge al log
         PrintFormat("Window=%d,  indicator #%d,  handle=%d",w,i,handle);
         //---
         MqlParam parameters[];
         ENUM_INDICATOR indicator_type;
         int params=IndicatorParameters(handle,indicator_type,parameters);
         //--- La testata del messaggio
         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);
        }
      //--- Fatto per tutti gli indicatori nella finestra
     }
//---    
  }

Vedi anche

ChartIndicatorGet()