Новая статья: Рецепты MQL5 - Сохраняем результаты оптимизации торгового эксперта по указанным критериям

 

На mql5.com опубликована статья Рецепты MQL5 - Сохраняем результаты оптимизации торгового эксперта по указанным критериям:

Продолжим серию статей по программированию на MQL5. На этот раз рассмотрим, как можно получать результаты по каждому проходу оптимизации непосредственно во время оптимизации параметров эксперта. При этом сделаем так, что если условия, которые будут настраиваться во внешних параметрах, исполняются, то показатели этого прохода будут записываться в файл. Кроме показателей тестов будем сохранять еще параметры, по которым был получен этот результат.

Рецепты MQL5 - Сохраняем результаты оптимизации торгового эксперта по указанным критериям

Чтобы получить доступ к данным во время оптимизации в MQL5 есть специальные функции: OnTesterInit(), OnTester(), OnTesterPass() и OnTesterDeinit(). Кратко рассмотрим каждую из них:

  • OnTesterInit() - с помощью этой функции определяется начало оптимизации.
  • OnTester() - в этой функции будет производиться добавление так называемых фреймов во время оптимизации после каждого прохода. Что такое фреймы будет объясняться ниже.
  • OnTesterPass() - эта функция принимает фреймы во время оптимизации после каждого прохода.
  • OnTesterDeinit() - в этой функции генерируется событие об окончании оптимизации параметров эксперта.

Теперь нужно разобраться, что такое фреймы. Фрейм это своего рода структура данных отдельного прохода оптимизации. Фреймы во время оптимизации сохраняются в архив *.mqd, который создается в каталоге MetaTrader 5/MQL5/Files/Tester. К данным (фреймам) этого архива можно обращаться, как во время оптимизации "на лету", так и после окончания оптимизации. Например, в статье Визуализируй стратегию в тестере MetaTrader 5 показан пример того, как можно визуализировать процесс оптимизации "на лету" и затем включить просмотр всех результатов после оптимизации.

Автор: Anatoli Kazharski

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