ObjectSetDouble

Belirtilen nesne özelliğinin değerini ayarlar. Nesne özelliği double tipinde olmalıdır. Fonksiyonun iki çeşidi vardır.

Birinci versiyonda şekillendirici yer almaz

bool  ObjectSetDouble(
   long                            chart_id,          // çizelge tanımlayıcı
   string                          name,              // nesne ismi
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // özellik tanımlayıcısı
   double                          prop_value         // değer
   );

İkinci versiyonda değer, şekillendirici belirtilerek ayarlanır

bool  ObjectSetDouble(
   long                            chart_id,          // çizelge tanımlayıcı
   string                          name,              // nesne ismi
   ENUM_OBJECT_PROPERTY_DOUBLE     prop_id,           // özellik tanımlayıcısı
   int                             prop_modifier,     // şekillendirici
   double                          prop_value         // değer
   );

Parametreler

chart_id

[in]  Çizelge tanımlayıcısı. 0, mevcut çizelge anlamına gelir.

name

[in]  Nesne ismi.

prop_id

[in]  Nesne özelliğinin tanıtıcısı. Bu değer ENUM_OBJECT_PROPERTY_DOUBLE sayımının değerlerinden biri olabilir.

prop_modifier

[in]  Belirtilen özelliğin şekillendiricisi. Fibonacci araçlarındaki ve Andrews Dirgenindeki seviye numarasını gösterir. Seviyelerin numaralandırılmasına sıfırdan başlanır.

prop_value

[in]  Özelliğin değeri.

Dönüş değeri

Grafiksel nesnenin özelliğini değiştirmek için oluşturulan komut, çizelgeye başarılı şekilde gönderilmişse 'true' değerine, aksi durumda 'false' değerine dönüş yapar. Hata ile ilgili daha fazla bilgi için GetLastError() fonksiyonunu çağırın.

Not

Fonksiyon, eşzamansız bir çağrı kullanır; bu, işlevin, belirtilen grafiğin sırasına eklenen komutun yürütülmesini beklemediği anlamına gelir. Bunun yerine, hemen kontrol döndürür.

Komut yürütme sonucunu kontrol etmek için, belirtilen nesne mülkiyetini isteyen bir fonksiyon kullanabilirsiniz. Bununla birlikte, bu tür işlevlerin bu çizelgenin sonuna eklendiğini ve yürütme sonucunu beklediklerini ve bu nedenle zaman alıcı olabileceğini unutmamalısınız. Bu özellik, bir grafikte çok sayıda nesneyle çalışırken dikkate alınmalıdır.

Bir fibonacci nesnesinin oluşturulmasını ve ona bir seviye eklenmesini gösteren örnek

//+------------------------------------------------------------------+
//| Script programı başlatma fonksiyonu                              |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- yardımcı diziler
   double high[],low[],price1,price2;
   datetime time[],time1,time2;
//--- Açılış fiyatlarını kopyala - sondan 100 çubuk yeterli
   int copied=CopyHigh(Symbol(),0,0,100,high);
   if(copied<=0)
     {
      Print("High (yüksek) fiyat serisi kopyalanamadı");
      return;
     }
//--- Kapanış fiyatlarını kopyala - sondan 100 çubuk yeterli
   copied=CopyLow(Symbol(),0,0,100,low);
   if(copied<=0)
     {
      Print("Low (düşük) fiyat serisi kopyalanamadı");
      return;
     }
//--- Son 100 çubuk için açılış zamanını kopyala
   copied=CopyTime(Symbol(),0,0,100,time);
   if(copied<=0)
     {
      Print("Time serisinin değerleri kopyalanamadı");
      return;
     }
//--- kopyalanan veriye erişim şeklini zaman-serilerindeki gibi ayarla - geriye doğru
   ArraySetAsSeries(high,true);
   ArraySetAsSeries(low,true);
   ArraySetAsSeries(time,true);
 
//--- Fibo nesnesinin ilk tutturma noktasının koordinatları
   price1=high[70];
   time1=time[70];
//--- Fibo nesnesinin ikinci tutturma noktasının koordinatları
   price2=low[50];
   time2=time[50];
 
//--- Fibo nesnesinin oluşturulma zamanı
   bool created=ObjectCreate(0,"Fibo",OBJ_FIBO,0,time1,price1,time2,price2);
   if(created) // Nesne başarılı şekilde oluşturulmuşsa
     {
      //--- Fibo seviyelerinin rengini ayarla
      ObjectSetInteger(0,"Fibo",OBJPROP_LEVELCOLOR,Blue);
      //--- kaç adet Fibo seviyemiz var?
      int levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
      Print("Önceki Fibo seviyeleri = ",levels);
      //---Günlüğe çıktıla => seviye numarası: değer seviye_açıklaması
      for(int i=0;i<levels;i++)
        {
         Print(i,": ",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
               "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
        }
      //--- Birim başına düşen seviye sayısını artırmayı dene
      bool modified=ObjectSetInteger(0,"Fibo",OBJPROP_LEVELS,levels+1);
      if(!modified) // seviye sayısı değiştirilemedi
        {
         Print("Fibo nesnesinin seviyeerinin sayısı değiştirilemedi, hata ",GetLastError());
        }
      //--- sadece bilgilendir
      Print("sonraki Fibo seviyeleri = ",ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS));
      //--- yeni olusturulmuş seviye için bir değer ayarla
      bool added=ObjectSetDouble(0,"Fibo",OBJPROP_LEVELVALUE,levels,133);
      if(added) // seviye için bir değer ayarlandı
        {
         Print("Seviye için, başarılı şekilde bir değer ayarlandı");
         //--- Seviye açıklamasını ayarlamayı da unutma
         ObjectSetString(0,"Fibo",OBJPROP_LEVELTEXT,levels,"my level");
         ChartRedraw(0);
         //--- Fibo nesnesindeki seviyelerin gerçek sayısını al
         levels=ObjectGetInteger(0,"Fibo",OBJPROP_LEVELS);
         Print("Eklemeden sonra Fibo seviyeleri = ",levels);
         //--- emin olmak için, tüm seviyeleri bir kez daha çıktıla
         for(int i=0;i<levels;i++)
           {
            Print(i,":",ObjectGetDouble(0,"Fibo",OBJPROP_LEVELVALUE,i),
                  "  ",ObjectGetString(0,"Fibo",OBJPROP_LEVELTEXT,i));
           }
        }
      else // Fibo nesnesindeki seviyelerin sayısının artırılması denenirse başarısız olur
        {
         Print("Daha fazla Fibo seviyesi eklenemedi. Hata",GetLastError());
        }
     }
  }

Ayrıca Bakınız

Nesne Tipleri, Nesne Özellikleri