Библиотека пошаговой форвард-оптимизации для МетаТрейдер: Сценарии использования

15 августа 2016, 19:41
Stanislav Korotky
0
353

Это часть документации библиотеки WalkForwardOptimizer для МетаТрейдер 4/5 - оглавление.

Убедитесь, что оптимизация включена для тех мета-параметров, которые указаны в инструкциях ниже, и снимите флаги для остальных мета-параметров. Что касается рабочих параметров советника, их можно включать в оптимизацию как угодно. Рекомендуется очищать папку tester/cache(s) перед началом оптимизации.

Инструкции только для МТ4

Перед началом форвард-оптимизации всегда удаляйте глобальные переменные с префиксом "WF_", которые могли остаться с предыдущего запуска. Простой способ сделать это - запустить скрипт WalkForwardReporter с параметром ClearWFGlobalVariables равным true. В качестве альтернативы можно автоматизировать данный процесс, вызвав wfo_setCleanUpTimeout из OnInit эксперта.
Перед началом форвард-оптимизации убедитесь, что указанное в wfo_outputFile имя для выходного csv-файла не совпадает с уже существующим файлом в папке tester/Files. В противном случае выберите другое имя или удалите старый файл. Удаление можно автоматизировать, вызвав wfo_setCleanUpTimeout из OnInit эксперта.
После оптимизации не забудьте скопировать сгенерированный csv-файл из папки tester/Files в MQL4/Files, где он будет доступен скрипту WalkForwardReporter.
После каждой оптимизации проверяйте, что количество проходов в тестере на вкладке Результаты оптимизации равно значению глобальной переменной WF_PASS. Если значения отличаются, откройте папку tester/Caches и очистите её, затем удалите csv-файл из папки tester/Files, удалите WF глобальные переменные и повторите оптимизацию снова. Эта проблема возникает из-за того, что тестер может пропускать некоторые проходы, если находит их в кеше. Эта проблема также возникает, если вы забыли сбросить опцию Пропустить бесполезные результаты в контекстном меню на вкладке Результаты оптимизации.

Инструкции только для МТ5

В МТ5 библиотека автоматически удаляет соответствующие глобальные переменные и выходной csv-файл перед каждой walk-forward оптимизацией, так что нет необходимости делать это вручную или программно. Кроме того, выходной файл автоматически создается в папке MQL5/Files, и на его основе сразу генерируется html-отчет (нет необходимости запускать отдельный скрипт для построения отчета).

 


Последовательная пошаговая форвард-оптимизация на предопределенных периодах или произвольных периодах в днях

1. Выберите окно оптимизации из списка с помощью wfo_WindowSize или вариант custom , а затем введите количество дней в wfo_customWindowSizeDays.

2. Выберите размер форвард-шага из списка в wfo_stepSize или вариант custom , а затем введите размер как процент от размера окна в wfo_customStepSizePercent.

3. Включите оптимизацию для wfo_stepOffset в диапазоне от 0 до любого количества шагов, умещающегося в доступной истории, с шагом 1.

4. Запустите оптимизацию.

5. Скопируйте получившийся csv-файл в MQL4/Files (только МТ4; версия для МТ5 делает это автоматически).

6. Запустите скрипт WalkForwardReporter (только МТ4).

7. Откройте сгенерированный HTML-файл с отчетом.

Рассмотрим пример. Пусть период оптимизации 2010-2016 годы. Выберем окно оптимизации - год, а форвард-шаг - квартал. Весь период - это 6 с половиной лет. 1 год всегда покрывается за счет движущегося окна оптимизации, а остальное - последовательными шагами квартальных тестов. На них остается 5 с половиной лет, что дает 22 квартала, поэтому форвард-шаги wfo_stepOffset  следует оптимизировать с 0 до 21 (22-й шаг - это уже 3-й квартал 2016 года, который еще на закончен на момент написания документации).

 

Кластерная пошаговая форвард-оптимизация

1. Выберите размер окна оптимизации в wfo_WindowSize как custom.

2. Включите оптимизацию для wfo_customWindowSizeDays для любого подходящего диапазона и приращения в днях.

3. Выберите размер форвард-шага в wfo_stepSize как custom.

4. Включите оптимизацию для wfo_customStepSizePercent для любого подходящего диапазона и приращения в процентах от размера окна (рекомендуемый диапазон значений 5-30%, шаг 5-10%).

5. Включите оптимизацию для wfo_stepOffset в диапазоне от 0 до любого количества шагов, умещающегося в доступной истории, с шагом 1.

6. Запустите оптимизацию.

7. Скопируйте получившийся csv-файл в MQL4/Files (только МТ4; версия для МТ5 делает это автоматически).

8. Запустите скрипт WalkForwardReporter (только МТ4).

9. Откройте сгенерированный HTML-файл с отчетом. 

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

 

Уточняющий анализ кластерной оптимизации

Данный случай аналогичен предыдущему сценарию, но при запуске скрипта WalkForwardReporter укажите параметры WindowSize и StepSize равными значениям, описывающим колонки и строки в таблицах кластерного отчета.

Вы можете строить различные уточняющие отчеты на данных одной и той же кластерной оптимизации.


Якорная пошаговая форвард-оптимизация

1. Выберите размер окна оптимизации в wfo_WindowSize как custom.

2. Включите оптимизацию для wfo_customWindowSizeDays на желаемом диапазоне. В качестве приращения выберите количество дней равное длине предопределенного периода, который будет установлен на следующем этапе (например, введите приращение 30 дней, если собираетесь использовать шаг "месяц").

3. Выберите размер шага из списка предопределенных констант wfo_stepSize , причем константа должна быть равна приращению, указанному выше для размера окна.

4. Отключите оптимизацию для wfo_stepOffset и установите его значение в 0.

5. Запустите оптимизацию.

6. Скопируйте получившийся csv-файл в MQL4/Files (только МТ4; версия для МТ5 делает это автоматически).

7. Запустите скрипт WalkForwardReporter (только МТ4).

8. Откройте сгенерированный HTML-файл с отчетом.