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

 
Yevhenii Levchenko :
Alıntılar test/geçmiş klasöründe saklanıyor mu?

Numara.

\history\downloads\symbol\*.dat - arşivden alıntı yapar.

\history\server\*.hst - tırnak işaretleri.

\tester\history\*.fxt - bir test veya optimizasyon çalıştırılırken her seferinde yeniden *.hst dosyalarından oluşturulur.

Ticaret, otomatik ticaret sistemleri ve ticaret stratejilerinin test edilmesi hakkında forum

MT4 geliştiricileri için soru: Test dosyaları

Sergey Basov , 2016.01.14 07:25

Ben bir MT4 geliştiricisi değilim, ancak kişisel deneyimimden yanıt verebilirim.

Bunları kaldırmak hiçbir şeyi etkilemez. Bir dahaki sefere test edildiklerinde veya optimize edildiklerinde yeniden oluşturulacaklar.

Alıntılar, test cihazının her seferinde *.fxt dosyalarını oluşturduğu *.hst dosyalarında saklanır.


 
Sergey Basov :

Numara.

\history\downloads\symbol\*.dat - arşivden alıntı yapar.

\history\server\*.hst - tırnak işaretleri.

\tester\history\*.fxt - bir test veya optimizasyon çalıştırılırken her seferinde yeniden *.hst dosyalarından oluşturulur .


Bu kano, başlangıçta diski yoğun bir şekilde yüklüyor ... Her seferinde yenileniyorsa, test cihazı bunu neden silmiyor? Bu bir şekilde yapılandırılabilir mi?

 
Nauris Zukas :

Merhaba! Mevcut ayın bar açılış saatini almak istedim ama 4074 (ERR_NO_MEMORY_FOR_HISTORY) hatası aldım. Ayrıca, 1 Haziran'dan itibaren test etmeye başlarsanız, her şey doğru bir şekilde çıkıyor, ancak zaten 2 Haziran'dan itibaren bir hata vermeye başlaması da ilginç. Mevcut ayın sorununu nasıl çözecek?

Merhaba!

Başka bir aracıdan yüklenen teklifleri test ederken aynı hata 4074 ( ERR_NO_MEMORY_FOR_HISTORY ) ile karşılaştım. Ve bunlar kullandığım ilk üçüncü taraf alıntıları değil. Diğerlerinde bu hata görünmedi. Hatanın nedeni nedir ve nasıl düzeltilir, belki birileri zaten çözmüştür?

 

MT5'teki en basit kod neden MT4'tekinden tamamen farklı çalışıyor? Örneğin, MT4'te hareketli ara belleğin ortalama değerini hesaplayan aşağıdaki kod:

 for ( int i= 0 ; i<nLimit; i++){
         double value ;
         for ( int k=i; k<i+AveragePeriod; k++){
             value +=Buffer1[k];
         }
         AverageBuffer[i]= value /AveragePeriod;
      }

...MT5'te çalışmıyor. Aşağı yukarı benzer bir şekilde çalışmak için (yazma yöntemiyle belirlenir) şu şekilde gereklidir:

 for ( int i= 0 ; i<nLimit; i++){
         double value ;
         for ( int k=i; k<i+AveragePeriod; k++){
             value +=Buffer1[k];
         }
         value /=(AveragePeriod+ 1 );
         AverageBuffer[i]= value ;
      }

Ve sonra, ilk 7 arabellek bazı fahiş değerler gösteriyor. Diğer her şey normal görünüyor. Çenem zaten böyle bir önemsemeden sıkışık durumda)

Bunu doğru bir şekilde nasıl çözeceğimi söyle?

 

Hesaplamalar arasına Yorum eklendi ve her şey yeniden çizildi :D

 for ( int i= 0 ; i<nLimit; i++){
         double value ;
         for ( int k=i; k<i+AveragePeriod; k++){
             value +=Buffer1[k];
         }
         if (i== 2 )
           

  Comment( value ); // вот это добавил

         value /=(AveragePeriod+ 1 );          AverageBuffer[i]= value ;                }
Amaç ne?
 
iFractal kullanarak böyle bir koşulu nasıl yazacağımı anlayamıyorum? Eğer bir:
İlk Fractal_up < İkinci Fractal_up sonra.....
Ve aşağı fraktal ile aynı
 
Vladimir Baskakov :
iFractal kullanarak böyle bir koşulu nasıl yazacağımı anlayamıyorum? Eğer bir:
İlk Fractal_up < İkinci Fractal_up sonra.....
Ve aşağı fraktal ile aynı

Hafta sonu. aptalı oynuyoruz...

 
Vladimir Baskakov :
iFractal kullanarak böyle bir koşulu nasıl yazacağımı anlayamıyorum? Eğer bir:
İlk Fractal_up < İkinci Fractal_up sonra.....
Ve aşağı fraktal ile aynı

bitmiş olandan, bunun gibi fraktallar arıyorum:

 //_______________________________________________________________________
int GetLastFractals( int bar, int mode) // bar - с какого бара начинать поиск, mode = MODE_UPPER или MODE_LOWER , результат № бара где найден фрактал
  {
   int i=bar; 
   while (i< Bars && iFractals ( NULL , 0 ,mode,i)< _Point ) i++;
   return (i);
  }
//_______________________________________________________________________

İlk fraktalı ve bir sonraki Yukarıyı bulmak için 2 kez aramanız gerekir, bunun gibi bir şey:

 int barfrup_1 = GetLastFractals( 1 ,MODE_UPPER);
int barfrup_2 = GetLastFractals(barfrup_1+ 1 ,MODE_UPPER);
 
Yevhenii Levchenko :

Hesaplamalar arasına Yorum eklendi ve her şey yeniden çizildi :D

Amaç ne?

Gösterge arabellekleri için ArraySetAsSeries (true).

 
Igor Makanu :

bitmiş olandan, bunun gibi fraktallar arıyorum:

İlk fraktalı ve bir sonraki Yukarıyı bulmak için onu 2 kez çağırmanız gerekir, bunun gibi bir şey:

Teşekkürler, çalışıyor, yalnızca bir koşul karşılandı:

         if (barfrup_1<barfrup_2 && barfrdown_1<barfrdown_2)

Ve ihtiyacım var

         if (barfrup_1<barfrup_2 && barfrdown_1>barfrdown_2)

Ve nedense onunla pozisyon açmıyor