ObjectName

Belirtilen çizelgenin belirtilen alt-penceresinde, karşılık gelen belirli tipteki nesnenin ismine dönüş yapar.

string  ObjectName(
   long  chart_id,           // çizelge tanımlayıcısı
   int   pos,                // nesne listesindeki numara
   int   sub_window=-1,      // pencere indisi
   int   type=-1             // nesne tipi
   );

Parametreler

chart_id

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

pos

[in]  Numara, tip ve alt-pencere indisi ile belirtilen filtreye göre, nesnenin sıra numarası.

sub_window=-1

[in]  Çizelge alt penceresinin indisi. 0 ana çizelge penceresidir, -1 ise ana pencere de dahil olmak üzere tüm alt pencereler anlamına gelir.

type=-1

[in]  Nesne tipi. Bu değer, ENUM_OBJECT değerlerinden biri olabilir. -1 tüm tipler anlamına gelir.

Dönüş değeri

Başarı durumunda nesnenin ismine dönüş yapılır.

Not

Fonksiyon, eşzamanlı bir çağrı kullanır; bu, fonksiyonun çağrı öncesinde bu grafik için yerine getirilmiş tüm komutların yürütülmesini beklediği anlamına gelir, bu nedenle bu fonksiyon çok zaman alıcı olabilir. Bu özellik, bir grafikte çok sayıda nesneyle çalışırken dikkate alınmalıdır.

Bir nesne yeniden isimlendirildiğinde, aynı anda iki olay ortaya çıkar. Bu olaylar, bir Uzman Danışman veya gösterge içerisinde OnChartEvent() fonksiyonu ile işlenebilir:

  • eski isimli nesnenin silinmesi olayı;
  • yeni isimli nesnenin oluşturulması olayı.

 

Örnek:

#property copyright "Copyright 2025, MetaQuotes Ltd."
#property link      "https://www.mql5.com"
#property version   "1.00"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//--- grafik kimliği
   long chart_id=ChartID();
   
//--- ana pencere ile birlikte grafik alt pencerelerinin sayısını al
   long wnd=0;
   ResetLastError();
   if(!ChartGetInteger(chart_idCHART_WINDOWS_TOTAL0wnd))
     {
      Print("ChartGetInteger() failed. Error "GetLastError());
      return;
     }
   
//--- ana pencere de dahil olmak üzere grafik alt pencerelerinin sayısına göre bir döngü içinde
   for(int sub_wnd=0sub_wnd<(int)wndsub_wnd++)
     {
      //--- grafik başlığını günlükte görüntüle
      string wnd_name=(sub_wnd==0 ? "Main window:" : StringFormat("Subwindow %d:"sub_wnd));
      Print(wnd_name);
      
      //--- mevcut alt penceredeki grafiksel nesnelerin sayısını al
      //--- ve tüm alt pencere nesneleri boyunca bir döngü içinde her birinin adını yazdır
      int objects=ObjectsTotal(chart_idsub_wnd);
      for(int obj_index=0obj_index<objectsobj_index++)
        {
         //--- döngüdeki mevcut nesne adı
         string obj_name=ObjectName(chart_idobj_indexsub_wnd);
         
         //--- bu bir işlem etiketiyse (otomatik alım-satım), bu nesnenin adını günlükte görüntüleme
         if(sub_wnd==0 && StringFind(obj_name"autotrade")==0)
            continue;
         
         PrintFormat("  [%d] Graphic object name: \"%s\""obj_indexobj_name);
        }
     }
   /*
   iki alt pencereli ana pencere için sonuç
   (ana pencere iki grafiksel nesne ve işlem etiketleri (atlandı) içeriyor
   ve her bir grafik alt penceresinde iki grafiksel nesne bulunuyor):
   Main window:
     [0Graphic object name"M30 Fibo 29182"
     [1Graphic object name"M30 Vertical Line 13600"
   Subwindow 1:
     [0Graphic object name"M30 Cycle Lines 63004"
     [1Graphic object name"M30 Trendline 40731"
   Subwindow 2:
     [0Graphic object name"M30 Equidistant Channel 58930"
     [1Graphic object name"M30 Rectangle 5636"
   */
  }