IndicatorSetInteger

Karşılık gelen gösterge özelliğinin değerini ayarlar. Gösterge özelliği, int veya color tipinde olmalıdır. Fonksiyonun iki çeşidi bulunmaktadır.

Özellik tanımlayıcısı (kimliği) ile çağrı.

bool  IndicatorSetInteger(
   int  prop_id,           // tanımlayıcı
   int  prop_value         // ayarlanacak değer
   );

Özellik tanımlayıcısının ve şekillendiricinin belirtilmesi ile yapılan çağrı.

bool  IndicatorSetInteger(
   int  prop_id,           // tanımlayıcı
   int  prop_modifier,     // şekillendirici
   int  prop_value         // ayarlanacak değer
   )

Parametreler

prop_id

[in]  Gösterge özelliğinin tanımlayıcısı. Bu değer, ENUM_CUSTOMIND_PROPERTY_INTEGER sayımının değerlerinden biri olabilir.

prop_modifier

[in]  Belirtilen özelliğin şekillendiricisi. Sadece seviye özellikleri bir şekillendirici gerektirir.

prop_value

[in]  Özellik değeri.

Dönüş değeri

Başarılı sonuç durumunda 'true', aksi durumda 'false' değerine dönüş yapar.

Not

#property direktifinin kullanımında özelliklerin numaralandırılması (şekillendiriciler) 1'den başlarken, fonksiyonlarda kullanılan numaralandırma 0'dan başlar. Seviye numarasının hatalı şekilde ayarlanmış olması durumunda, gösterge görünümü istenen görünümden farklı olabilir.

Örneğin, ilk yatay çizginin kalınlığını ayarlamak için, sıfırıncı indisi kullanın:

  • IndicatorSetInteger(INDICATOR_LEVELWIDTH, 0, 5) - 0 indisi, ilk seviyenin kalınlığını ayarlamak için kullanılır.

Örnek: yatay çizgilerin rengini, stilini ve kalınlığını ayarlayan gösterge.

IndicatorSetInteger() fonksiyonunun kullanım örneği

#property indicator_separate_window
#property indicator_minimum 0
#property indicator_maximum 100
//--- ayrı bir gösterge penceresinde üç yatay seviye görüntüle
#property indicator_level1 20
#property indicator_level2 50
#property indicator_level3 80
//--- yatay seviyelerin kalınlığını ayarla
#property indicator_levelwidth 5
//--- yatay seviyelerin rengini ayarla
#property indicator_levelcolor clrAliceBlue
//--- yatay seviyelerin stilini ayarla
#property indicator_levelstyle STYLE_DOT
//+------------------------------------------------------------------+
//| Custom indicator initialization function                         |
//+------------------------------------------------------------------+
int OnInit()
  {
//--- yatay seviyelerin açıklamalarını ayarla
   IndicatorSetString(INDICATOR_LEVELTEXT,0,"İlk seviye (0 indisli)");
   IndicatorSetString(INDICATOR_LEVELTEXT,1,"İkinci seviye (1 indisli)");
   IndicatorSetString(INDICATOR_LEVELTEXT,2,"Üçüncü seviye (2 indisli)");
//--- gösterge için kısa isim ayarla
   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;
//--- tikleri hesapla
   tick_counter++;
//--- ve tik sayacına göre yatay seviyeleri ayarla
   ChangeLevelColor(0,tick_counter,3,6,10); // Son üç renk parametresi açılır
   ChangeLevelColor(1,tick_counter,3,6,8);
   ChangeLevelColor(2,tick_counter,4,7,9);
//--- yatay seviyelerin stilini değiştir
   ChangeLevelStyle(0,tick_counter);
   ChangeLevelStyle(1,tick_counter+5);
   ChangeLevelStyle(2,tick_counter+15);
//--- kalınlığı, tik sayısının 5'e bölümünden kalan şeklinde al
   int width=tick_counter%5;
//--- tüm yatay seviyelerde tekrarla ve kalınlığı ayarla
   for(int l=0;l<3;l++)
      IndicatorSetInteger(INDICATOR_LEVELWIDTH,l,width+1);
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
   return(rates_total);
  }
//+------------------------------------------------------------------+
//| Ayrı gösterge penceresindeki yatay çizginin rengini ayarla       |
//+------------------------------------------------------------------+
void ChangeLevelColor(int level,      // yatay çizginin numarası
                      int tick_number,// bölüm, bölmenin kalanını alacak değer
                      int f_trigger,  // renk değişimi için ilk bölen
                      int s_trigger,  // renk değişimi için ikinci bölen
                      int t_trigger)  // renk değişimi için üçüncü bölen
  {
   static color colors[3]={clrRed,clrBlue,clrGreen};
//--- colors[] dizisinden renk indisi
   int index=-1;
//--- yatay çizginin boyanması için colors[] dizisindeki renk numarasını hesapla
   if(tick_number%f_trigger==0)
      index=0;   // eğer tick_number, f_trigger ile kalansız bölünüyorsa
   if(tick_number%s_trigger==0)
      index=1;   // eğer tick_number, s_trigger ile kalansız bölünüyorsa
   if(tick_number%t_trigger==0)
      index=2;   // eğer tick_number, t_trigger ile kalansız bölünüyorsa
//--- renk tanımlanmışsa ayarla      
   if(index!=-1)
      IndicatorSetInteger(INDICATOR_LEVELCOLOR,level,colors[index]);
//---
  }
//+------------------------------------------------------------------+
//| Ayrı gösterge penceresindeki yatay çizginin stilini ayarla       |
//+------------------------------------------------------------------+
void ChangeLevelStyle(int level,     // yatay çizginin numarası
                      int tick_number// bölümün kalanını almak için sayı
                      )
  {
//--- stillerin yükleneceği dizi
   static ENUM_LINE_STYLE styles[5]=
     {STYLE_SOLID,STYLE_DASH,STYLE_DOT,STYLE_DASHDOT,STYLE_DASHDOTDOT};
//--- styles[] dizisinden, stil indisi
   int index=-1;
//--- yatay çizginin stilini ayarlamak için, styles[] dizisinden sayıyı hesapla
   if(tick_number%50==0)
      index=5;   // tick_number, 50 ile kalansız bölünüyorsa, stil STYLE_DASHDOTDOT olur
   if(tick_number%40==0)
      index=4;   // ... stil STYLE_DASHDOT olur
   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
//--- eğer stil tanımlanmışsa ayarla      
   if(index!=-1)
      IndicatorSetInteger(INDICATOR_LEVELSTYLE,level,styles[index]);
  }

Ayrıca Bakınız

Özel Gösterge Özellikleri, Program Özellikleri (#property), Çizim Stilleri