Работа с результатами оптимизации

Авторизуйтесь или зарегистрируйтесь, чтобы добавить комментарий
Good Beer
95
Good Beer  

Как автоматически запустить тестер МТ-5 на оптимизацию, с новыми настройками и input- параметрами на онснове предыдущей оптимизации?

В MQL-5 существуют фреймы . Может кто покажет пару-тройку примеров их правильного использования? Например - как провести оптимизацию эксперта на всём списке валютных пар (с перебором  input- параметров).

Документация по MQL5: Работа с результатами оптимизации
Документация по MQL5: Работа с результатами оптимизации
  • www.mql5.com
Функции для организации собственной обработки результатов оптимизации в тестере стратегий. Могут вызываться при оптимизации в агентах тестирования, а также локально в экспертах и скриптах. При запуске эксперта в тестере стратегий можно создать собственный массив данных на основе простых типов или простых структур (не содержат строки, объекты...
Georgiy Merts
8879
Georgiy Merts  
Good Beer:

Как автоматически запустить тестер МТ-5 на оптимизацию, с новыми настройками и input- параметрами на онснове предыдущей оптимизации?

В MQL-5 существуют фреймы . Может кто покажет пару-тройку примеров их правильного использования? Например - как провести оптимизацию эксперта на всём списке валютных пар (с перебором  input- параметров).    

Было несколько статей. Но, боюсь, работа с фреймами требует достаточно высокой квалификации.

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

Good Beer
95
Good Beer  

Действительно. Статьи были. Простая работа с фреймами великой квалификации не требует. Весь вопрос в глубине постижения Mql5. Вопрос перебора валютных пар уже решен и выложена библиотека. Спасибо fxsaber за наше лёгкое програмирование. Принцип работы с фреймами описан в этой статье. Написана она до ревизии MQL5, код оттуда требует лёгкой правки. В общем - мне удалось перебрать все пары в "обзоре рынка и собрать лучшие результаты в файл .csv. Функции OnTesterInit и OnTesterPass оказались не при делах. Собирать данные с фреймов оказалось проще в OnTesterDeinit. 

В процессе появились новые вопросы:

  1. Как получить в советнике даты начала и окончания оптимизации?
  2. Как получить в советнике результат форвард-оптимизации?
Подскажите пожалуйста, кто знает.
Andrey Azatskiy
1960
Andrey Azatskiy  
Good Beer:

Действительно. Статьи были. Простая работа с фреймами великой квалификации не требует. Весь вопрос в глубине постижения Mql5. Вопрос перебора валютных пар уже решен и выложена библиотека. Спасибо fxsaber за наше лёгкое програмирование. Принцип работы с фреймами описан в этой статье. Написана она до ревизии MQL5, код оттуда требует лёгкой правки. В общем - мне удалось перебрать все пары в "обзоре рынка и собрать лучшие результаты в файл .csv. Функции OnTesterInit и OnTesterPass оказались не при делах. Собирать данные с фреймов оказалось проще в OnTesterDeinit. 

В процессе появились новые вопросы:

  1. Как получить в советнике даты начала и окончания оптимизации?
  2. Как получить в советнике результат форвард-оптимизации?
Подскажите пожалуйста, кто знает.

1. По первому вопросу точно не подскажу, но можно несколько костыльно - после каждого прохода тестера выгружать историю и смотреть с какой даты торгуется.

2. По второму функция:

MqlInfoInteger

и параметр:

MQL_FORWARD
fxsaber
14663
fxsaber  
TesterCache
TesterCache
  • www.mql5.com
MT5-тестер автоматически сохраняет оптимизационные кеши (данные оптимизации) в файлах Tester\cache\*.opt. И умеет экспортировать/импортировать их. Данная библиотека позволяет работать с этими данными. Сценарии Вывод более полных данных, чем это предоставляет MT5-тестер. Создание критериев оптимизации в любое время после проведенной...
Georgiy Merts
8879
Georgiy Merts  
Good Beer:

Действительно. Статьи были. Простая работа с фреймами великой квалификации не требует. Весь вопрос в глубине постижения Mql5. .

Это - пока не потребуется отладить код (не говоря уж о том, что "глубина постижения MQL5 - это и есть квалификация). Если функции работы с фреймами начнут давать ошибки, и тебе надо будет их находить - твое мнение изменится.

Если действительно не нужен сложный анализ "на лету" - то разумнее пользоваться подходом fxsaber'a - анализом записей кэша.

Good Beer
95
Good Beer  
Georgiy Merts:

Это - пока не потребуется отладить код (не говоря уж о том, что "глубина постижения MQL5 - это и есть квалификация). Если функции работы с фреймами начнут давать ошибки, и тебе надо будет их находить - твое мнение изменится.

Если действительно не нужен сложный анализ "на лету" - то разумнее пользоваться подходом fxsaber'a - анализом записей кэша.

Это детские грабли и я на них уже наступил...Буду разбираться.
Good Beer
95
Good Beer  
Andrey Azatskiy:

1. По первому вопросу точно не подскажу, но можно несколько костыльно - после каждого прохода тестера выгружать историю и смотреть с какой даты торгуется.

2. По второму функция:

и параметр:

MQL_FORWARD
MQL_FORWARD - это не результат оптимизации а признак работы запущенной программы в процессе форвардного тестирования. Или вы хотите сказать, что тестер выдаёт результаты бэк и форвард тестирование одним потоком?
Good Beer
95
Good Beer  
Прежде всего, спасибо Вам за ваши библиотеки! Может быть я сильно туплю, но TesterCache выдаёт информацию для пользователя. Я хочу получить данные форварда по лучшему проходу из бэка внутри эксперта, желательно только средствами MQL. Как конечную цель, я хочу автоматизировать процесс форвард оптимизации, как в этой статье. Но библиотека, которая там продаётся мне не подойдёт - т.к. нужно перебирать все пары. Вот и собираю кусочки мозаики.
Good Beer
95
Good Beer  
Good Beer:
MQL_FORWARD - это не результат оптимизации а признак работы запущенной программы в процессе форвардного тестирования. Или вы хотите сказать, что тестер выдаёт результаты бэк и форвард тестирование одним потоком?

Проверил: В форвард-тесте не вызываются функции OnTesterInit(); OnTester(); OnTesterPass(); OnTesterDeinit().

Andrey Azatskiy
1960
Andrey Azatskiy  
Good Beer:

Проверил: В форвард-тесте не вызываются функции OnTesterInit(); OnTester(); OnTesterPass(); OnTesterDeinit().

при историческом и при форвардном тестах, у робота всегда вызываются методы OnInit и OnDeinit. Т.е. он удаляется и инстанцируется вновь. Этим и можно пользоваться (я так делаю выгрузку отчетов оптимизации).

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