ChartIndicatorGet

Rend le handle de l'indicateur avec le nom court indiqué sur la fenêtre indiquée du graphique.

int  ChartIndicatorGet(
   long           chart_id,              // l'identificateur du graphique
   int            sub_window             // le numéro de la sous-fenêtre
   const string   indicator_shortname    // le nom court de l'indicateur
   );

Paramètres

chart_id

[in]  L'identificateur du graphique. 0 signifie le graphique actuel.

sub_window

[in]  Le numéro de la sous-fenêtre du graphique. 0 signifie la fenêtre principale du graphique.

const indicator_shortname

[in]  Le nom court de l'indicateur, qui est spécifié dans la propriété INDICATOR_SHORTNAME par la fonction IndicatorSetString(). On peut recevoir le nom court de l'indicateur par la fonction ChartIndicatorName().

La valeur rendue

Rend le handle de l'indicateur en cas de l'exécution réussie, autrement INVALID_HANDLE. Pour recevoir l'informationl'erreur, il faut appeler la fonctionGetLastError().

Note

Le descripteur de l'indicateur obtenu à l'aide de la fonction ChartIndicatorGet() augmente le compteur interne d'utilisation de l'indicateur. Le système d'exécution du terminal conserve en mémoire tous les indicateurs dont le compteur est supérieur à zéro. Par conséquent, le descripteur d'indicateur qui n'est plus nécessaire doit être libéré immédiatement et explicitement en utilisant IndicatorRelease() dans le même programme, comme illustré dans l'exemple ci-dessous. Sinon, il sera impossible de trouver le descripteur "abandonné" et de le libérer correctement depuis un autre programme.

Il est nécessaire de former correctement un nom court de l'indicateur à sa création, qui à l'aide de la fonction IndicatorSetString() est enregistré à la propriétéINDICATOR_SHORTNAME. Nous recommandons que le nom court contienne les valeurs des paramètres d'entrée de l'indicateur, puisque l'identification de l'indicateur dans la fonction ChartIndicatorGet() est faite selon le nom court.

Un autre moyen de l'identification de l'indicateur — recevoir la liste de ses paramètres selon le handle donné à l'aide de la fonction IndicatorParameters() et puis analyser les valeurs reçues.

Exemple:

//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
   //--- le nombre de fenêtres sur le graphique (il y a toujours au moins une fenêtre principale)
   int windows=(int)ChartGetInteger(0,CHART_WINDOWS_TOTAL);
   //--- passons par les fenêtres
   for(int w=0;w<windows;w++)
     {
      //--- combien d'indicateurs dans cette fenêtre/sous-fenêtre
      int total=ChartIndicatorsTotal(0,w);
      //---trions tous les indicateurs dans la fenêtre
      for(int i=0;i<total;i++)
        {
         //--- recevons le nom court de l'indicateur
         string name=ChartIndicatorName(0,w,i);
         //--- recevons le handle de l'indicateur
         int handle=ChartIndicatorGet(0,w,name);
         //--- déduisons dans un journal
         PrintFormat("Window=%d,  index=%d,  name=%s,  handle=%d",w,i,name,handle);
         //--- обязательно освобождаем хендл индикатора, как только он становится не нужным
         IndicatorRelease(handle);
        }
     }
  }

Voir aussi

ChartIndicatorAdd(), ChartIndicatorName(), ChartIndicatorsTotal(), IndicatorParameters()