Kütüphaneler: MultiTester - sayfa 11

 

Bazen Tester klasörünü temizlemek gerekir. Örneğin, mütevazı bir opt dosyası boyutu ~ 2Mb'dir. Eğer 10K optimizasyon gerçekleştirilirse, bu zaten 20 Gb olur. 10K karakter - benzer şekilde.

Çok şişirilmiş bir klasörle karşılaşabilirsiniz.

 

Bu satırları EA'ma ve örneğime"Hareketli Ortalama" olarak yazmayı denedim, amacım tüm piyasa izleme sembollerimi optimize etmek ama aşağıdaki cevabı aldım, orada biraz yardıma minnettar olurum.


#include <fxsaber\MultiTester\MultiTester.mqh>

ve

void SetTesterSettings()


 
herrcrowley:

Bu satırları EA'ma ve örneğime "Hareketli Ortalama" olarak yazmayı denedim, amacım tüm piyasa izleme sembollerimi optimize etmek ama aşağıdaki cevabı aldım, orada biraz yardıma minnettar olurum.

EA'nızı Test Cihazında kurun. Ardından Terminal'de MultiTester_Example'ı çalıştırın.

 

Tekrar merhaba,

Tavsiyeniz için çok teşekkür ederim, şimdi "gümrük sembolleri" ile doğru olarak test ettiğimde, multitester çalışmıyor ve yanlış olduğunda yalnızca test edilecek gerçek sembolü test ediyor.


 
herrcrowley:

Tavsiyeniz için çok teşekkür ederim, şimdi "gümrük sembolleri" ile doğru olarak test ettiğimde, multitester çalışmıyor ve yanlış olduğunda yalnızca test edilecek gerçek sembolü test ediyor.

Ne yazık ki, dil engeli veya başka bir engel, sorunun ne olduğunu anlamama izin vermiyor.

 

Bilinmeyen bir nedenden dolayı, birden fazla test çalıştırması betiği boşaltıyor. Bu her zaman olmuyor, bazen daha erken, bazen daha geç oluyor. Örneğin 413. yinelemede oldu. IsStopped true olarak ayarlandı ve kod boşaltılarak vakanın ortasında tüm iş mahvedildi. Herhangi bir hata mesajı yok. Hata ayıklama mesajları , SendMessageW(Handle, WM_COMMAND, ID_EDIT_PASTE, 0) sonrasında Sleep(100) sonrasında gerçekleştiğini gösterdi;

static bool SetSettings( const string Str ) çağrısında

Aşağıda oynamak için minimum set bulunmaktadır. Ama sonuçta MetaTrader olduğundan şüpheleniyorum. Yapı 2245, ancak en son yapı 2253'te de aynı. Yapı 2190'da da var, belki daha önce de.

bool CloseAllOtherCharts()
{
  bool Res=false;
  for (long Chart = ::ChartFirst(); Chart != -1; Chart = ::ChartNext(Chart))
  {
    if(Chart != ::ChartID())
      Res |= ::ChartClose(Chart);
  }
  return Res;
}

void StartTest(string SymbName)
{
    string TesterInput = "[Tester]"+
                         "\nExpert=ChanRet"+
                         "\nSymbol="+SymbName+
                         "\nPeriod=M1"+
                         "\nOptimization=0"+
                         "\nModel=4"+
                         "\nFromDate=01.09.2019"+
                         "\nToDate=01.12.2019"+
                         "\nForwardMode=0"+
                         "\nDeposit=10000000"+
                         "\nCurrency=RUR"+
                         "\nProfitInPips=1"+
                         "\nLeverage=100"+
                         "\nExecutionMode=0"+
                         "\nOptimizationCriterion=6"+
                         "\nVisual=0";
    MTTESTER::SetSettings2(TesterInput);
    MTTESTER::ClickStart();
    while(!MTTESTER::IsReady() && !IsStopped())
      Sleep(100);
    CloseAllOtherCharts();
}

void OnStart()
{
  for(int i=0;i!=1000 && !IsStopped();++i)
  {
    StartTest("AFLT-12.19");
    StartTest("ALRS-12.19");
    Print((string)i);
  }
}
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
Документация по MQL5: Константы, перечисления и структуры / Коды ошибок и предупреждений / Ошибки компиляции
  • www.mql5.com
Импортируемая функция не может иметь такого параметра (нельзя передавать указатель, класс или структуру, содержащую динамический массив, указатель, класс и т.д.) Недопустимый возвращаемый тип. Например, такая ошибка будет...
 
traveller00:

Aşağıda oynatma için minimum ayar verilmiştir.

Oynatma yok. 1000 görevin tümü çalışır. Ancak grafikleri kodla kapattığınız için backtest grafiklerinin otomatik açılması için onay kutusunun işaretli olması gerekir. Ben bu seçeneği devre dışı bıraktım. Belki de nedeni budur.

 
fxsaber:

backtest grafiğinin otomatik olarak açılması işaretlenir.

Daha kötü bir soru soracağım. Bu onay kutusu nerede? MT5'te bulamadım.

 
traveller00:

Bu daha acımasız bir soru olacak. Bu onay kutusu nerede? MT5'te bulamadım.

 
traveller00:

Eğer kaldırmaya çalışırsanız betiğiniz Terminal'i askıya almalıdır.