IndicatorSetDouble

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

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

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

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

bool  IndicatorSetDouble(
   int     prop_id,           // identificateur
   int     prop_modifier,     // modificateur 
   double  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_DOUBLE.

prop_modifier

[in]  Le modificateur  de la propriété indiquée. Seulement les propriétés des niveaux demandent le modificateur. Le numérotage des niveaux commence par 0, c'est-à-dire pour spécifier la propriété du deuxième niveau il faut indiquer 1 (moins 1 que lors de l'utilisation de la directive du compilateur).

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 (un), pendant que la fonction utilise le numérotage par 0 (le 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, on peut spécifier la valeur du premier niveau pour l'indicateur dans le sous- fenêtre séparé par deux moyens:

  • property indicator_level1  50 - 1 est utilisé pour l'indication du numéro du niveau,
  • IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 50) - 0 est utilisé pour l'indication du premier niveau.

L'exemple: l'indicateur -"changeling", changeant les valeurs maximale et minimale de la fenêtre de l'indicateur, ainsi que les valeurs des niveaux, sur lesquels se trouvent les lignes horizontales.

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

#property indicator_separate_window
//--- établirons les valeurs maximale et minimale pour la fenêtre de l'indicateur
#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 25
#property indicator_level2 50
#property indicator_level3 75
//--- établirons l'épaisseur des niveaux horizontaux
#property indicator_levelwidth 1
//--- établirons 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,"IndicatorSetDouble() Demo");
//--- spécifions à chaque niveau son couleur
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,0,clrBlue);
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,1,clrGreen);
   IndicatorSetInteger(INDICATOR_LEVELCOLOR,2,clrRed);
//---
   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;
   static double level1=25,level2=50,level3=75;
   static double max=100,min=0, shift=100;
//--- comptons les ticks
   tick_counter++;
//--- faisons un coup sur chaque 10-ème tick 
   if(tick_counter%10==0)
     {
      //--- retournerons le signe pour les valeurs du niveau
      level1=-level1;
      level2=-level2;
      level3=-level3;
      //--- retournerons le signe pour les valeurs maximales et minimales
      max-=shift;
      min-=shift;
      //--- retournerons la valeur du décalage
      shift=-shift;
      //--- spécifions les nouvelles valeurs des niveaux
      IndicatorSetDouble(INDICATOR_LEVELVALUE,0,level1);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,1,level2);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,2,level3);
      //--- spécifions les nouvelles valeurs maximales et minimales pour la fenêtre de l'indicateur 
      Print("Set up max = ",max,",   min = ",min);
      IndicatorSetDouble(INDICATOR_MAXIMUM,max);
      IndicatorSetDouble(INDICATOR_MINIMUM,min);
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }

Voir aussi

Styles des indicateurs dans les exemples, Lien entre les propriétés de l'indicateur et les fonctions correspondantes, Styles du dessin