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

 
         string    shortName= "fraktalSDV" ; 
         long    chart_ID= ChartID ();         // ID графика
         int win_idx= ChartWindowFind (chart_ID,shortName);
         string nameobj=TimeToStr(Time[ 0 ]);
         string name=Time[ 0 ]+ 1 ; 
         Print ( "indikator=" ,win_idx);         
             //--- сбросим значение ошибки
             ResetLastError ();
             //--- создадим трендовую линию по заданным координатам
           if (! ObjectCreate (chart_ID,nameobj, OBJ_TREND ,win_idx,Time[index],maximum1,Time[ 1 ],TRENDmax[ 1 ]))
            {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
            } 
           if (! ObjectCreate (chart_ID,name, OBJ_TREND ,win_idx,Time[min1],minimum1,Time[ 1 ],Low_[ 1 ]))
            {
             Print ( __FUNCTION__ ,
                   ": не удалось создать линию тренда! Код ошибки = " , GetLastError ());
             return ( 0 );
            }       
           ObjectSet(nameobj, OBJPROP_RAY , false ); 
           ObjectSet(name, OBJPROP_RAY , false );
Eksi 1 neyse. Ayrıca göstergenin adını tüm küçük harflerle yapmaya çalıştım, hiçbir şey de yok.
 
forexman77 :
Eksi 1 neyse. Ayrıca göstergenin adını tüm küçük harflerle yapmaya çalıştım, hiçbir şey de yok.
Ve win_idx=1; ? Sadece al ve alt pencere numarasını özellikle ayarla.
 
Artyom Trishkin :
Ve win_idx=1; ? Sadece al ve alt pencere numarasını özellikle ayarla.

Denedim, yardımcı olmadı. Belki göstergededir, ancak üzerindeki işlemler doğru şekilde açılıyor gibi mi?

Yarın devam edeceğim, yatma vakti.

 

Göstergenin adını parametrelerle yapmanın daha iyi olduğunu belgelerde okudum.

Bunu göstergede yaptım:

 IndicatorSetString ( INDICATOR_SHORTNAME , "fraktalsdv (" +Period_MA_1+ "," +ma_shift+ "," +price+ "," +Period_+ ")" ); 

danışmanda:

 string    shortName= "fraktalsdv(" +Period_MA_1+ "," +ma_shift+ "," +price+ "," +Period_+ ")" ; 

Göstergeli pencere bulunamadı.

 
forexman77 :

Göstergenin adını parametrelerle yapmanın daha iyi olduğunu belgelerde okudum.

Bunu göstergede yaptım:

danışmanda:

Göstergeli pencere bulunamadı.

Test komut dosyası alt pencerede görüntülenen standart göstergeleri kolayca bulduğundan, kodunuzda açıkça sorunlar var.
 
Karputov Vladimir :
Test komut dosyası alt pencerede görüntülenen standart göstergeleri kolayca bulduğundan, kodunuzda açıkça sorunlar var.

Ancak işlemler açılır ve göstergeye dayalıdır. Ve baskıyı Expert Advisor'da görüntülerken gösterge doğru değerleri gösterir.

Nedense bana öyle geliyor ki, mesele şu ki, göstergede #property katı bir çizgi yok (bununla çalışmıyor)

 
forexman77 :

Ancak işlemler açılır ve göstergeye dayalıdır. Ve baskıyı Expert Advisor'da görüntülerken gösterge doğru değerleri gösterir.

Nedense bana öyle geliyor ki, mesele şu ki, göstergede #property katı bir çizgi yok (bununla çalışmıyor)

Hayır, bunun için değil. WindowFind() işlevini deneyin
 
Artyom Trishkin :
Hayır, bunun için değil. WindowFind() işlevini deneyin
-1 döndürür.
 
forexman77 :
-1 döndürür.

Hataları arayın. Göstergeler normalde

int ChartWindowFind (  
    uzun       chart_id , // grafik kimliği  
    sicim     gösterge_kısa isim          // gösterge kısa adı, bkz. INDICATOR_SHORTNAME

 
forexman77 :

Göstergeli pencere bulunamadı.

EA'nın hesaplamalar için oluşturduğu göstergeyi grafikte bulmak ister misiniz? İyi şanlar.