Grafik nesneleri oluşturmayı nasıl öğrenebilirim? MQL4. - sayfa 4

 
Integer :

Oluşturmadan önce, ObjectFind() işlevini kullanarak nesnenin var olup olmadığını kontrol edebilirsiniz. Hiçbir şey yapamazsın, tamam, korkunç bir hata yok.

Çok sayıda nesne. Çubuk zamanını nesne adına ekleyebilirsiniz, benzersiz bir ad alırsınız.

Kirişi kesin. Özellik ObjectSet(Ad,OBJPROP_RAY,false);

Vay! Düşüncelerinizi okudum. Zaten bitti. Geçerli saat isme atanır.

Kirişi kesin. Yani eski adını hatırlıyorum, yanlış mı koydum?

 
forexman77 :

...

Kirişi kesin. Yani eski adını hatırlıyorum, yanlış mı koydum?

Oluşturulduktan hemen sonra , oluşturulanla aynı adla ObjectSet() öğesini çağırın.
 

Bir gösterge alt penceresi (MQL4) olan bir EA'da nesneler çizmeye çalışıyorum

Yalnızca bir gösterge vardır, bu nedenle alt pencere 1 numarada olmalıdır.

 long    chart_ID= 0 ;         // ID графика
int win_idx= 1 ;
string nameobj=TimeToStr(Time[ 0 ]);       
             //--- сбросим значение ошибки
             ResetLastError ();
             //--- создадим трендовую линию по заданным координатам
           if (! ObjectCreate (chart_ID,nameobj, OBJ_TREND ,win_idx,Time[index],maximum1,Time[ 1 ],TRENDmax[ 1 ]))
            {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
            } 

Çizim yok. Hata 4206 (Belirtilen alt pencere bulunamadı)

Görsel olarak, danışman anlaşmaları gerektiği gibi açar. Yani " Time[index],maximum1,Time[ 1 ],TRENDmax[ 1 ]" değişkenleri doğrudur.

 
forexman77 :

Bir gösterge alt penceresi (MQL4) olan bir EA'da nesneler çizmeye çalışıyorum

Yalnızca bir gösterge vardır, bu nedenle alt pencere 1 numarada olmalıdır.

Çizim yok. Hata 4206 (Belirtilen alt pencere bulunamadı)

"1" i ChartWindowFind() ile değiştirin.
 
Karputov Vladimir :
"1" i ChartWindowFind() ile değiştirin.

Bir Uzman Danışmanda kısa bir gösterge adı nasıl alınır?

Göstergenin kendisinde kısa bir isim yaptı

IndicatorShortName( "fraktalSDV" );
 

Bir komut dosyası yaptı:

 void OnStart ()
  {
string    shortName= "fraktalSDV" ; 
long    chart_ID= 0 ;         // ID графика
int win_idx= ChartWindowFind (chart_ID,shortName);
Alert ( "Окно = " , win_idx);
  }

pencere olması gerektiği gibi görünür.

Danışmanda:

 string    shortName= "fraktalSDV" ; 
long    chart_ID= 0 ;         // ID графика
int win_idx= ChartWindowFind (chart_ID,shortName);
         Print ( "shortName=" ,shortName);
         string nameobj=TimeToStr(Time[ 0 ]);          
             //--- сбросим значение ошибки
             ResetLastError ();
             //--- создадим трендовую линию по заданным координатам
           if (! ObjectCreate (chart_ID,nameobj, OBJ_TREND ,win_idx,Time[index],maximum1,Time[ 1 ],TRENDmax[ 1 ]))
            {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
            } 

-1 numaralı alt pencereyi alıyorum

 
forexman77 :

Bir komut dosyası yaptı:

pencere olması gerektiği gibi görünür.

Danışmanda:

-1 numaralı alt pencereyi alıyorum

Grafikte bir alt pencerede "fraktalSDV" kısa adıyla bir gösterge olduğundan emin misiniz?  
 
Karputov Vladimir :
Grafikte bir alt pencerede "fraktalSDV" kısa adıyla bir gösterge olduğundan emin misiniz?  
Test cihazında görselleştirmeyi açtığımda, çalıştırmanın sonunda görünüyor.
 
forexman77 :
Test cihazında görselleştirmeyi açtığımda, çalıştırmanın sonunda görünüyor.
Bir gösterge şablonu oluşturun ve bu şablonu test kullanıcısı olarak kaydedin.
 
Karputov Vladimir :
Bir gösterge şablonu oluşturun ve bu şablonu test kullanıcısı olarak kaydedin.

Yani, göstergeli bir grafik profili oluştur?

Göstergeyi test cihazında başlatmaya çalıştım, yavaş modda çizildi.