MQL uzmanları için soru - sayfa 3

 

Bir yerde tavsiyeyle karşılaştım, ObjectCreate (veya ObjectSet? hatırlamıyorum) kullanmadan önce daima bir nesnenin varlığını kontrol edin.

Genel olarak, bu seçeneği kullanıyorum

 if ( ObjectFind ( "AsignalGF" )==- 1 )
      { ObjectCreate ( "AsignalGF" , OBJ_LABEL , 0 , 0 , 0 , 0 , 0 );
      ObjectSet( "AsignalGF" , OBJPROP_CORNER , 1 );
      ObjectSet( "AsignalGF" , OBJPROP_XDISTANCE , 12 * 1 );
      ObjectSet( "AsignalGF" , OBJPROP_YDISTANCE , 1 * 5 );
      ObjectSetText( "AsignalGF" ,CharToStr( 110 ), 38 , "Wingdings" , DimGray );}
 
leonid553 :

Tünaydın.

Zaten yarım gün geçirdim ve çözemiyorum.

Lütfen. Bana burada neyin yanlış olabileceğini söyleyebilir misin? Belki INIT işlevinde?

hata olabilir

1. init() içinde veya init içinde çağrılan bir işlevde WindowFind() öğesini çağırırsanız

2. WindowFind() ve #property Indicator_chart_window bildirdiniz, çünkü WindowFind(), alt pencereler için çağrılır

3. Aradığınız ismin olduğu gösterge pencerede yok

 
keekkenen :

3. Aradığınız ismin olduğu gösterge pencerede yok

mmm... sysl'de nesne?
 
Abzasc :
mmm... sysl'de nesne?

buradaki nesne nedir?

nesne burada ikincildir, çünkü var olmayan bir pencerede çizilmeye çalışılırsa,

ayrıca, nesne oluşturulursa, nesne yeniden oluşturulursa hata oluşmaz - ObjectCreate() false döndürür

 
keekkenen :

buradaki nesne nedir?

nesne burada ikincildir, çünkü var olmayan bir pencerede çizilmeye çalışılırsa,

ayrıca, nesne oluşturulursa, nesne yeniden oluşturulursa hata oluşmaz - ObjectCreate() false döndürür

Anladım teşekkürler :)
 
keekkenen :

hata olabilir

1. init() içinde veya init içinde çağrılan bir işlevde WindowFind() öğesini çağırırsanız

2. WindowFind() ve #property Indicator_chart_window bildirdiniz, çünkü WindowFind(), alt pencereler için çağrılır

3. Aradığınız ismin olduğu gösterge pencerede yok


1. Hayır, BAŞLAT'taki işlevi çağırıyorum: object("Symbol1", Symbol_1, 11, Color_1, 5);

2. Bildirilen #özellik göstergesi_separate_window

3. Penceresi varsa bir gösterge nasıl yok olabilir?

İşte fonksiyonun kendisi:

 void object( string name, string _text, int fontsize, color color_, int value) {
// задаем окно индикатора
 ObjectCreate (name+ WindowExpertName(), OBJ_LABEL , WindowFind(WindowExpertName()), 0 , 0 );
 // задаем текстовую метку в окне
ObjectSetText(name+ WindowExpertName(), _text, fontsize, "Times New Roman" , color_);
 ObjectSet(name+ WindowExpertName(), OBJPROP_CORNER , 1 );//задаем правый угол
 ObjectSet(name+ WindowExpertName(), OBJPROP_XDISTANCE , 4 );//задаем х-координату
 ObjectSet(name+ WindowExpertName(), OBJPROP_YDISTANCE , value);//задаем у-коордтнату 
                                     }
INIT'de hiçbir şeyi aramam. Belki oraya bir şeyler eklenmesi gerekir?
 
Abzasc :

Bir yerde tavsiyeyle karşılaştım, ObjectCreate (veya ObjectSet? hatırlamıyorum) kullanmadan önce daima bir nesnenin varlığını kontrol edin.

Genel olarak, bu seçeneği kullanıyorum

Hangi ismi vermeliyim ( ObjectFind ("AsignalGF") -

türkiye'nin çizdiği çizginin göstergesinin adı veya adı (dizisi)?

 
leonid553 :

(ObjectFind("AsignalGF") olarak hangi adı ayarlamalıyım -

türkiye'nin çizdiği çizginin göstergesinin adı veya adı (dizisi)?

Oluşturulan/değiştirilen nesnenin adı.
 

gibi anladım. Fonksiyonda nesnenin adını belirledim.

ObjectCreate( name+ WindowExpertName() , OBJ_LABEL , WindowFind(WindowExpertName()), 0, 0);


 
leonid553 :

Fonksiyonda nesnenin adını belirledim. ObjectCreate( name+ WindowExpertName() , ....);

Pekala, aradığımız şey bu.