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

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

Только что заметил. Откуда это берётся?

Даты, которые выставлены сейчас в Тестере.

 
fxsaber:

Даты, которые выставлены сейчас в Тестере.

По сути я понял что там должно было быть, но ведь нету. А программное получение этих дат меня очень интересует.

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

По сути я понял что там должно было быть, но ведь нету. А программное получение этих дат меня очень интересует.

TesterDate - это не выставленная через MultiTester дата.

Вы можете запустить MultiTester. Затем прервать. Изменить даты в Тестере. Запустить MultiTester, и он продолжит с теми датами, которые поменяли в Тестере. Так что все логично.

 

Можно выбирать советники.

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

void OnStart()
{
  if (MTTESTER::SetExpertName("Examples\\Moving Average\\Moving Average.ex5"))
    Print(MTTESTER::GetExpertName() + " - OK.");
  else
    Print("Failed.");
}
 
Обновлены все файлы. Добавлен пример запуска нескольких советников.
#include <fxsaber\MultiTester\MultiTester.mqh> // Множественные прогоны/оптимизации в Тестере.

// Эта функция отвечает за формирование списка заданий.
void SetTesterSettings()
{
  static const string ExpertNames[] = {"Examples\\Moving Average\\Moving Average.ex5",
                                       "Examples\\MACD\\MACD Sample.ex5",
                                       "Examples\\Controls\\Controls.ex5",
                                       "Examples\\ChartInChart\\ChartInChart.ex5"};

  const int Size = ArraySize(ExpertNames);

  for (int i = 0; i < Size; i++)
    TesterSettings.Add(ExpertNames[i]);
}


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

Как оказалось, такая штука больше хороша не для поиска символов (хотя так же годится), а для сравнительного анализа советников.

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

Столкнулся с проблемой отключения электричества.

Спасибо, что побудили к написанию этой вещи.

У меня несколько часов шли таски на 2171, где был баг с подвисанием. Увидел на форуме, что вышел 2174. Просто остановил MultiTester, перекомпилировал советники и запустил MultiTester. И он продолжил с того же места, где был остановлен. Неожиданно удобно получилось.

Хороший пример, почему свой инструментарий стоит выкладывать в паблик. Со стороны виднее, что может быть полезно.

 

Доброго дня.

Столкнулся с одним небольшим неудобством.

Дело в том, что я добавил себе "циклы". По умолчанию стоит 6 циклов. Ну понимаете, это когда оптимизация одного символа проходит 6 раз.

Так вот, на днях добавил к одному своему советнику дополнительный блок сигналов. Само собой решил запустить оптимизацию. Поставил 3 цикла. Всё работает, всё хорошо. Но! Я знал, что на некоторых символах советник почти никакой. Не сливает, но и отдачи нет. Вот дело дошло до такого символа, прошёл первый цикл и я вижу по результатам, что дальнейшая оптимизация уже не имеет смысла.

Вот тут и встаёт вопрос - что делать?

Предложение: было бы замечательно, если бы была небольшая панелька типа такого (извините, не художник :)

Тогда бы я, видя что по данному символу перспективы нет, просто нажал бы на кнопку "Пропустить", этот символ бы из очереди был удалён, текущая оптимизация была бы прекращена и началась бы оптимизация следующего символа.

Возможно ли это?


П.С. Сейчас просто нужно ждать ещё два прохода, а проход длиться больше часа. Более двух часов потерянного времени. Жалковато )))
 
Так нажмите просто кнопку Стоп в Тестере, когда ненужный символ запустился.
 
fxsaber:
Так нажмите просто кнопку Стоп в Тестере, когда ненужный символ запустился.

Это как вариант ))) Но если стоит, например, 10 циклов, то придётся кнопку Стоп нажимать 9 раз. ))) А один раз было бы барче (хотелка)))).

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