Bugün MT5 terminali güncellendi ve test sırasında "Optimizasyon" penceresi gösterilmiyor - sayfa 22

 
Aleksey Vyazmikin :

Mesele şu ki, INIT_PARAMETERS_INCORRECT genellikle mantıksız/gereksiz değerleri hariç tutarak arama alanını daraltmak için kullanılır, bu da tam numaralandırma kullanılırken optimizasyonu önemli ölçüde hızlandırır . INIT_PARAMETERS_INCORRECT yoksa, genetik basitçe gereksiz seçeneklerle karşılaştı ve onlarla uğraştı, bu nedenle değişkenlerin değerlerini hariç tutmamak bir seçenek değil. Bu yüzden, bir profesyonel olarak bu sorunu aşırı çaba sarf etmeden nasıl çözmenizi önerdiğinizi soruyorum. Tüm doğru değişkenleri elle, boşluksuz yineleme için ve olduğu gibi, INIT_PARAMETERS_INCORRECT değerlerini bilerek hariç tutmak bir seçenek değildir - çok uzundur. Zor sayaçları kullanmak herkese verilmez ve genetiğe de zarar verebilir.

Peki, 1. günde tüm parametrelerden bir geçiş yapıp koda doğru değerlerini yazıp böylece genetik için seçmek için geriye ne kaldı?

Yukarıdaki açıklamalarımı okuyun.

Dünya resminiz genetik algoritma ile uyumlu değil. Nüfusun dörtte birini reddederek öldürürseniz, genetik kayıplarla bile ortaya çıkacaktır. Nüfusun %98'ini öldür - bu evrimin sonu. Arzularınız veya tercih ettiğiniz çalışma yöntemleri ne olursa olsun .

Yukarıda bağladığım malzemeleri okuyun.

Eğitim programı yapmayı bıraktım, üzgünüm. INIT_PARAMETERS_INCORRECT konusunun devamı kapalı, tüm yorumlar silinecek.

[Silindi]  
void collectNecessaryDataOnTick()
{
   //--- считать последние цены на тике
   SymbolInfoTick ( Symbol (),last_tick);
   
   ArrayFree (buf_CCI);
   
   if ( CopyBuffer (handle_CCI, 0 , 0 ,bars_4_tr_cur,buf_CCI) < 0 )               // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
   {                                                                       // если есть ошибки
       Comment ( " Не удалось скопировать данные из индикаторного буфера " );     // то выводим сообщение
       return ;                                                               // и выходим из функции
   }
   bars_4_tr_cur  = 10 ;
   
   return ;
}

Bugünkü güncellemeden önce her şey çalışıyordu. Şimdi - hata mesajı .

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

Bugünkü güncellemeden önce her şey çalışıyordu. Şimdi - hata mesajı .

GetLastError() hangi değeri döndürür?

CopyBuffer'ı çağırmadan önce barlar_4_tr_cur değişkeninin değeri nedir?

handle_CCI göstergesinin hesaplandığı zaman serisinde kaç çubuk var?

[Silindi]  
Slava :

GetLastError() hangi değeri döndürür?

CopyBuffer'ı çağırmadan önce barlar_4_tr_cur değişkeninin değeri nedir?

handle_CCI göstergesinin hesaplandığı zaman serisinde kaç çubuk var?

değişken = 33

M15

   ResetLastError ();
   if ( CopyBuffer (handle_CCI, 0 , 0 , 33 ,buf_CCI) < 0 )               // копируем данные из индикаторного массива в статический массив buf_CCI для дальнейшей работы с ними
   {                                                                       // если есть ошибки
       Comment ( "Не удалось скопировать данные из индикаторного буфера" );     // то выводим сообщение об ошибке
       Print ( GetLastError ());
       return ;                                                               // и выходим из функции
   }

4003 - Bir sistem işlevi çağrılırken yanlış parametre

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

değişken = 33

M15

4003 - Bir sistem işlevi çağrılırken yanlış parametre

Sonraki soru. CCİ göstergesinden veri aldığınızı doğru mu anladım?

Lütfen bana bu göstergeyi oluşturduğun parametreleri söyle.

[Silindi]  
Slava :

Sonraki soru. CCİ göstergesinden veri aldığınızı doğru mu anladım?

Lütfen bana bu göstergeyi oluşturduğun parametreleri söyle.

 //--- активируем хендл индикатора CCI
   handle_CCI = iCCI ( Symbol (), 0 , 14 , PRICE_TYPICAL );
   if (handle_CCI== INVALID_HANDLE )                         // проверяем наличие хендла индикатора
   {
       Comment ( "Не удалось получить хендл индикатора" );   // если хендл не получен, то выводим сообщение об ошибке
       return (- 1 );                                         // завершаем работу с ошибкой
   }
   ArraySetAsSeries (buf_CCI, true );                       // устанавливаем индексацию для массива buf_CCI как в таймсерии
 
Сергей Таболин :

değişken = 33

M15

4003 - Bir sistem işlevi çağrılırken yanlış parametre

tam olarak 33? Bu, 33 numaralı anlık değeri kullanarak doğrudan arama 4003 hatası mı veriyor?

Tekrar kontrol et

[Silindi]  
Slava :

tam olarak 33? Bu, 33 numaralı anlık değeri kullanarak doğrudan arama 4003 hatası mı veriyor?

Tekrar kontrol et

 int OnInit ()
{
............
//--- количество баров для определения трендов CCI
   bars_4_tr_cur  = 33 ;
............
//+--------
   return ( INIT_SUCCEEDED );
}

Tekrarlıyorum. Güncellemeden önce danışman, 3 brokerin demo hesaplarında iyi çalıştı.

Göstergeyi önceki bir sürümden değiştirmeyi bile denedim. Küfür ve bu kadar.

[Silindi]  

Anladım.

Kaydedilmiş parametrelere sahip bir dosya okunurken hata oluştu.

Öyleydi:

       if (filehandle != INVALID_HANDLE )

Değişiklikten sonra çalıştı

       if ( FileIsExist (filename, FILE_COMMON ) && filehandle != INVALID_HANDLE )
 
Сергей Таболин :

Tekrarlıyorum. Güncellemeden önce danışman normal olarak 3 brokerin demo hesaplarında çalıştı.

Göstergeyi önceki bir sürümden değiştirmeyi bile denedim. Küfür ve bu kadar.

Lütfen bu EA'yı çalıştırın:

0'dan 33'e kadar olan çubuklardan iCCI göstergesinden veri almak için her kene değil, döngüde özellikle ayarladım.

Dosyalar:
iCCI.mq5  11 kb