Автоматизированный выбор результата тестирования оптимизации для проведения тестирования

 

Добрый день!


Пишу скрипт для автоматизации оптимизации советников. Тут все понятно: выполнил MT5 с соответствующими файлами настройки, и вуаля! Встал вопрос: как можно после получения результатов оптимизации извне получить доступ и проанализировать результаты оптимизации, чтобы выбрать тот или иной сет параметров советника, изменить пару параметров и запустить с ними тест советника (без оптимизации)? Есть идеи?

 
Terpentrator:

Добрый день!


Пишу скрипт для автоматизации оптимизации советников. Тут все понятно: выполнил MT5 с соответствующими файлами настройки, и вуаля! Встал вопрос: как можно после получения результатов оптимизации извне получить доступ и проанализировать результаты оптимизации, чтобы выбрать тот или иной сет параметров советника, изменить пару параметров и запустить с ними тест советника (без оптимизации)? Есть идеи?

Зачем "извне" ? 

Я прямо в эксперте анализирую результаты оптимизации, и в лог пишу уже готовые данные. Если нужна многократная переоптимизация - пишем set-файл, который и будет использоваться в следующей оптимизации. 

Или я что-то не учитываю? 

 
TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.
TesterDashboard - эффективное привлечение эволюционной интеллектуальной машины к поиску закономерностей.
  • 2021.10.14
  • www.mql5.com
Идея не нова, вопрос был только в реализации. Платформа MetaTrader 5 обладает возможностями автоматизации Тестера. Расчет огромного количества данных на истории реальных тиков - обыденность . Проверка
 
Georgiy Merts #:

Зачем "извне" ? 

Я прямо в эксперте анализирую результаты оптимизации, и в лог пишу уже готовые данные. Если нужна многократная переоптимизация - пишем set-файл, который и будет использоваться в следующей оптимизации. 

Или я что-то не учитываю? 

Дело в том, что мне надо провести ряд оптимизаций, а потом по отдельным наборам параметров результатов оптимизации провести тестирование. Я планирую заряжать это пакетом на ночь или пару дней, а по окончании рассматривать результаты.  set-файл, который ты создаёшь, потом надо будет руками загрузить и запустить новую оптимизацию. Я не хочу это делать руками. 

 
Terpentrator #:

Дело в том, что мне надо провести ряд оптимизаций, а потом по отдельным наборам параметров результатов оптимизации провести тестирование. Я планирую заряжать это пакетом на ночь или пару дней, а по окончании рассматривать результаты.  set-файл, который ты создаёшь, потом надо будет руками загрузить и запустить новую оптимизацию. Я не хочу это делать руками. 

Ну, так анализируй автоматически set-файл, он имеет крайне простой формат, и автоматически загружай на новую оптимизацию.

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

 
Georgiy Merts #:

Ну, так анализируй автоматически set-файл, он имеет крайне простой формат, и автоматически загружай на новую оптимизацию.

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

Нет. SET-файл - это настройки робота. А мне надо проанализировать результаты оптимизации после её завершения и по определённым параметрам выбрать тот набор параметров (данные для SET-файла), который мне нужен. Пусть для начала это будет результат с наилучшим значением критерия оптимизации. Как получить настройки робота, которые привели в нему? Ну или SET-файл им соответствующий, что одно и то же. 

 
Terpentrator #:

Нет. SET-файл - это настройки робота. А мне надо проанализировать результаты оптимизации после её завершения и по определённым параметрам выбрать тот набор параметров (данные для SET-файла), который мне нужен. Пусть для начала это будет результат с наилучшим значением критерия оптимизации. Как получить настройки робота, которые привели в нему? Ну или SET-файл им соответствующий, что одно и то же. 

Организуй анализ фреймов. FrameInputs() получает входные параметры отдельного прохода. 

В OnTesterPass() получаешь результат каждого прохода, и если надо - записываешь эти данные.  А потом, в OnTesterDeinit() - анализируешь все, что получил, выбираешь лучший проход, и его параметры используешь для построения SET-файла, далее, в пакетном режиме запускаешь следующую итерацию с этим файлом. Снова во время оптимизации записываешь результаты проходов, в конце анализируешь, выбираешь лучший проход, и снова строишь новый SET-файл, который опять используешь для новой итерации. И так - пока не найдешь оптимальный SET-файл. 

 
Georgiy Merts #:

Организуй анализ фреймов. FrameInputs() получает входные параметры отдельного прохода. 

В OnTesterPass() получаешь результат каждого прохода, и если надо - записываешь эти данные.  А потом, в OnTesterDeinit() - анализируешь все, что получил, выбираешь лучший проход, и его параметры используешь для построения SET-файла, далее, в пакетном режиме запускаешь следующую итерацию с этим файлом. Снова во время оптимизации записываешь результаты проходов, в конце анализируешь, выбираешь лучший проход, и снова строишь новый SET-файл, который опять используешь для новой итерации. И так - пока не найдешь оптимальный SET-файл. 

Согласен. Так можно. А что ты имеешь ввиду под "пакетным режимом"? 

 
Terpentrator #:

Согласен. Так можно. А что ты имеешь ввиду под "пакетным режимом"? 

.bat - файл, в котором МТ запускается с разными .set-файлами последовательно, один за другим. 

 
Georgiy Merts #:

.bat - файл, в котором МТ запускается с разными .set-файлами последовательно, один за другим. 

Понятно. Batch ещё кто-то юзает? Я использую .ps1