MetaTrader 5 Strateji Test Cihazı: Hatalar, Hatalar, İyileştirme Önerileri - sayfa 62

 
fxsaber :

1. Arşivi temiz bir Terminal içeren klasöre açın.


2. fxsaber\CreateSymbol.ex5 komut dosyasını çalıştırın.


Birkaç saniye sonra özel sembol tablosu görünecektir.


2. Test Cihazını (CTRL+R) açın ve işaretli ayarı seçin.



3. Beliren Test Cihazı penceresinde Başlat'a tıklayın.



4. Optimizasyonun ilk sonuçlarından sonra Durdur'a basın.


5. Test Cihazı Ayarlarında, aralığın başlangıç tarihini 2019.11.01 olarak değiştirin ve Başlat'a tıklayın.


6. Optimizasyon sonuçlarında, yanıltıcı değerler ( kaynaktan , birbirlerinden 50'den fazla farklı olamayacakları açıktır).


Bu adımları defalarca tekrarladım. Sorun %100 tekrarlandı. Kim deneyecek, haber ver.

Deneyeceğim.

Siz de, yeniden üretmeye çalıştığım keneleri deneyin. Sunucu Meta Alıntıları-Demo

1. Terminal iletişim kutusundan CHFJPY'ye dayalı özel bir sembol oluşturuldu (yalnızca adı değiştirildi)

2. Birkaç yıl boyunca bir csv dosyasına ihraç edilen CHFJPY keneleri

3. Bu onay işaretlerini CHFJPY.custom dosyasına aktarın

4. Genetik optimizasyon için Uzman Danışmanınızı başlattı. Çeşitli kombinasyonlarda

 
Slava :

Siz de, yeniden üretmeye çalıştığım keneleri deneyin. Sunucu Meta Alıntıları-Demo

yeniden üretildi. Bu giriş aralığı ile


Sonuçlar birbirinden 50'den fazla farklılık göstermemelidir.


Artan düzende sıralayın ve ardından üst ve alt sıraları karşılaştırın.


Tehdit Buradan 3-6 arasındaki adımları tekrar edin. aynı tarihlerle.

 

Orijinal CHFJPY'yi MQ-Demo'da denedim. Yeniden üretildi!

  1. Zaman aralığını belirledim ve GA'yı başlattım.
  2. Tüm Temsilcilerden ilk birkaç sonuç geldiğinde Durdur'a basıyorum.
  3. Çılgın sonuçlar yoksa, zaman aralığını değiştirerek (yalnızca başlangıç tarihini) 1. adıma giderim.
Üç deneme ve işte sonuç.

 2020.02 . 21 08 : 38 : 14.104 Core 5   genetic pass ( 0 , 252 ) returned result 965118462.000000 in 0 : 00 : 01.114
2020.02 . 21 08 : 38 : 14.114 Core 2   genetic pass ( 0 , 111 ) returned result 686545176.000000 in 0 : 00 : 00.999
2020.02 . 21 08 : 38 : 14.114 Core 2   genetic pass ( 0 , 112 ) returned result 686545168.000000 in 0 : 00 : 01.011
2020.02 . 21 08 : 38 : 14.332 Core 4   genetic pass ( 0 , 76 ) returned result 1953417341.000000 in 0 : 00 : 01.342
2020.02 . 21 08 : 38 : 14.332 Core 8   genetic pass ( 0 , 181 ) returned result 2212155593.000000 in 0 : 00 : 01.419
2020.02 . 21 08 : 38 : 14.395 Core 3   genetic pass ( 0 , 146 ) returned result 1326263652.000000 in 0 : 00 : 01.154
2020.02 . 21 08 : 38 : 14.871 Core 1   genetic pass ( 0 , 2 ) returned result 1143628048.000000 in 0 : 00 : 01.324
 
fxsaber :

Orijinal CHFJPY'yi MQ-Demo'da denedim. Yeniden üretildi!

  1. Zaman aralığını belirledim ve GA'yı başlattım.
  2. Tüm Temsilcilerden ilk birkaç sonuç geldiğinde Durdur'a basıyorum.
  3. Çılgın sonuçlar yoksa, zaman aralığını değiştirerek (yalnızca başlangıç tarihini) 1. adıma giderim.
Üç deneme ve işte sonuç.

Ben de aynı şeyi yapıyorum. Oynanabilir değil.

Test aracısı günlüklerini alalım!

 
Slava :

Ben de aynı şeyi yapıyorum. Oynanabilir değil.

Test aracısı günlüklerini alalım!

Tüm günlükleri ekledim.

Dosyalar:
TesterLogs.zip  56 kb
 
fxsaber :

Tüm günlükleri ekledim.

Sorunu özel forex'te bile değil, normal forex CHFJPY'de yeniden oluşturdunuz.
 
Slava :
Sorunu özel forexte bile değil, normal forex CHFJPY'de yeniden oluşturdunuz.

Evet, düzenli olarak. Pasajlarda ne tür keneler olduğu ilginç hale geldi, bu yüzden danışmana birkaç satır ekledim.

 // Критерий оптимизации - сумма входных параметров + сумма нецелых частей секунды каждого тика (в миллисекундах).

input int inFakeRange1 = 0 ;
input int inFakeRange2 = 0 ;
input int inFakeRange3 = 0 ;
input int inFakeRange4 = 0 ;
input int inFakeRange5 = 0 ;

long Sum = inFakeRange1 + inFakeRange2 + inFakeRange3 + inFakeRange4 + inFakeRange5;

MqlTick Ticks[ 1000 ];
int Count = 0 ;

void OnTick ()
{
   MqlTick Tick;

   if ( SymbolInfoTick ( _Symbol , Tick))
  {
    Sum += Tick.time_msc % 1000 ;
    
     if ( MQLInfoInteger ( MQL_TESTER ) && (Count < ArraySize (Ticks))) // Запоминаем тики
      Ticks[Count++] = Tick;
  }
}

double OnTester ()
{
   FrameAdd ( __FILE__ , Count, Sum, Ticks); // Отправляем тики через фрейм
  
   return (( double )Sum);
}

void OnTesterPass ( void )
{
   ulong Pass;
   string Name;
   long id;
   double Value;  

   MqlTick Ticks2[];
  
   while ( FrameNext (Pass, Name, id, Value, Ticks2)) // Принимаем фрейм-тики
  {
     FileSave ( __FILE__ + "\\" + ( string )Pass + ".bin" , Ticks2); // Сохраняем на диск
    
     Print (( string )Pass + " - " + ( string )Value);
  }
}


Sonra iki dosya alıp bir komut dosyası aracılığıyla karşılaştırdım.

 #include <TypeToBytes.mqh> // https://www.mql5.com/ru/code/16280

void OnStart ()
{
   MqlTick Ticks1[];
   MqlTick Ticks2[];
  
   const int Size = ( int ) MathMin ( FileLoad ( "88021.bin" , Ticks1), FileLoad ( "11921.bin" , Ticks2)); // Считали тики из файлов.
  
   int Count = 0 ;
  
   for ( int i = 0 ; (i < Size) && (Count < 10 ); i++)
     if (_R(Ticks1[i]) != Ticks2[i]) // Если тики отличаются, выводим их значения.
    {
       Print (i);
      
       ArrayPrint (Ticks1, _Digits , NULL , i, 1 );
       ArrayPrint (Ticks2, _Digits , NULL , i, 1 );
      
       Print ( "------------" );
      
      Count++;
    }
}


Sonuç.

 0
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
1
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
2
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
3
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
4
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
5
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
6
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
7
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
8
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000
------------
9
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.08 . 28 23 : 27 : 03 108.10400 108.12500 0.0000          0 1567034823177      134        0.00000
                 [time]     [bid]     [ask] [last] [volume]    [time_msc] [flags] [volume_real]
[ 0 ] 2019.10 . 11 21 : 21 : 11 108.71800 108.74100 0.0000          0 1570828871198        4        0.00000


Optimizasyon 2019.06.01 tarihinden itibaren gerçekleştirilmiştir. Sonuçlar, ilk kenelerin farklı bir tarihten geldiğini açıkça göstermektedir. Ve bu tarihler farklı.


Tehdit ek bir kontrol yaptım. Her sanrılı geçişte kaydedilen tikler değişmez: ilk tik sonuncuya eşittir. Genel olarak, GA geçişleri bazı garip işaret dizilerini takip eder.

 
fxsaber :

Genel olarak, GA geçişleri bazı garip işaret dizilerini takip eder.

Tam numaralandırma modunda yeniden üretilir. Sorun, tüm Optimizasyon modlarını etkiler.

 
fxsaber :

Evet, düzenli olarak. Pasajlarda ne tür keneler olduğu ilginç hale geldi, bu yüzden danışmana birkaç satır ekledim.


Sonra iki dosya alıp bir komut dosyası aracılığıyla karşılaştırdım.


Sonuç.


Optimizasyon 2019.06.01 tarihinden itibaren gerçekleştirilmiştir. Sonuçlar, ilk kenelerin farklı bir tarihten geldiğini açıkça göstermektedir. Ve bu tarihler farklı.

Efekt, yalnızca önceki optimizasyon "Durdur" düğmesinden planlanandan önce tamamlandığında mı görünüyor? Yoksa normal sonlandırmada da mı?
 
Slava :
Efekt, yalnızca önceki optimizasyon "Durdur" düğmesinden planlanandan önce tamamlandığında mı görünüyor? Yoksa normal sonlandırmada da mı?

Durdur'a tıklamadan önce, günlüklerde ve Optimizasyon tablosunda hatalı geçişlerin zaten sayıldığını görüyorum. Sonra Durdur'a basıyorum çünkü. devam etmenin bir anlamı yok.

soruyu yanlış anlamışım

Evet, kural olarak, önceki Optimizasyonda en az bir kez Durdur'a tıklamanız gerekir. Ancak hatalı bir Optimizasyonla karşılaştığınız anda, aşağıdakilerin tümü de hatalı hale gelir (Zaman aralığını zaten değiştirmiyorum).


Belki birisi oynatmaya katılır. Sizin için çalışmaması garip, ancak temiz Terminalimde hızla çoğalıyor.


Tehdit Ajanlar tarafında maksimum günlük sayısına sahip bir tür kapalı betaya sahip olmak güzel olurdu. O zaman makinemdeki günlükler sorunu yerelleştirmiş olabilir.

Neden: