MQL4 ve MQL5 ile ilgili herhangi bir acemi sorusu, algoritmalar ve kodlar hakkında yardım ve tartışma - sayfa 18

 
Artyom Trishkin :
Bu iyi değil. Derlerken herhangi bir uyarı aldınız mı? Bu gibi durumlarda #özellik katı değil, uyarı nedenlerinden kurtulmak gerekir.
#property strict yazıldığında, derleyici her for() döngüsünde değişkenlerin bir türü olması gerektiğine dair hatalar verdi ve bu nedenle her döngüde int i ve int p yazılması gerekiyordu. Bundan sonra derleyici herhangi bir hata vermedi, ancak hat oluşturulmadı. #property strict öğesini kaldırdığımda, derleyicinin artık her döngüde türü bildirmesi gerekmiyordu ve satır oluşturuldu.
 

bakiyeyi doldurdum şimdi gerçek hesabı olan terminalin her zaman bir demo hesabı açtığını bulamıyorum

 
Timur1988 :
#property strict yazıldığında, derleyici her for() döngüsünde değişkenlerin bir türü olması gerektiğine dair hatalar verdi ve bu nedenle her döngüde int i ve int p yazılması gerekiyordu. Bundan sonra derleyici herhangi bir hata vermedi, ancak hat oluşturulmadı. #property strict öğesini kaldırdığımda, derleyicinin artık her döngüde türü bildirmesi gerekmiyordu ve satır oluşturuldu.

Mantıktaki örtük hatalardan yararlanmanın tipik bir örneği. Derleyici "daha katı" hale geldikten sonra, kendini aldatma yavaş yavaş ortadan kalkar.

Neden bu kadar çok özdeş döngü olduğunu sormak istedim.

Ve grafikteki göstergeyi çalıştırdığınızda " sınır dışı dizi " hatası sizi neden rahatsız etmiyor?

Örneğin, burada:

     for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][p- 1 ]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p- 1 ]+Price_CloseY[i][p];
         }        
      }
 
7u6y5t4r3e2w1q :

bakiyeyi doldurdum şimdi gerçek hesabı olan terminalin her zaman bir demo hesabı açtığını bulamıyorum

Terminal aynı, sadece gerçek bir hesaba yeniden giriş yapmanız gerekiyor. Nasıl yapılır: Dosya - Bir ticaret hesabına bağlanın - açılan pencerede hesap numarasını, şifreyi ve sunucuyu belirtin. Tüm bu veriler DC tarafından yayınlandı, bu durumda onlara sorun.
 
Timur1988 :
#property strict yazıldığında, derleyici her for() döngüsünde değişkenlerin bir türü olması gerektiğine dair hatalar verdi ve bu nedenle her döngüde int i ve int p yazılması gerekiyordu. Bundan sonra derleyici herhangi bir hata vermedi, ancak hat oluşturulmadı. #property strict öğesini kaldırdığımda, derleyicinin artık her döngüde türü bildirmesi gerekmiyordu ve satır oluşturuldu.

cevap son derece basit - dizinin banal taşması var - ve bu hata nedeniyle göstergeniz çalışmayı durduruyor

     for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][ p- 1 ]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p- 1 ]+Price_CloseY[i][p];
        
         }        
      }
  
   for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m ; p++)
         {      
         Mx[i][p]=sum_x[ p+ 1 ][m- 1 ]/(n- 1 );  
         My[i][p]=sum_y[p+ 1 ][m- 1 ]/(n- 1 );

Bu hatayı yürütme aşamasında görebilirsiniz -- göstergeyi çalıştırın ve Terminal -- Uzmanlar sekmesindeki günlük girişini görüntüleyin:

 
Vitalie Postolache :

Mantıktaki örtük hatalardan yararlanmanın tipik bir örneği. ...

Sınırların dışında bir dizi mantıkta büyük bir hatadır - ve böyle bir hata "örtük" olarak adlandırılamaz.
 
Vitalie Postolache :

Mantıktaki örtük hatalardan yararlanmanın tipik bir örneği. Derleyici "daha katı" hale geldikten sonra, kendini aldatma yavaş yavaş ortadan kalkar.

Neden bu kadar çok özdeş döngü olduğunu sormak istedim.

Ve grafikteki göstergeyi çalıştırdığınızda " sınır dışı dizi " hatası sizi neden rahatsız etmiyor?

Örneğin, burada:

     for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][p- 1 ]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p- 1 ]+Price_CloseY[i][p];
         }        
      }


Ve her boyuttaki kapanış fiyatlarının toplamı nasıl hesaplanır???
Aynı döngülerle ilgili olarak, sınırlı programlama ve algoritma bilgisi nedeniyle, formülde ikame için gerekli olan dizi öğesini istenen boyuttan seçmek için daha iyi bir şey bulamadım.
 
Andrey F. Zelinsky :

cevap son derece basit - dizinin banal taşması var - ve bu hata nedeniyle göstergeniz çalışmayı durduruyor

     for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m; p++)
         {  
         sum_x[i][p]=sum_x[i][ p- 1 ]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p- 1 ]+Price_CloseY[i][p];
        
         }        
      }
  
   for ( int i= 1 ; i<n; i++)
      {    
       for ( int p= 0 ; p<m ; p++)
         {      
         Mx[i][p]=sum_x[ p+ 1 ][m- 1 ]/(n- 1 );  
         My[i][p]=sum_y[p+ 1 ][m- 1 ]/(n- 1 );

Bu hatayı yürütme aşamasında görebilirsiniz -- göstergeyi çalıştırın ve Terminal -- Uzmanlar sekmesindeki günlük girişini görüntüleyin:

Lütfen bana bu hatayı nasıl düzelteceğimi söyle?
 
Timur1988 :
Ve her boyuttaki kapanış fiyatlarının toplamı nasıl hesaplanır???
Aynı döngülerle ilgili olarak, sınırlı programlama ve algoritma bilgisi nedeniyle, formülde ikame için gerekli olan dizi öğesini istenen boyuttan seçmek için daha iyi bir şey bulamadım.

Örneğin şöyle:

      for ( int  i= 1 ; i<n; i++)

      {    
       for ( int  p= 1 ; p<m; p++)
         {   
         sum_x[i][p]=sum_x[i][p- 1 ]+Price_CloseX[i][p];                                        
         sum_y[i][p]=sum_y[i][p- 1 ]+Price_CloseY[i][p];
         }         
      }
 
Timur1988 :
Lütfen bana bu hatayı nasıl düzelteceğimi söyle?

Bu hatayı düzeltmek için - formülünüzü anlamanız gerekir - ne, neden ve nasıl düşündüğünüzü.

Ve ancak o zaman algoritmanız üzerinde yineleme yapmak ve sınır dışı diziyi ortadan kaldırmak mümkün olacaktır.

"Dürtme" yöntemini kullanmak ve formülün yanlış anlaşılması - hatayı ortadan kaldıracaksınız, ancak hesaplamayı yanlış yapacaksınız.

ps Neyi ve neden düşündüğünüzü ayrıntılı olarak açıklayın - kodunuzu ayrıntılı olarak yorumlayabilirsiniz - ve sonra bu hatayı nasıl düzelteceğimizi anlayacağız.