IndicatorParameters

Baseado no handle especificado, retorna o número de parâmetros de entrada do indicador, bem como os valores e tipos dos parâmetros.

int  IndicatorParameters(
   int               indicator_handle,     // handle do indicador
   ENUM_INDICATOR&   indicator_type,       // uma variável para receber o tipo do indicador
   MqlParam&         parameters[]          // um array para receber parâmetros
   );

Parâmetros

indicator_handle

[in]  O handle do indicador, para o qual você precisa saber o número de parâmetros sobre os quais o indicador é calculado.

indicator_type

[out]  Uma variável de tipo ENUM_INDICATOR, na qual o tipo do indicador será escrito.

parameters[]

[out]  Um array dinâmico para receber valores do tipo MqlParam, na qual a lista de parâmetros do indicador será escrito. O tamanho do array é retornado pela função IndicatorParameters().

Valor do Retorno

O número de parâmetros de entrada do indicador com o handle especificado. No caso de um erro, retorna -1. Para mais detalhes sobre o erro chame a função GetLastError().

Exemplo:

//+------------------------------------------------------------------+
//| Programa Script da função start (iniciar)                        |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- O número de janelas no gráfico (ao menos uma janela principal está sempre presente)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- Varre as janelas do gráfico
   for(int w=0;w<windows;w++)
     {
      //--- O número de indicadores nesta janela/sub-janela
      int total=ChartIndicatorsTotal(0,w);
      //--- Pega todos os indicadores na janela
      for(int i=0;i<total;i++)
        {
         //--- Obtém o nome abreviado do indicador
         string name=ChartIndicatorName(0,w,i);
         //--- Obtém o handle do indicador
         int handle=ChartIndicatorGet(0,w,name);
         //--- Adicionar o log
         PrintFormat("Window=%d,  indicator #%d,  handle=%d",w,i,handle);
         //---
         MqlParam parameters[];
         ENUM_INDICATOR indicator_type;
         int params=IndicatorParameters(handle,indicator_type,parameters);
         //--- O cabeçalho da mensagem
         string par_info="Short name "+name+", type "
                         +EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
         //--- 
         for(int p=0;p<params;p++)
           {
            par_info+=StringFormat("parâmetro %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);
        }
      //--- Pronto para todos os indicadores da janela
     }
//---    
  }

Também Veja

ChartIndicatorGet()