ChartWindowFind

Rend le numéro de sous- fenêtre, dans laquelle il y a un indicateur. Il y a 2 variantes de la fonction.

1. La fonction cherche sur le graphique indiqué la sous- fenêtre avec l'indicateur  indiqué par "le nom court" (le nom court est affiché à gauche au dessus de la sous- fenêtre) et cas du succès rend le numéro de la sous- fenêtre.

int  ChartWindowFind(
   long     chart_id,                  // identificateur du graphique
   string   indicator_shortname        // nom court de l'indicateur, regarde INDICATOR_SHORTNAME

2. La fonction doit être appélée de l'indicateur d'utilisateur et récupère le numéro de la sous- fenêtre, où cet indicateur travaille.

int  ChartWindowFind();

Paramètres

chart_id

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

indicator_shortname

[in]  Le nom court de l'indicateur.

La valeur rendue

Le numéro du sous- fenêtre en cas du succès. Le zéro signifie une principale fenêtre du graphique. En cas de l'échec rend -1.

Note

Si la deuxième variante de la fonction est appelée (sans paramètres) du scipt ou l'expert, elle rend-1.

Il ne faut pas confondre un nom court et de l'indicateur et le nom du fichier qui est spécifié pendant la création de l'indicateur par les fonctionsiCustom() et IndicatorCreate(). Si le nom court de l'indicateur n'est pas spécifié explicitement, alors pendant la compilation le nom du fichier avec le code initial de l'indicateur y est spécifié.

Il est nécessaire de former correctement un nom court de l'indicateur, qui s'écrit dans la propriété INDICATOR_SHORTNAME à l'aide de la fonctionIndicatorSetString () . Nous recommandons que le nom court contienne les valeurs des paramètres d'entrée de l'indicateur, puisque l'identification de l'indicateur supprimé du graphique dans la fonctionChartIndicatorDelete()est faite selon le nom court.

Exemple:

#property script_show_inputs
//--- input parameters
input string   shortName="MACD(12,26,9)";
//+---------------------------------------------------------------------+
//| Rend le numéro de la fenêtre du graphique avec l'indicateur indiqué |
//+---------------------------------------------------------------------+
int GetIndicatorSubWindowNumber(long chartID=0,string short_name="")
  {
   int window=-1;
//--- 
   if((ENUM_PROGRAM_TYPE)MQL5InfoInteger(MQL5_PROGRAM_TYPE)==PROGRAM_INDICATOR)
     {
      //--- fonction est appelée de l'indicateur, le nom n'est pas demandé
      window=ChartWindowFind();
     }
   else
     {
      //--- fonction est appelée de l'expert ou du script
      window=ChartWindowFind(0,short_name);
      if(window==-1) Print(__FUNCTION__+"(): Error = ",GetLastError());
     }
//---
   return(window);
  }
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   int window=GetIndicatorSubWindowNumber(0,shortName);
   if(window!=-1)
      Print("Indicateur "+shortName+" se trouve dans la fenêtre #"+(string)window);
   else
      Print("Indicateur "+shortName+" n'a pas trouvé. window = "+(string)window);
  }

Voir aussi

ObjectCreate(), ObjectFind()