IndicatorSetInteger

Spécifie la valeur de la propriété correspondante de l'indicateur. La propriété de l'indicateur doit être du type int ou color. Il y a 2 variantes de la fonction.

L'appel avec l'indication de l'identificateur de la propriété.

bool  IndicatorSetInteger(
   int  prop_id,           // identificateur
   int  prop_value         // valeur établie
   );

L'appel avec l'indication de l'identificateur et le modificateur de la propriété.

bool  IndicatorSetInteger(
   int  prop_id,           // identificateur
   int  prop_modifier,     // modificateur 
   int  prop_value         // valeur établie
   )

Paramètres

prop_id

[in]  L'identificateur de la propriété de l'indicateur. La valeur peut être une des valeurs de l'énumération ENUM_CUSTOMIND_PROPERTY_INTEGER.

prop_modifier

[in]  Le modificateur  de la propriété indiquée. Seulement les propriétés des niveaux demandent le modificateur.

prop_value

[in]  La valeur de la propriété.

La valeur rendue

En cas de l'exécution réussie rend true, dans le cas contraire rend false.

Note

Le numérotage des propriétés (des modificateurs) à l'utilisation de la directive #property commence par 1 (une unité), pendant que la fonction utilise le numérotage par 0 (un zéro). Si le numéro du niveau était spécifié incorrectementl'affichage de l'indicateur peut se distinguer de celui qui est supposé.

Par exemple pour spécifier l'épaisseur de la ligne du premier niveau horizontal utilisez l'indice nul:

  • IndicatorSetInteger(INDICATOR_LEVELWIDTH, 0, 5) - on utilise l'indice 0 pour spécifier l'épaisseur de la ligne du premier niveau.

L'exemple: l'indicateur qui spécifie la couleur, le style et l'épaisseur des niveaux horizontaux de l'indicateur.

L'exemple de l'utilisation de la fonction IndicatorSetInteger()

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
//--- spécifions la démonstration de trois niveaux horizontaux dans la fenêtre séparée de l'indicateur
#property indicator_level1 20
#property indicator_level2 50
#property indicator_level3 80
//---établissons l'épaisseur des niveaux horizontaux
#property indicator_levelwidth 5
//--- établissons la couleur des niveaux horizontaux
#property indicator_levelcolor clrAliceBlue
//--- établissons le style des niveaux horizontaux
#property indicator_levelstyle STYLE_DOT
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- spécifions les descriptions des niveaux horizontaux 
   IndicatorSetString(INDICATOR_LEVELTEXT,0,"First Level (index 0)");
   IndicatorSetString(INDICATOR_LEVELTEXT,1,"Second Level (index 1)");
   IndicatorSetString(INDICATOR_LEVELTEXT,2,"Third Level (index 2)");
//--- spécifions le nom court de l'indicateur
   IndicatorSetString(INDICATOR_SHORTNAME,"IndicatorSetInteger() Demo");
   return(INIT_SUCCEEDED);
  }
//+------------------------------------------------------------------+
//| Custom indicator iteration function                              |
//+------------------------------------------------------------------+
int OnCalculate(const int rates_total,
                const int prev_calculated,
                const datetime &time[],
                const double &open[],
                const double &high[],
                const double &low[],
                const double &close[],
                const long &tick_volume[],
                const long &volume[],
                const int &spread[])
  {
   static int tick_counter=0;
//--- calculons les ticks
   tick_counter++;
//--- établissons les couleurs des niveaux horizontaux en fonction du compteur des ticks
   ChangeLevelColor(0,tick_counter,3,6,10); // trois derniers paramètres basculent la couleur
   ChangeLevelColor(1,tick_counter,3,6,8);
   ChangeLevelColor(2,tick_counter,4,7,9);
//--- changeons les styles des niveaux horizontaux
   ChangeLevelStyle(0,tick_counter);
   ChangeLevelStyle(1,tick_counter+5);
   ChangeLevelStyle(2,tick_counter+15);
//--- recevrons l'épaisseur de la ligne, comme le reste de la division entière du nombre des ticks sur 5
   int width=tick_counter%5;
//--- passerons selon tous les niveaux horizontaux et exposerons 
   for(int l=0;l<3;l++)
      IndicatorSetInteger(INDICATOR_LEVELWIDTH,l,width+1);
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| établissons la couleur de la ligne horizontale dans la fenêtre séparée de l'indicateur |
//+------------------------------------------------------------------+
void ChangeLevelColor(int level,      // le numéro de la ligne horizontale
                      int tick_number,// le dividende, le nombre pour la réception du reste de la division
                      int f_trigger,  // le premier diviseur du basculement de la couleur
                      int s_trigger,  // le deuxième diviseur du basculement de la couleur
                      int t_trigger)  // le troisième diviseur du basculement de la couleur
  {
   static color colors[3]={clrRed,clrBlue,clrGreen};
//--- l'indice de la couleur du tableau colors[] 
   int index=-1;
//--- calculons le numéro de la couleur du tableau colors [] pour colorier la ligne horizontale
   if(tick_number%f_trigger==0)
      index=0;   // si le nombre tick_number se divise sans reste sur f_trigger
   if(tick_number%s_trigger==0)
      index=1;   // si le nombre tick_number se divise sans reste sur s_trigger
   if(tick_number%t_trigger==0)
      index=2;   // si le nombre tick_number se divise sans reste sur t_trigger
//--- si la couleur est définie, l'établissons     
   if(index!=-1)
      IndicatorSetInteger(INDICATOR_LEVELCOLOR,level,colors[index]);
//---
  }
//+------------------------------------------------------------------+
//| établissons le style de la ligne horizontale dans la fenêtre séparée de l'indicateur |
//+------------------------------------------------------------------+
void ChangeLevelStyle(int level,     // le numéro de la ligne horizontale
                      int tick_number// le nombre pour la réception du reste de la division)
                      )
  {
//--- le tableau pour stocker les styles
   static ENUM_LINE_STYLE styles[5]=
     {STYLE_SOLID,STYLE_DASH,STYLE_DOT,STYLE_DASHDOT,STYLE_DASHDOTDOT};
//--- l'indice du style du tableau styles[] 
   int index=-1;
//--- calculons le numéro du tableau styles[] pour établir le style de la ligne horizontale 
   if(tick_number%50==0)
      index=5;   // si tick_number se divise sans reste sur 50, le style STYLE_DASHDOTDOT
   if(tick_number%40==0)
      index=4;   // ... le style STYLE_DASHDOT
   if(tick_number%30==0)
      index=3;   // ... STYLE_DOT
   if(tick_number%20==0)
      index=2;   // ... STYLE_DASH
   if(tick_number%10==0)
      index=1;   // ... STYLE_SOLID
//--- si le style est défini, l'établissons     
   if(index!=-1)
      IndicatorSetInteger(INDICATOR_LEVELSTYLE,level,styles[index]);
  }

Voir aussi

Propriétés des indicateurs d'utilisateurs, Propriétés des programmes (#property), Styles du dessin