Тестирование стратегий по расписанию с автоподстановкой результата в советника - страница 3

 
Renat:

Нужен полноценный конфиг с обязательным указанием активного логина в [Common]. На урезанных конфигах работать не будет.

Также посмотрите логи.

Попробовал с полноценным. Эффект тот же. В логах пишет, что терминал загружен с использованием указанного ini. В действительности, всё приведенное по ссылке соответствует содержимому файла Config\terminal.ini, который грузится по умолчанию. И ведь при его загрузке автозапуск тестера не происходит. Значит должен быть какой-то дополнительный параметр, отвечающий за это. Например, в terminal.ini в разделе Tester есть параметры OptMode, OptCrit, про которые по указанной ссылке не упоминается вообще.
 
e2878:
Попробовал с полноценным. Эффект тот же. В логах пишет, что терминал загружен с использованием указанного ini. В действительности, всё приведенное по ссылке соответствует содержимому файла Config\terminal.ini, который грузится по умолчанию. И ведь при его загрузке автозапуск тестера не происходит. Значит должен быть какой-то дополнительный параметр, отвечающий за это. Например, в terminal.ini в разделе Tester есть параметры OptMode, OptCrit, про которые по указанной ссылке не упоминается вообще.

Аккаунт, который указан в конфиге, существует и активен в терминале?

Что пишется в логах окна тестера стратегий?

 

Вот что достаточно было заполнить, чтобы работал наш тестер экспертов на чемпионате:

   LPCWSTR      str_common=L"[Common]\r\n"
   L"Login=1100006\r\n"
   L"ProxyEnable=0\r\n"
   L"KeepPrivate=1\r\n"
   L"NewsEnable=0\r\n\r\n"

   L"[Charts]\r\n"
   L"ProfileLast=championship\r\n"
   L"MaxBars=100000000\r\n"
   L"SaveDeleted=0\r\n\r\n"

   L"[Objects]\r\n"
   L"ShowPropertiesOnCreate=0\r\n"
   L"SelectOneClick=0\r\n"

   L"[Email]\r\n"
   L"Enable=0\r\n\r\n"

   L"[Tester]\r\n"
   L"Expert=%S\r\n"
   L"Symbol=%S\r\n"
   L"Period=%S\r\n"
   L"Deposit=10000\r\n"
   L"Login=1100006\r\n"
   L"Model=0\r\n"
   L"Optimization=0\r\n"
   L"FromDate=%d.01.01\r\n"
   L"ToDate=%d.08.01\r\n"
   L"Report=TesterReport\r\n"
   L"ReplaceReport=1\r\n"
   L"ShutdownTerminal=1\r\n\r\n";

Запускался терминал так:

"%s\\MetaTrader\\terminal64.exe /portable /config:%s\\MetaTrader\\Config\\starter.ini"

Обратите внимание на /portable - может конфиги и данные совсем в другом месте лежат.

Обязательно условие - логин должен быть авторизован в терминале, а пароль у него должен быть сохранен.

Файл конфига надо обязательно сделать в unicode кодировке.

 
Renat:

Вот что достаточно было заполнить, чтобы работал наш тестер экспертов на чемпионате:

Запускался терминал так:

Обратите внимание на /portable - может конфиги и данные совсем в другом месте лежат.

Обязательно условие - логин должен быть авторизован в терминале, а пароль у него должен быть сохранен.

Файл конфига надо обязательно сделать в unicode кодировке.

В таком виде заработало

Буду разбираться, в чем отличие от моего первоначального сценария.

Спасибо! 

 
Ну вот как запускать тестер разобрались, а как программно получать от него результаты оптимизации по критерию и как их потом записывать в сет?
 
Paragormon:
Ну вот как запускать тестер разобрались, а как программно получать от него результаты оптимизации по критерию и как их потом записывать в сет?

Добавьте в тестируемого советника блок записи результатов в файл. А потом анализируйте их и записывайте сет.

OnTester в помощь. 

 
Это дублирование работы тестера. Получается, что разработчики сказали А, но не сказали Б. 
 
Paragormon:
Это дублирование работы тестера. Получается, что разработчики сказали А, но не сказали Б. 
Ознакомьтесь вот с этими функциями:  OnTesterInit(), OnTester(), OnTesterPass() и OnTesterDeinit(). Б уже сказано. :) 
 
tol64:
Ознакомьтесь вот с этими функциями:  OnTesterInit(), OnTester(), OnTesterPass() и OnTesterDeinit(). Б уже сказано. :) 

Вы забыли указать отдельно ещё эту ссылку "Работа с результатами оптимизации"

Мы как разработчики сами очень активно используем сбор фреймов при оптимизации для выявления трудновоспроизводимых багов тестерных агентов. (Где то здесь, на форуме, мы уже показывали пример Moving_Average_Frames)

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