MT geliştiricileri için değil! INIT_PARAMETERS_INCORRECT nasıl değiştirilir? - sayfa 11

 
Сергей Таболин :

Genel optimizasyon sırasında OnTester() içindeki "geçersiz" parametreleri filtreleme fikrini buldum:

INIT_PARAMETERS_INCORRECT sonuçlarını görünümden kaldırmak için genetiğe müdahale etmeden ortaya çıkıyor.

Hemen başka bir soru ortaya çıktı: Bu durumda karda "derin bir eksi" vermek mümkün mü?

bu çok yavaş bir yöntemdir. Tüm pasajı işlemek için kaynak harcıyoruz.

 
Mikhail Mitin :

bu çok yavaş bir yöntemdir. Tüm pasajı hesaplamak için kaynakları harcıyoruz.

İki kötülükten...

 
Mikhail Mitin :

bu çok yavaş bir yöntemdir. Tüm pasajı işlemek için kaynak harcıyoruz.

INIT_PARAMETERS_INCORRECT_ONTESTER girin - OnTester'a aktarın.

 

Bu sorunu nasıl çözdüm (birkaç seçenek):

  • değerine bağlı olarak ayrı bir parametre oluşturulur, diğer değerler değiştirilir (yukarıdaki birkaç mesajdaki açıklama). Optimizasyon sadece bu parametre içindir
  • hala 1 seçenek var bu durumdan nasıl çıktım ama uygulaması kolay değil:
    1. yalnızca gerekli parametrelerin bir listesinin bulunduğu bir csv dosyası oluşturdu
    2. OnInit'te dosya okuma, bir dosyadan değerler okuma ve parametrelere atama (Paylaşım bayrağıyla dosyaları okuma)
    3. sadece 1 parametre optimize edildi (csv dosyasındaki satır numarası)
  • bir csv dosyasından mqh dosyası oluşturmak için bir algoritma yazdı (yukarıdaki noktalara benzer şekilde, sadece hız daha hızlı) ve bunu Expert Advisor'a bağladı.

 
Mikhail Mitin :

Bu sorunu nasıl çözdüm (birkaç seçenek):

  • değerine bağlı olarak ayrı bir parametre oluşturulur, diğer değerler değiştirilir (yukarıdaki birkaç mesajdaki açıklama). Optimizasyon sadece bu parametre içindir
  • hala 1 seçenek var bu durumdan nasıl çıktım ama uygulaması kolay değil:
    1. yalnızca gerekli parametrelerin bir listesinin bulunduğu bir csv dosyası oluşturdu
    2. OnInit'te dosya okuma, bir dosyadan değerler okuma ve parametrelere atama (Paylaşım bayrağıyla dosyaları okuma)
    3. sadece 1 parametre optimize edildi (csv dosyasındaki satır numarası)
  • bir csv dosyasından mqh dosyası oluşturmak için bir algoritma yazdı (yukarıdaki noktalara benzer şekilde, sadece hız daha hızlı) ve bunu Expert Advisor'a bağladı.

Ve bu, yalnızca bir değişkeniniz varsa, genetik bir algoritma uygulamanıza nasıl izin verir?

 

Aklıma geldi! ))))

OnInit satırından

   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_profit)                   return ( INIT_PARAMETERS_INCORRECT );
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_stop)                     return ( INIT_PARAMETERS_INCORRECT );
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && shift_correction_HMA7C != 5 )   return ( INIT_PARAMETERS_INCORRECT );

taşınmak

 void OnTick ()
{
//--- пропустить бесполезные проходы оптимизации
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_profit)                                 ExpertRemove ();
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && move_stop)                                   ExpertRemove ();
   if (( MQLInfoInteger ( MQL_OPTIMIZATION ) || MQLInfoInteger ( MQL_TESTER )) && period_HMA7C == 0 && shift_correction_HMA7C != 5 )                 ExpertRemove ();

Genetik karışmaz ve PARAMETERS_INCORRECT hesaplanmaz. )))

 
Сергей Таболин :

Aklıma geldi! ))))

OnInit satırından

taşınmak

Genetik karışmaz ve PARAMETERS_INCORRECT hesaplanmaz. )))

İlginç bir karar. Ve genetik nasıl başarılı olur, bir torun içine düşmez?

 
Aleksey Vyazmikin :

İlginç bir karar. Ve genetik nasıl başarılı olur, bir torun içine düşmez?

Her şey yolunda. Çökmez. ))) En azından şimdilik. Bir yerde birçok geçersiz parametreye sahip bir baykuş vardı. Üzerinde optimizasyon çalıştırmanız ve görmeniz gerekecek.

Ve transfer fikri, genetiğin tam olarak başlatma sırasında tökezlediği gerçeğinde yatmaktadır. Ve kontrol OnTick'e taşınırsa, başlatma iyi gider, test başlar, hemen biter ve genetik, geçişin sonucunu sıfıra alır.

 
Сергей Таболин :

Her şey yolunda. Çökmez. ))) En azından şimdilik. Bir yerde birçok geçersiz parametreye sahip bir baykuş vardı. Üzerinde optimizasyon çalıştırmanız ve görmeniz gerekecek.

Ve transfer fikri, genetiğin tam olarak başlatma sırasında tökezlediği gerçeğinde yatmaktadır. Ve kontrol OnTick'e taşınırsa, başlatma iyi gider, test başlar, hemen biter ve genetik, geçişin sonucunu sıfıra alır.

Çökmemesi güzel. Kodun özü açıktır, ancak özellikle erken çıkış için birçok koşul varsa, yürütmeyi yalnızca bir kez eklerdim.

 
Aleksey Vyazmikin :

Çökmemesi güzel. Kodun özü açıktır, ancak özellikle erken çıkış için birçok koşul varsa, yürütmeyi yalnızca bir kez eklerdim.

Bahsettiğim baykuşun optimizasyonu iyi gidiyor. )))

İyi bir fikir. Bir doğrulama bayrağı eklemeniz gerekir.