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

 
Slava :

OnInit sıfırdan farklı bir kod döndürdüğü için test cihazı durduruldu

Bu yüzden istatistik yok.

Teşekkürler bileceğim. İlginç bir şekilde, grafikler hala tamamlanmış işlemler dikkate alınarak oluşturulmaktadır.

 
Andrey Pogoreltsev :

Meksika'yı geçmeye çalışırken, ajanlar hafızayı aşırı yükler ve hiçbir şey yapmazlar ve sahip oldukları görevlerin sayısı yalnızca artar. Günlüklerde aşağıdaki hatalar bulunur:

Aracı günlüklerine bakmanız gerekir.

Hata 14, bu araç için sıfır teklif fiyatı anlamına gelir. Yani sol çubuk tarihe geçti

PS Tekli test yapmak daha iyidir. O zaman hata kesinlikle test aracısının günlüğüne girecektir. Optimize ederken, hatalar yalnızca OnInit'in sonuna kadar görüntülenir.

 

Hepsi kapatıldığında grup simgesi kaybolur, optimizasyon için bir parametre seçme özelliği kaybolur.


 input group "ORDER"
input double K = 30 ;
input double TP_0 = 500 ;
input double MaxLoss = 0.25 ;
input group "FUNCTIONS"
input bool MultipleStopOrders = true ;
input bool CloseAllPosReversSig = true ;
input group "MONEY MANAGEMENT SETTING"
input double StartLot = - 0.01 ;
input group "ORDERS SETTING"
input int MagicNumber_ = 2000 ; // Magic Number
input int Slippage = 50 ;       // Slippage
 
Slava :

Panoda ayarlanmayan danışmanın giriş parametrelerini değiştirmemenizi rica ederiz.

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

Kitaplıklar: MultiTester

fxsaber , 2019.11.06 11:24

Çoklu test cihazı çalıştıktan sonra çok sayıda optimizasyon önbelleğine baktığınızda, aynı şeyi yaparsınız.

  1. Tek bir koşuya başlamak için en iyi geçişi seçersiniz (RMB aracılığıyla).
  2. Beğendiyseniz, optimizasyonu kapatın ve aralığı artırın.
  3. Başlat'a basıyorsunuz.

Çoğu zaman 2. noktada harcanır. Bunu yaparken de sıklıkla hatalar yapılıyor. Yarı otomatikleştirmek istiyorum. Ve bir çözüm var!


Bu metni panonuza kopyalayın

[Tester]
Optimization= 0
FromDate= 2019.01 . 01


Ardından Ayarlar sekmesinde CTRL + V tuşlarına basın. Bu, optimizasyonu otomatik olarak kapatacak ve istenen tarihi ayarlayacaktır.


Tehdit sevinmek için acele ettim. Danışmanın giriş parametreleri, böyle bir arabellek ile varsayılana sıfırlanır.

 
fxsaber :

Panoda ayarlanmayan danışmanın giriş parametrelerini değiştirmemenizi rica ederiz.

Evet. Davranışı düzeltelim.

PS Tanımlanan davranış yeniden üretilmez. Eklenen metin [TesterGirişleri] bölümünü içermiyorsa, uzman ayarları sekmesi hiç etkilenmez

 
Slava :
Evet. Davranışı düzeltelim

Teşekkür ederim!

 
fxsaber :

Teşekkür ederim!

oynanamaz
 
Slava :

PS Tanımlanan davranış yeniden üretilmez. Eklenen metin [TesterGirişleri] bölümünü içermiyorsa, uzman ayarları sekmesi hiç etkilenmez

danışman

 input int Range = 0 ; // 0 .. 100

double OnTester () { return (Range); }


Geri çalma


 
Belki de bu tür düzenli işlevler kimseyi daha da kötüleştirmeyecektir.

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

Mql5 dilinin özellikleri, incelikleri ve çalışma yöntemleri

fxsaber , 2019.11.06 16:57

Bazen, genetik optimizasyonla, sonucu az çok anlamak için ilk birkaç bin geçiş yeterlidir.

Otomatik olarak çok sayıda optimizasyon çalıştırdığınızda, her şeyin daha hızlı sonuçlanmasını istersiniz. Bu nedenle, bir optimizasyon kesme mekanizması gereklidir.

 #include <fxsaber\MultiTester\MTTester.mqh>   // https://www.mql5.com/ru/code/26132

// Выключает Оптимизацию ( и одиночный проход)
bool OptimizationStop( void )
{
   return (!MTTESTER::IsReady() && MTTESTER::ClickStart( false ));
}


Başvuru.

 // Демонстрация прерывания Оптимизации.

sinput int inAmountPasses = 20 ; // Через сколько проходов закончить
input int Range = 0 ; // 0..10000

double OnTester ()
{
   int Data[];
  
   return ( FrameAdd ( NULL , 0 , 0 , Data)); // Сгенерировали TesterPass
}

void OnTesterPass ()
{
   static int Amount = 0 ;
  
   ulong Pass;
   string Name;
   long ID;
   double Value;
   int Data[];

   while ( FrameNext (Pass, Name, ID, Value, Data))
     if (++Amount > inAmountPasses)
    {
       OptimizationStop(); // Как достигли нужного количества проходов, выключили оптимизатор.
      
       break ;
    }
}
 
fxsaber :

danışman


Geri çalma


hadi çözelim