Nesne Özellikleri

Grafiksel nesneler tiplerine göre çeşitli özelliklere sahip olabilirler. Nesne özellikleri grafiksel nesnelerle çalışmak için kullanılan fonksiyonlar ile ayarlanır veya alınır.

Teknik analizde kullanılan nesnelerinin tümü zaman ve fiyat koordinatlarıyla tutturulur: trend-çizgisi, kanallar, Fibonacci araçları, vb. Ama, kullanıcı deneyimini geliştirmek için sadece çizelgenin görünür kısmına (ana çizelge penceresi veya gösterge pencereleri) bağlanan bazı yardımcı nesneler de mevcuttur.

Nesne

Tanıtıcı

X/Y

Width/Height

Date/Price

OBJPROP_CORNER

OBJPROP_ANCHOR

OBJPROP_ANGLE

Text

OBJ_TEXT

Evet

Evet

Evet

Etiket

OBJ_LABEL

Evet

Evet (salt okunur)

Evet

Evet

Evet

Düğme

OBJ_BUTTON

Evet

Evet

Evet

Bitmap

OBJ_BITMAP

Evet (salt okunur)

Evet

Evet

Bitmap Etiketi

OBJ_BITMAP_LABEL

Evet

Evet (salt okunur)

Evet

Evet

Düzenle

OBJ_EDIT

Evet

Evet

Evet

Dikdörtgen Etiket

OBJ_RECTANGLE_LABEL

Evet

Evet

Evet

Tabloda şu tasarımlar kullanılabilir:

  • X/Y – tutturma noktalarının koordinatları çizelge köşesine göre, pikseller cinsinden belirlenir;
  • Width/Height – nesnelerin bir yüksekliği ve genişliği vardır. "Salt okunur" modunda genişlik ve yükseklik değerleri sadece bir defa – nesnenin çizelgeye eklenmesi sırasında – hesaplanır;
  • Date/Price – tutturma noktaları tarih ve fiyat verilerine göre belirlenir;
  • OBJPROP_CORNER – belirtilen tutturma noktası koordinatlarına göre çizelge köşesini tanımlar. ENUM_BASE_CORNER sayımının 4 değerinden biri olabilir;
  • OBJPROP_ANCHOR – tutturma noktasını nesne içinde tanımlar ve ENUM_ANCHOR_POINT sayımının 9 değerinden birini alabilir. Koordinatlar bu noktadan seçili çizelge köşesine kadar piksel cinsinden tanımlanır;
  • OBJPROP_ANGLE – nesne rotasyon açısını sat-yönünün tersine doğru tanımlar.

Nesnelerin oluşturulması ve çizelge üzerinde taşınması için tasarlanmış ObjectCreate() ve ObjectMove() işlevleri gibi, grafiksel nesnelerin özelliklerini tanımlayan fonksiyonlar da, çizelgeye komutlar göndermek için kullanılır. Bu fonksiyonlar başarılı şekilde çalıştırılırsa, söz konusu değişim komutu çizelge olaylarının genel kuyruğuna eklenir. Çizelge olayları kuyruğu işlendiğinde, grafiksel nesne özelliklerindeki görsel değişimler çizelgeye uygulanır.

Bu sebepten ötürü, bu fonksiyonların çağrılmalarının hemen ardından grafiksel nesneler üzerinde bir güncelleme beklememeniz gerekir. Grafiksel nesneler, genellikle değişim olaylarını takiben, terminal tarafından otomatik olarak güncellenir - yeni bir fiyat teklifinin gelmesinden sonra, çizelge penceresinin yeniden boyutlandırılmasının ardından, vb. Grafiksel nesneleri zorla güncellemek için ChartRedraw() fonksiyonunu kullanın.

ObjectSetInteger() ve ObjectGetInteger() fonksiyonları için

ENUM_OBJECT_PROPERTY_INTEGER

Tanımlayıcı

Açıklama

Özellik Tipi

OBJPROP_COLOR

Renk

color

OBJPROP_STYLE

Stil

ENUM_LINE_STYLE

OBJPROP_WIDTH

Çizgi kalınlığı

int

OBJPROP_BACK

Arkaplandaki nesne

bool

OBJPROP_ZORDER

Çizelge üzerine tıklama olayının (CHARTEVENT_CLICK) için, bir grafiksel nesnenin önceliği. Bu değer, nesne oluşturulurken ön tanımlı olarak sıfıra ayarlanır; gerektiğinde öncelik değiştirilebilir. Bir nesneyi diğerinin üzerine uygularken, CHARTEVENT_CLICK olayını, bunların sadece en yüksek öncelikli olanı alacaktır.

long

OBJPROP_FILL

Nesneyi renkle doldur (OBJ_RECTANGLE, OBJ_TRIANGLE, OBJ_ELLIPSE, OBJ_CHANNEL, OBJ_STDDEVCHANNEL ve OBJ_REGRESSION nesneleri için)

bool

OBJPROP_HIDDEN

Nesne listesi içindeki bir grafiksel nesnenin isminin, terminalin "Grafikler" - "Nesneler" - "nesne listesi" menüsünde gösterimini yasaklar. true değeri nesnenin listede gizlenmesini sağlar. Varsayılan olarak, takvim olayları, alım-satım geçmişi olayları ve MQL5 programları ile oluşturulmuş olaylar için 'true' değeri ayarlanmıştır. Bunlar gibi grafiksel nesneleri görüntülemek ve özelliklerine erişebilmek için, "nesne listesi" penceresindeki "Tümü" düğmesine basın.

bool

OBJPROP_SELECTED

Nesle seçildi

bool

OBJPROP_READONLY

Edit nesnesindeki metnin düzenlenme olanağı

bool

OBJPROP_TYPE

Nesne tipi

ENUM_OBJECT   r/o

OBJPROP_TIME

Zaman koordinatı

datetime   şekillendirici=tutturma noktası sayısı

OBJPROP_SELECTABLE

Nesnenin mevcudiyeti

bool

OBJPROP_CREATETIME

Nesnenin oluşturulma zamanı

datetime    r/o

OBJPROP_LEVELS

Seviyelerin sayısı

int

OBJPROP_LEVELCOLOR

Seviye çizgisinin rengi

color   şekillendirici=seviye numarası

OBJPROP_LEVELSTYLE

Seviye çizgisinin stili stili

ENUM_LINE_STYLE şekillendirici=seviye numarası

OBJPROP_LEVELWIDTH

Seviye çizgisinin kalınlığı

int      şekillendirici=seviye numarası

OBJPROP_ALIGN

Edit nesnesinde (OBJ_EDIT) yatay metin hizalama

ENUM_ALIGN_MODE

OBJPROP_FONTSIZE

Yazı tipi boyutu

int

OBJPROP_RAY_LEFT

Işın sola gider

bool

OBJPROP_RAY_RIGHT

Işın sağa gider

bool

OBJPROP_RAY

Tüm çizelge pencerelerinin içinden geçen dikey çizgi

bool

OBJPROP_ELLIPSE

Fibonacci Yay nesnesi (OBJ_FIBOARC) için bütün bir elipsi gösterir

bool

OBJPROP_ARROWCODE

Ok nesnesi için, ok kodu

uchar

OBJPROP_TIMEFRAMES

Bir nesnenin farklı zaman dilimlerindeki görünürlüğü

bayraklar kümesi flags

OBJPROP_ANCHOR

Bir grafiksel nesnenin tutturma noktası konumu

ENUM_ARROW_ANCHOR (OBJ_ARROW için),

ENUM_ANCHOR_POINT (OBJ_LABEL, OBJ_BITMAP_LABEL ve OBJ_TEXT için)

OBJPROP_XDISTANCE

Bağlama köşesinden itibaren, X ekseni üzerinde piksel bazında uzaklık (see note)

int

OBJPROP_YDISTANCE

Bağlama köşesinden itibaren, Y ekseni üzerinde piksel bazında uzaklık (see note)

int

OBJPROP_DIRECTION

Gann nesnesinin trendi

ENUM_GANN_DIRECTION

OBJPROP_DEGREE

Elliott Dalga İşaretinin seviyesi

ENUM_ELLIOT_WAVE_DEGREE

OBJPROP_DRAWLINES

Elliott Dalgasının işaretleneceği çizgileri görüntüleme

bool

OBJPROP_STATE

Düğme durumu (basılı / serbest)

bool

OBJPROP_CHART_ID

"Çizelge" nesnesinin (OBJ_CHART) tanımlayıcısı. Bu, çizelge işlemlerinde tarif edilen fonksiyonlar kullanılarak, nesnenin özellikleri ile normal bir çizelgeymiş gibi çalışılmasını sağlar ama bu duruma bazı istisnalar vardır.

long   r/o

OBJPROP_XSIZE

X ekseni üzerinde, piksel bazında nesne genişliği. OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT ve OBJ_RECTANGLE_LABEL nesneleri için belirlenmiştir.

int

OBJPROP_YSIZE

Y ekseni üzerinde, piksel bazında nesne yüksekliği. OBJ_LABEL (read only), OBJ_BUTTON, OBJ_CHART, OBJ_BITMAP, OBJ_BITMAP_LABEL, OBJ_EDIT ve OBJ_RECTANGLE_LABEL nesneleri için belirlenmiştir.

int

OBJPROP_XOFFSET

"Bitmap Label" ve "Bitmap" (OBJ_BITMAP_LABEL ve OBJ_BITMAP) grafiksel nesnelerindeki görünür dikdörtgen alanının sol üst köşesinin X koordinatları. Bu değer, orjinal görüntünün üst sol köşesine göre piksel bazında ayarlanır.

int

OBJPROP_YOFFSET

"Bitmap Label" ve "Bitmap" (OBJ_BITMAP_LABEL ve OBJ_BITMAP) grafiksel nesnelerindeki görünür dikdörtgen alanının sol üst köşesinin Y koordinatları. Bu değer, orjinal görüntünün üst sol köşesine göre piksel bazında ayarlanır.

int

OBJPROP_PERIOD

"Çizelge" nesnesi için zaman aralığı

ENUM_TIMEFRAMES

OBJPROP_DATE_SCALE

Çizelge nesnesi için zaman ölçeğinin görüntülenmesi

bool

OBJPROP_PRICE_SCALE

Çizelge nesnesi için fiyat ölçeğinin görüntülenmesi

bool

OBJPROP_CHART_SCALE

Çizelge nesnesi için ölçek

int   0–5 arası değer

OBJPROP_BGCOLOR

OBJ_EDIT, OBJ_BUTTON ve OBJ_RECTANGLE_LABEL için arkaplan rengi

color

OBJPROP_CORNER

Grafiksel nesnenin bağlanabileceği çizelge köşesi

ENUM_BASE_CORNER

OBJPROP_BORDER_TYPE

"Dikdörtgen etiket" nesnesi için kenar tipi

ENUM_BORDER_TYPE

OBJPROP_BORDER_COLOR

OBJ_EDIT ve OBJ_BUTTON nesneleri için kenar çizgisi rengi

color

Çizelge işlemlerinin "Çizelge" nesnesi (OBJ_CHART) için kullanılması durumunda, şu kısıtlamalar uygulanır:

 

OBJ_BITMAP_LABEL ve OBJ_BITMAP, nesneleri için özel bir resim görüntüleme modu, programlanabilir olarak ayarlanabilir. Bu modda, orjinal resmin sadece bir kısmı (görünür dikdörtgen alanın uygulandığı kısım) görüntülenir, resmin diğer kısmı ise görünmez olur. Bu alanın boyutları, OBJPROP_XSIZE ve OBJPROP_YSIZE özellikleri ile ayarlanmalıdır. Görünür alan, OBJPROP_XOFFSET ve OBJPROP_YOFFSET özelliklerini kullanarak, sadece orjinal resim içinde "taşınabilir".

 

Sabit boyutlu nesneler için (OBJ_BUTTON, OBJ_RECTANGLE_LABEL, OBJ_EDIT ve OBJ_CHART), OBJPROP_XDISTANCE ve OBJPROP_YDISTANCE özellikleri nesnenin sol üst köşesini çizelge köşesine göre (OBJPROP_CORNER) ayarlar, burada X ve Y koordinatları pikseller cinsinden belirlenir.

 

ObjectSetDouble() ve ObjectGetDouble() fonksiyonları için

ENUM_OBJECT_PROPERTY_DOUBLE

Tanımlayıcı

Açıklama

Özellik Tipi

OBJPROP_PRICE

Fiyat koordinatı

double    şekillendirici=tutturma noktası sayısı

OBJPROP_LEVELVALUE

Seviye değeri

double    şekillendirici = seviye numarası

OBJPROP_SCALE

Ölçek (Gann nesnelerinin ve Fibonacci Yaylarının özellikleri)

double

OBJPROP_ANGLE

Açı. Bir program tarafından açı belirtilmeden oluşturulmuş nesneler için , boş değere eşittir EMPTY_VALUE

double

OBJPROP_DEVIATION

Standart Sapma Kanalı için sapma değeri

double

 

ObjectSetString() ve ObjectGetString() fonksiyonları için

ENUM_OBJECT_PROPERTY_STRING

Tanımlayıcı

Açıklama

Özellik Tipi

OBJPROP_NAME

Nesne ismi

string

OBJPROP_TEXT

Nesne açıklaması (nesne içindeki metin)

string

OBJPROP_TOOLTIP

Araç ipucu metni. Eğer özellik ayarlanmamışsa, o zaman araç ipucu metni, terminal tarafından otomatik olarak ayarlanır. Bir araç ipucu "\n" (satır başı karakteri) değerinin ayarlanmasıyla devre dışı bırakılabilir

string

OBJPROP_LEVELTEXT

Seviye açıklaması

string    şekillendirici=seviye numarası

OBJPROP_FONT

Yazı tipi

string

OBJPROP_BMPFILE

Bitmap etiketi için BMP-dosyasının ismi. Bakınız Kaynaklar

string    işleyici: 0-durumu ON, 1-durumu OFF

OBJPROP_SYMBOL

Çizelge nesnesinin sembolü

string

 

OBJ_RECTANGLE_LABEL nesnesi ("Dikdörtgen etiket") için, aşağıda belirtilen ve ENUM_BORDER_TYPE sayımına karşılık gelen iki tasarım modundan biri ayarlanabilir.

ENUM_BORDER_TYPE

Tanımlayıcı

Açıklama

BORDER_FLAT

Düz biçim

BORDER_RAISED

Çıkıntılı biçim

BORDER_SUNKEN

Konkav biçim

 

OBJ_EDIT nesnesi ("Düzenle") ve ChartScreenShot() fonksiyonu için, ENUM_ALIGN_MODE sayımının değerlerini kullanarak yatay hizalamayı ayarlayabilirsiniz.

ENUM_ALIGN_MODE

Tanımlayıcı

Açıklama

ALIGN_LEFT

Sola hizalama

ALIGN_CENTER

Ortalanmış (sadece Edit nesnesi için)

ALIGN_RIGHT

Sağa hizalama

Örnek:

#define  UP          "\x0431"
//+------------------------------------------------------------------+
//| Script program start function                                    |
//+------------------------------------------------------------------+
void OnStart()
  {
//---
   string label_name="my_OBJ_LABEL_object";
   if(ObjectFind(0,label_name)<0)
     {
      Print(,label_name," nesnesi bulunamadı. Hata kodu = ",GetLastError());
      //--- Label nesnesini oluştur
      ObjectCreate(0,label_name,OBJ_LABEL,0,0,0);           
      //--- X koordinatını ayarla
      ObjectSetInteger(0,label_name,OBJPROP_XDISTANCE,200);
      //--- Y koordinatını ayarla
      ObjectSetInteger(0,label_name,OBJPROP_YDISTANCE,300);
      //--- metin rengini tanımla
      ObjectSetInteger(0,label_name,OBJPROP_COLOR,clrWhite);
      //--- Label nesnesi için metin tanımla 
      ObjectSetString(0,label_name,OBJPROP_TEXT,UP);
      //--- yazı tipini tanımla
      ObjectSetString(0,label_name,OBJPROP_FONT,"Wingdings");
      //--- yazı tipi boyutunu tanımla
      ObjectSetInteger(0,label_name,OBJPROP_FONTSIZE,10);
      //--- saat yönünde 45 derecelik rotasyon
      ObjectSetDouble(0,label_name,OBJPROP_ANGLE,-45);
      //--- fare seçimini devre dışı bırak
      ObjectSetInteger(0,label_name,OBJPROP_SELECTABLE,false);
      //--- bunu çizelge üzerinde çiz
      ChartRedraw(0);                                      
     }
  }