IndicatorSetDouble

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

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

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

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

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

Parametreler

prop_id

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

prop_modifier

[in]  Belirtilen özelliğin şekillendiricisi. Sadece seviye özellikleri bir şekillendirici gerektirir. seviyelerin indislenmesi 0'dan başlar. Yani, ikinci seviyenin özelliğinin ayarlanması için '1' şekillendiricisini belirtmelisiniz (derleyici direktifleri ile yapılan kullanımdan 1 daha az).

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, bir alt-penceredeki gösterge için ilk seviye değeri, iki farklı yolla ayarlanabilir:

  • property indicator_level1  50 - 1 değeri seviye numarasını belirtmek için kullanılmıştır,
  • IndicatorSetDouble(INDICATOR_LEVELVALUE, 0, 50) - 0 değeri ilk seviyenin numarasını belirtmek için kullanılmıştır.

Örnek: gösterge penceresinin maksimum ve minimum değerlerini ve yatay çizgilerin konumlandırıldığı seviye değerlerini ters çeviren bir gösterge.

IndicatorSetDouble() fonksiyonunun kullanım örneği

#property indicator_separate_window
//--- gösterge penceresinin maksimum ve minimum değerlerini ayarla
#property indicator_minimum  0
#property indicator_maximum  100
//--- ayrı bir gösterge penceresinde üç yatay seviye görüntüle
#property indicator_level1 25
#property indicator_level2 50
#property indicator_level3 75
//--- yatay seviyelerin kalınlığını ayarla
#property indicator_levelwidth 1
//--- 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,"IndicatorSetDouble() Demo");
//--- her bir seviye için renk ayarla
   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;
//--- tikleri hesapla
   tick_counter++;
//--- her 10-uncu tikle birlikte seviyeleri ters çevir
   if(tick_counter%10==0)
     {
      //--- seviye değerlerinin işaretlerini ters çevir
      level1=-level1;
      level2=-level2;
      level3=-level3;
      //--- maksimum ve minimum değerlerin işaretlerini ters çevir
      max-=shift;
      min-=shift;
      //--- kaydırma değerini ters çevir
      shift=-shift;
      //--- yeni seviye değerlerini ayarla
      IndicatorSetDouble(INDICATOR_LEVELVALUE,0,level1);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,1,level2);
      IndicatorSetDouble(INDICATOR_LEVELVALUE,2,level3);
      //--- gösterge penceresinin yeni maksimum ve minimum değerlerini ayarla
      Print("Başlat max = ",max,",   min = ",min);
      IndicatorSetDouble(INDICATOR_MAXIMUM,max);
      IndicatorSetDouble(INDICATOR_MINIMUM,min);
     }
//--- bir sonraki çağrı için prev_calculated değerine dönüş yap
   return(rates_total);
  }

Ayrıca Bakınız

Örneklerle Gösterge Stilleri, Gösterge Özellikleri ve Fonksiyonları arasındaki İlişki, Çizim Stilleri