PlotIndexGetInteger

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

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

int  PlotIndexGetInteger(
   int  plot_index,        // index du style graphique
   int  prop_id,           // identificateur de la propriété
   );

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

int  PlotIndexGetInteger(
   int  plot_index,        // index du style graphique
   int  prop_id,           // identificateur de la propriété
   int  prop_modifier      // identificateur de la propriété
   )

Paramètres

plot_index

[in]  L'index de la construction graphique

prop_id

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

prop_modifier

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

Note

La fonction est destinée à l'extrait des ajustements du dessin de la ligne correspondante de l'indicateur. La fonction travaille avec la fonction PlotIndexSetInteger pour le copiage des propriétés du dessin d'une ligne à l'autre.

Exemple: l'indicateur qui colorie des bougies selon le jour de la semaine. Les couleurs pour chaque jour sont spécifiés d'une manière de programme.

Les bougies, décorées conformément au numéro du jour de la semaine

 

#property indicator_separate_window
#property indicator_buffers 5
#property indicator_plots   1
//---- plot ColorCandles
#property indicator_label1  "ColorCandles"
#property indicator_type1   DRAW_COLOR_CANDLES
#property indicator_style1  STYLE_SOLID
#property indicator_width1  1
//--- indicator buffers
double         OpenBuffer[];
double         HighBuffer[];
double         LowBuffer[];
double         CloseBuffer[];
double         ColorCandlesColors[];
color          ColorOfDay[6]={CLR_NONE,clrMediumSlateBlue,
                              clrDarkGoldenrod,clrForestGreen,clrBlueViolet,clrRed};
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
void OnInit()
  {
//--- indicator buffers mapping
   SetIndexBuffer(0,OpenBuffer,INDICATOR_DATA);
   SetIndexBuffer(1,HighBuffer,INDICATOR_DATA);
   SetIndexBuffer(2,LowBuffer,INDICATOR_DATA);
   SetIndexBuffer(3,CloseBuffer,INDICATOR_DATA);
   SetIndexBuffer(4,ColorCandlesColors,INDICATOR_COLOR_INDEX);
//--- set number of colors in color buffer
   PlotIndexSetInteger(0,PLOT_COLOR_INDEXES,6);
//--- set colors for color buffer
   for(int i=1;i<6;i++)
      PlotIndexSetInteger(0,PLOT_LINE_COLOR,i,ColorOfDay[i]);
//--- set accuracy
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
   printf("We have %u colors of days",PlotIndexGetInteger(0,PLOT_COLOR_INDEXES));
//---
  }
//+------------------------------------------------------------------+
//| 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[])
  {
//---
   int i;
   MqlDateTime t;
//----
   if(prev_calculated==0) i=0;
   else i=prev_calculated-1;
//----
   while(i<rates_total)
     {
      OpenBuffer[i]=open[i];
      HighBuffer[i]=high[i];
      LowBuffer[i]=low[i];
      CloseBuffer[i]=close[i];
      //--- set color for every candle
      TimeToStruct(time[i],t);
      ColorCandlesColors[i]=t.day_of_week;
      //---
      i++;
     }
//--- return value of prev_calculated for next call
   return(rates_total);
  }
//+------------------------------------------------------------------+