Библиотеки: MultiTester - страница 11

 

Иногда возникает необходимость чистки Tester-папки. Например, скромный размер opt-файл ~ 2Mb. Если проведено 10К оптимизаций, то это уже 20 Gb. 10К символов - аналогично.

Можно столкнуться со слишком распухшей папкой.

 

I tried writing these lines into my EA and example as "Moving Average", my purpose is optimize all my market watch symbols but I've got the following answer, I'd appreciate some help there.


#include <fxsaber\MultiTester\MultiTester.mqh>

and

void SetTesterSettings()


 
herrcrowley:

I tried writing these lines into my EA and example as "Moving Average", my purpose is optimize all my market watch symbols but I've got the following answer, I'd appreciate some help there.

Настройте свой советник в Тестере. После чего запустите в Терминале MultiTester_Example.

 

hi again,

thank so much for your advise, now when I test with "customs symbols" on true, multitester do not work and on false only tests the actual symbol to be tested.


 
herrcrowley:

thank so much for your advise, now when I test with "customs symbols" on true, multitester do not work and on false only tests the actual symbol to be tested.

К сожалению, языковой барьер или другое препятствие не дают мне возможность разобраться, в чем дело.

 

По пока не известной причине множественная прогонка теста выгружает скрипт. Повторяется не всегда, иногда раньше, иногда позже. Только что случилось на 413 итерации, например. IsStopped выставляется в true, и скрипт выгружается, запарывая всю работу посреди дела. Никаких сообщений об ошибках нет. Отладочные сообщения показали, что это происходит после  Sleep(100) после SendMessageW(Handle, WM_COMMAND, ID_EDIT_PASTE, 0);

в вызове static bool SetSettings( const string Str )

Ниже минимальный набор для воспроизведения. Но я подозреваю, что дело всё же в MetaTrader. Билд 2245, но на последнем 2253 то же самое. Билд 2190 тоже этим болеет, возможно раньше тоже.

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:

Ниже минимальный набор для воспроизведения.

Не воспроизводится. Все 1000 заданий отрабатывает. Но у Вас, видимо, стоит галка автоматического открытия чарта бэктеста, раз закрываете по коду чарты. У меня эта опция отключена. Возможно, в этом причина.

 
fxsaber:

стоит галка автоматического открытия чарта бэктеста

Сейчас будет ламерский вопрос. А где эта галка? В MT5 так и не удалось найти.

 
traveller00:

Сейчас будет ламерский вопрос. А где эта галка? В MT5 так и не удалось найти.

 
 
traveller00:

Ваш скрипт должен подвешивать Терминал, если попробовать его снять.

Причина обращения: