Hatalar, hatalar, sorular - sayfa 2685

 
bilgi arama bulamadım

"Yavaş (parametrelerin tam sayımı)" optimizasyon modunda strateji test cihazı - optimizasyon adımlarının hangi genel değerinde genetik optimizasyona geçer?

Not: Genetik optimizasyonun açılmaması için tam bir numaralandırmanın nasıl yapılacağına dair bir teknik varsa minnettar olurum.
 
Periyodik olarak, MT4 terminali kendiliğinden kapanıyor , terminal günlüğünde bununla ilgili hiçbir şey yok, Windows olaylarında da hiçbir şey yok. Bu tür ayrılmaların nedenini nasıl belirleyebilirsiniz?
 
Igor Makanu :
Not: Genetik optimizasyonun açılmaması için tam bir numaralandırmanın nasıl yapılacağına dair bir teknik varsa minnettar olurum.

Toplu Optimizasyon.

 
ME hata ayıklayıcısındaki (derleme 2370) - StepInto (F11) ve ayarlanan kesme noktalarındaki bir kusur çalışmıyor.
Sorun şu ki, işlevi en az bir kez çağırmak için StepOver eylemini (F10) kullanırsanız, gelecekte bu işlevin hatalarını ayıklamak artık mümkün olmayacaktır.

 void Increment( int &n){
   ++n;
};

void test(){
   int n = 0 ;
   for ( int i = 0 ; i < 100 ; ++i){
       DebugBreak ();
      Increment(n);
   }  
}

void OnStart (){
   test();
}

Oynatma adımları:
1) Kodu hata ayıklama modunda çalıştırın;
2) Kesme noktasına ulaştıktan sonra, StepOver'ı (F10) iki kez yürütün;

Hepsi bu - artık Artış işlevine "girmenin" bir yolu yok, manuel olarak ayarlanan tüm kesme noktaları çalışmaz ve StepInto (F11) işlemi yerine StepOver (F10) gerçekten yürütülür.


 

ME hata ayıklayıcısında hata (derleme 2370) - bir kesme noktası tetiklendikten sonra, (F5) tuşuna basıldığında kod yürütmeye devam etmek yerine, aynı kesme noktası aslında herhangi bir kod yürütülmeden yeniden tetiklenir.

 #include <Generic\ArrayList.mqh>

void OnStart (){
   CArrayList< int > arr;
   for ( int i = 0 ; i < 5 ; ++i){
      arr.Add(i);
      arr.Add( 2 *i);
   }
}

Oynatma adımları:
1)
Her iki satır için manuel olarak bir kesme noktası ayarlayın " arr.Add()";
2) Hata ayıklamayı başlatın (F5);
3) RMB'yi kullanarak ekli <Generic\ArrayList.mqh> dosyasını yeni bir sekmede açın.
4) "bool CArrayList::Add (T item)" işlevinde "if(m_size==ArraySize(m_items))" satırını bulun ve kesme noktasını manuel olarak ayarlayın .
5) "
ArrayList.mqh" sekmesinde kod çalıştırmaya devam edin (F5).

Sonuç olarak, aynı
kesme noktası, herhangi bir gerçek kod yürütmesi olmadan daha önce olduğu gibi tetiklenecektir.

 
MT5 hatası (derleme 2370) - statik bir yapı yönteminde bir kesme noktasının tetiklenmesi, MT terminalinin donmasına neden olur.
Sonuç olarak, yapının statik yönteminin kodunda hata ayıklama olanağı yoktur:

 struct A{
   static void test(){
       DebugBreak ();
   }
};

void OnStart (){
   A::test();
}
 
Igor Makanu :
bilgi arama bulamadım

"Yavaş (parametrelerin tam sayımı)" optimizasyon modunda strateji test cihazı - optimizasyon adımlarının hangi genel değerinde genetik optimizasyona geçer?
 
Andrey Khatimlianskii :

Bu yazışmayı buldum ve göründüğünde okudum - tartışma katılımcısının yasaklanmasının sonucu, bu yüzden kaynağını bulmak istedim

bir parametre için tam numaralandırma modunda test edilmiştir - geçişler genel olarak tam bir numaralandırma için numaralandırılmamıştır - anlamsal konsepte göre değil, geliştiricilerin bazı mantığına göre çalışır

 
Igor Makanu :

bir parametre için tam numaralandırma modunda test edilmiştir - geçişler genel olarak tam bir numaralandırma için numaralandırılmamıştır - anlamsal konsepte göre değil, geliştiricilerin bazı mantığına göre çalışır

Görevler, aracılara gruplar halinde dağıtılır.

1-100 - birinciye, 101-200 - ikinciye vb.

Ve geldikçe sonuçlarda görünürler (1, 101, 2, 102, vb.).

Kolayca sıralanır.

 
Andrey Khatimlianskii :

Görevler, aracılara gruplar halinde dağıtılır.

1-100 - birinciye, 101-200 - ikinciye vb.

Ve geldikçe sonuçlarda görünürler (1, 101, 2, 102, vb.).

Kolayca sıralanır.

Tamam, bu iyi bir cevap, bununla ilgili, orijinal kaynağın bulunamaması üzücü,

GA'nın toplam kaç geçişte açılacağını bulmak için kalır, 100.000.000 geçiş gibi görünse de, bu benim görevlerim için yeterli