MQL5 ReferansıÖzel GöstergelerPlotIndexGetInteger 

PlotIndexGetInteger

Belirtilen gösterge çizgisinin belirtilen özelliğinin değerini ayarlar. Gösterge özelliği int, color, bool veya char tiplerinden biri olmalıdır. Fonksiyonun 2 çeşidi bulunmaktadır.

Özellik tanımlayıcısını gösteren çağrı.

int  PlotIndexGetInteger(
   int  plot_index,        // çizim stili index
   int  prop_id,           // özellik tanımlayıcısı
   );

Özellik tanımlayıcısını ve şekillendiricisini gösteren çağrı.

int  PlotIndexGetInteger(
   int  plot_index,        // çizim indisi
   int  prop_id,           // özellik tanımlayıcısı
   int  prop_modifier      // özellik şekillendirici
   )

Parametreler

plot_index

[in] grafiksel çizim indisi

prop_id

[in] Bu değer, ENUM_PLOT_PROPERTY_INTEGER sayımının değerlerinden biri olabilir.

prop_modifier

[in]  Belirtilen özelliğin şekillendiricisi. Sadece renk indeksi özellikleri bir değiştirici gerektirir.

Not

Fonksiyon, uygun bir göstergenin çizim ayarlarını almak amacıyla tasarlanmıştır. Fonksiyon, bir çizginin çizim özelliklerini diğerine kopyalamak için PlotIndexSetInteger fonksiyonu ile birlikte çalışır.

Örnek: Haftanın günlerine göre mumları renklendiren bir gösterge. Her gün için renkler, bir program şekilde ayarlanır.

Mumlar, hafta-günü numarasına göre renklendirilir

 

#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
//--- gösterge tamponları
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()
  {
//--- gösterge tamponlarının eşlenmesi
   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);
//--- color tamponundaki renklerin numarasını ayarla
   PlotIndexSetInteger(0,PLOT_COLOR_INDEXES,6);
//--- color tamponu için renkleri
   for(int i=1;i<6;i++)
      PlotIndexSetInteger(0,PLOT_LINE_COLOR,i,ColorOfDay[i]);
//--- kesinliği ayarla
   IndicatorSetInteger(INDICATOR_DIGITS,_Digits);
   printf("%u gün rengine sahibiz",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];
      //--- her mum için renk ayarla
      TimeToStruct(time[i],t);
      ColorCandlesColors[i]=t.day_of_week;
      //---
      i++;
     }
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
   return(rates_total);
  }
//+------------------------------------------------------------------+