IndicatorParameters

A partir du handle spécifié, retourne le nombre de paramètres d'entrée de l'indicateur, ainsi que les valeurs et les types des paramètres.

int  IndicatorParameters(
   int               indicator_handle,     // handle de l'indicateur
   ENUM_INDICATOR&   indicator_type,       // une variable pour recevoir le type de l'indicateur
   MqlParam&         parameters[]          // un tableau pour recevoir les paramètres
   );

Parameters

indicator_handle

[in]  Le handle de l'indicateur, pour lequel vous devez connaître le nombre de paramètres sur lequel il est calculé.

indicator_type

[out]  Une variable du type ENUM_INDICATOR, dans laquelle le type de l'indicateur sera écrit.

parameters[]

[out]  Un tableau dynamique pour recevoir les valeurs de type MqlParam, dans lequel la liste des paramètres de l'indicateur seront écrits. La taille du tableau est retournée par la fonction IndicatorParameters().

Valeur de Retour

Le nombre de paramètres d'entrées de l'indicateur avec le handle spécifié. En cas d'erreur, retourne -1. Pour plus de détails sur l'erreur, appelez la fonction GetLastError().

Exemple :

//+------------------------------------------------------------------+
//| Fonction de démarrage du script                                  |
//+------------------------------------------------------------------+
void OnStart()
  {
 
//--- Le nombre de fenêtres sur le graphique (au moins une fenêtre principale est toujours présente)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
//--- Parcours les fenêtres du graphique
   for(int w=0;w<windows;w++)
     {
      //--- Le nombre d'indicateurs dans cette fenêtre/sous-fenêtre
      int total=ChartIndicatorsTotal(0,w);
      //--- Prends tous les indicateurs dans la fenêtre
      for(int i=0;i<total;i++)
        {
         //--- Retourne le nom court de l'indicateur
         string name=ChartIndicatorName(0,w,i);
         //--- Retourne le handle de l'indicateur
         int handle=ChartIndicatorGet(0,w,name);
         //--- Ajoute au journal
         PrintFormat("Fenêtre=%d,  indicateur #%d,  handle=%d",w,i,handle);
         //---
         MqlParam parameters[];
         ENUM_INDICATOR indicator_type;
         int params=IndicatorParameters(handle,indicator_type,parameters);
         //--- L'en-tête du message
         string par_info="Nom court "+name+", type "
                         +EnumToString(ENUM_INDICATOR(indicator_type))+"\r\n";
         //--- 
         for(int p=0;p<params;p++)
           {
            par_info+=StringFormat("paramètre %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);
        }
      //--- Fini pour tous les indicateurs dans la fenêtre
     }
//---    
  }

Voir aussi

ChartIndicatorGet()