Descargar MetaTrader 5

IndicatorParameters

Devuelve para el manejador especificado el número de los parámetros de entrada del indicador, así como los propios valores y el tipo de parámetros.

int  IndicatorParameters(
   int               indicator_handle,     // manejador del indicador
   ENUM_INDICATOR&   indicator_type,       // variable para recibir el tipo del indicador
   MqlParam&         parameters[]          // array para recibir parámetros
   );

Parámetros

indicator_handle

[in]  Manejador del indicador para el que hace falta averiguar el número de parámetros sobre los cuales está calculado éste.

indicator_type

[out]  Variable del tipo ENUM_INDICATOR en la que será escrito el tipo del indicador.

parameters[]

[out]  Array dinámico para recibir los valores del tipo MqlParam en el que será escrita la lista de parámetros del indicador. El tamaño del array es devuelto por la misma función IndicatorParameters().

Valor devuelto

El número de los parámetros de entrada del indicador con el manejador especificado. En caso del error devuelve -1. Para obtener la información sobre el error, hay que llamar a la función GetLastError().

Ejemplo:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- número de ventanas sobre el gráfico (siempre hay por lo menos una ventana principal)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- vamos por las ventanas del gráfico
   for(int w=0;w<windows;w++)
     {
      //--- número de indicadores en esta ventana/subventana
      int total=ChartIndicatorsTotal(0,w);
      //--- repasaremos todos los indicadores en la ventana
      for(int i=0;i<total;i++)
        {
         //--- obtenemos el nombre corto del indicador
         string name=ChartIndicatorName(0,w,i);
         //--- obtenemos el manejador del indicador
         int handle=ChartIndicatorGet(0,w,name);
         //--- mostramos en el diario
         PrintFormat("Window=%d,  indicator #%d,  handle=%d",w,i,handle);
         //---
         MqlParam parameters[];
         ENUM_INDICATOR indicator_type;
         int params=IndicatorParameters(handle,indicator_type,parameters);
         //--- encabezamiento del mensaje
         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);
        }
      //--- hemos pasado por todos los indicadores en la ventana
     }
//---    
  }

Véase también

ChartIndicatorGet()