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

 
fxsaber:

Библиотека MTTester давно позволяет сделать абсолютно все, что в состоянии сделать юзер через GUI.

   Осваиваю  MTTester.

    Подключаю только

#include <fxsaber\MultiTester\MTTester.mqh>

   Не могу понять, как дождаться окончания тестирования ? Запускаю такие строки 

MTTESTER::Run( NULL,SimvolTorg[i]);
Sleep(10000);
MTTESTER::IsReady();

     В результате ожидания окончания тестирования не происходит. Нужно как то самому решать этот вопрос ? Или уже есть готовое решение ?

 
pivomoe:

В результате ожидания окончания тестирования не происходит. Нужно как то самому решать этот вопрос ? Или уже есть готовое решение ?

Выше были примеры. Сам использую только четыре функции:

MTTESTER::IsReady - Тестер готов к запуску.
MTTESTER::ClickStart - Нажать на кнопку Старт/Стоп.
MTTESTER::GetSettings - получить полные текушие настройки тестера.
MTTESTER::SetSettings2 - задать любые настройки тестера.
 
while(1)
        {
         Sleep(1000);
         if( MTTESTER::IsReady() ) break;
        }
Спасибо. Помогло.
 
pivomoe:
Спасибо. Помогло.

И еще четыре для более продвинутого использования.

MTTESTER::GetPassesDone - количество выполненных прогонов идущей оптимизации.
MTTESTER::GetLastOptCache - последний opt-файл.
MTTESTER::GetLastTstCache - последний tst-файл.
MTTESTER::CloseNotChart - закрывает график оптимизации.


Больше ничего не использую.

 
Подскажите, есть ли возможность добавить функцию - в случае отключенной оптимизации при проверке уже оптимизированного советника в виде автоматического нажатия вкладок в тестере "график" и "бэктест" с паузами в 15 сек в промежутке между сменой проверяемой пары и таймфрейма? Если в оптимизированном советнике нужно проверить много пар по многим таймфреймам то применить мультитестер не получается ввиду того что необходимо убедиться на каждом инструменте в корректности введенных показателей из оптимизации. Или где-то вставить паузу чтобы было время просмотреть результаты прошедшего теста.  Спасибо
 
Il'ya Matviyenko:
Подскажите, есть ли возможность добавить функцию - в случае отключенной оптимизации при проверке уже оптимизированного советника в виде автоматического нажатия вкладок в тестере "график" и "бэктест" с паузами в 15 сек в промежутке между сменой проверяемой пары и таймфрейма? Если в оптимизированном советнике нужно проверить много пар по многим таймфреймам то применить мультитестер не получается ввиду того что необходимо убедиться на каждом инструменте в корректности введенных показателей из оптимизации. Или где-то вставить паузу чтобы было время просмотреть результаты прошедшего теста.  Спасибо

Переключение между вкладками даже не пробовал делать, т.к. для меня это слишком сложно. Возможно, у кого-то получится, и поделится здесь. Пока никак.

 
fxsaber:

Переключение между вкладками даже не пробовал делать, т.к. для меня это слишком сложно. Возможно, у кого-то получится, и поделится здесь. Пока никак.

Был же (может и есть) такой код

user32::SendMessageW(user32::GetDlgItem(Handle, 0x2712), WM_LBUTTONDOWN, 1, 0x17007C); // Выбор вкладки "Настройки"

Другие вкладки должны быть аналогично. Или я не про то?

 
traveller00:

Был же (может и есть) такой код

Точно! Запамятовал.

 

Все оказалось гораздо проще. В MultiTester.mqh достаточно добавить:

.....................

void OnTimer()
{
  static const int Size = TesterSettings.GetSize();
  static bool IsRun = false;
  static int Pos = 0;
  static datetime StartTime = 0;
  static bool Init = false;
  static int Attempts = 0;
  static int Errors = 0;
  
  if(MessageBox("Продолжить?",MB_OK)==IDOK) {
 
  if (!Size || IsStopped())
  {
    EventKillTimer();
    ExpertRemove();

  }

................

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

 
Il'ya Matviyenko:

Все оказалось гораздо проще. В MultiTester.mqh достаточно добавить:

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

Именно по этой причине все выложено с открытым исходным кодом.