rss

Профиль компании

Финансовые компании

Блог компании Os_Engine | Walk-Forwards. Оптимизатор в Os Engine #3.

Walk Forwards – один из способов избежать переобучения алгоритма, путём проверки его способности адаптироваться к новым периодам данных.

Walk-Forwards. Оптимизатор в Os Engine #3.

Визуализация Walk-Forward тестирования.

Walk-Forwards. Оптимизатор в Os Engine #3. 

В процессе «Walk-Forward» оптимизации:

  1. Делим историю на этапы оптимизации.
  2. Оптимизируем стратегию на In Sample периоде, выбирая лучшие параметры на этом участке.
  3. Проводим контрольные тесты на Out Of Sample периоде. Смотрим, как лучшие параметры робота из прошлого In Sample ведут себя на ранее неизвестных данных.
  4. Анализируем результаты Out Of Sample.

Чем больше прибыльных Out of Sample периодов, тем робастнее стратегия.

 

Настройка этапов оптимизации в OsEngine.

Walk-Forwards. Оптимизатор в Os Engine #3. 

 

Рекомендации по настройке этапов Walk-Forwards.

  1. Период In Sample – от 700 до 1000 дней.
  2. Период Out Of Sample – от 90 до 180 дней.

Мы пользуемся именно Walk-Forward тестированием для своего трендового портфеля роботов.

Одна из возможных схем оптимизации:

  1. Провести оптимизацию в начале квартала (полугодия).
  2. Включить роботов в торговлю и не трогать их 3 (6) месяца.
  3. Провести оптимизацию в начале следующего периода (квартала или полугодия).

И т.д.

 

Запускаем OsEngine.

Из главного меню запускаем «Оптимизатор»:

Walk-Forwards. Оптимизатор в Os Engine #3.

Открывается окно Оптимизатора, в котором нам предстоит работать:

Walk-Forwards. Оптимизатор в Os Engine #3. 

Нажимаем на кнопку «Data Server Settings» и попадаем в окно сервера данных:

Walk-Forwards. Оптимизатор в Os Engine #3. 

  1. Выбираем тип источника. В данном случае это сет данных, который был ранее скачен через OsData.
  2. Выбираем тип трансляции. В данном случае это свечи.
  3. Выбираем сет данных.
  4. Настраиваем время трансляции данных.

 

Выбираем робота для оптимизации.

В главном окне оптимизатора жмём на кнопку Select:

Walk-Forwards. Оптимизатор в Os Engine #3. 

Выбираем торгового робота, которого хотим оптимизировать:

Walk-Forwards. Оптимизатор в Os Engine #3.

 

Выбираем бумагу, на которой будет происходить оптимизация.

Walk-Forwards. Оптимизатор в Os Engine #3. 


Выставляем комиссии для сделок.

Walk-Forwards. Оптимизатор в Os Engine #3. 

1. Выбираем тип комиссии.

  • None – выключено.
  • OneLotFix – на один контракт.
  • Percent – в процентах от суммы сделки.

2. Устанавливаем значение комиссии.

 

 

Настраиваем в роботе «Сопровождение позиций».

Walk-Forwards. Оптимизатор в Os Engine #3. 

Ссылка на объяснение настроек в окне.

 

Настраиваем оптимизируемые параметры.

Walk-Forwards. Оптимизатор в Os Engine #3.

  1. Колонка, включающая и отключающая параметры для оптимизации.
  2. Название параметра.
  3. Тип оптимизируемого параметра.
  4. Значение по умолчанию. Используется, если параметр не включен в список оптимизируемых.
  5. Стартовое значение для оптимизации.
  6. Шаг приращения значения.
  7. Итоговое значение параметра.
  8. Количество проходов оптимизатора для обхода всех возможных значений параметров.
  9. Кнопка сброса значений параметров к начальному, как записано в исходном коде робота.

 

Настраиваем схему оптимизации для Walk Forwards.

Walk-Forwards. Оптимизатор в Os Engine #3.

  1. Время трансляции данных.
  2. Если включено, последний этап будет InSample. Тот, из которого можно брать настройки для реала. Если выключено, последний этап будет OutOfSample.
  3. Количество пар InSample – OutOfSample.
  4. Время на OutOfSample относительно InSample периодов.
  5. Кнопка создать схему. Нажимаем после предварительных настроек.
  6. Таблица с периодами оптимизации.
  7. Визуальное представление периодов оптимизации.

 

Настраиваем фильтры для результатов.

Walk-Forwards. Оптимизатор в Os Engine #3. 

  1. Показывать проход в итоговой выборке, только если итоговый профит на депозит в процентах больше заданной цифры.
  2. Показывать проход в итоговой выборке, только если итоговая максимальная просадка не превысила указанную цифру.
  3. Показывать проход в итоговой выборке, только если средний профит на одну сделку выше указанной цифры.
  4. Показывать проход в итоговой выборке, только если профит фактор выше указанной цифры.
  5. Показывать проход в итоговой выборке, только если количество сделок больше указанной цифры.

ВАЖНО!!! Для Walk-Forwards лучше здесь ничего не включать!!!

 

Запускаем оптимизатор.

Walk-Forwards. Оптимизатор в Os Engine #3. 

  1. Количество потоков, которое будет задействовано во время работы.
  2. Кнопка запустить.

После чего Вы увидите процесс оптимизации:

Walk-Forwards. Оптимизатор в Os Engine #3. 

ВАЖНО!!! НЕ надо ставить потоков больше, чем есть у Вас на ПК. Если данных много и робот сложный, это может закончиться крашем. ПК может зависнуть и начнутся ошибки.

 

12. Просмотр результатов. Series and Results.

Walk-Forwards. Оптимизатор в Os Engine #3. 

Здесь мы видим все варианты робота, запущенного с разными параметрами на одном временном участке.

  1. Выбор участка оптимизации для отображения.
  2. Номер запуска робота.
  3. Параметры робота. Если навести на этом поле указатель мыши, то Вы увидите список параметров у робота.
  4. Количество позиций. ЛКМ – сортировка по столбцу.
  5. Итоговый профит абсолютный. ЛКМ – сортировка по столбцу.
  6. Максимальная просадка. ЛКМ – сортировка по столбцу.
  7. Средний профит на 1 контракт в абсолюте. ЛКМ – сортировка по столбцу.
  8. Средний профит на 1 контракт в процентах. ЛКМ – сортировка по столбцу.
  9. Профит фактор. ЛКМ – сортировка по столбцу.
  10. Pay Off Ratio. ЛКМ – сортировка по столбцу.
  11. Recovery. ЛКМ – сортировка по столбцу.
  12. Sharp Ratio. ЛКМ – сортировка по столбцу.
  13. Chart – открыть Чарт данного робота, с текущими параметрами. ВНИМАНИЕ. Чтобы это произошло, нужно будет подождать, ибо для открытия чарта нужно провести операцию тестирования.
  14. Params – открыть окно настроек параметров робота.

 

Просмотррезультатов. Out of sample statistic.

Walk-Forwards. Оптимизатор в Os Engine #3.

  1. Способ выбора лучших параметров в Out Of Sample периоде. Меняя эту настройку, робот пересчитывает все графики ниже, исходя из нового лучшего.
  2. Какой результат из In Sample мы будем брать для сверки его результатов в Out Of Sample. 0 — первый. 1 — в одном проценте от первого. 5 — в пяти процентах от первого. И т.д.
  3. Показатель робастности (Robustness metric) – показывает устойчивость нашей стратегии к новым данным. Чем больше, тем лучше. Про это будет отдельная статья.
  4. Профит общий и отдельный по разным Out Of Sample Периодам.
  5. Профит фактор по периодам Out of Sample.
  6. Профит на 1 контракт по периодам Out of Sample.

 

Просмотр результатов. Как выглядит ХОРОШИЙ отчёт.

Это одна из стратегий, которые торгует наша команда:

Walk-Forwards. Оптимизатор в Os Engine #3. 

Удачных алгоритмов!

Комментарии открыты для друзей!

Walk-Forwards. Оптимизатор в Os Engine #3.

OsEngine: https://github.com/AlexWan/OsEngine
Поддержка OsEngine: https://t.me/osengine_official_support

Регистрируйся в АЛОР и получай бонусы: https://www.alorbroker.ru/open
Сайт АЛОР БРОКЕР: https://www.alorbroker.ru
Раздел «Для клиентов»: https://www.alorbroker.ru/openinfo/for-clients
Программа лояльности от АЛОР БРОКЕР и OsEngine: https://smart-lab.ru/company/os_engine/blog/972745.php

Walk-Forwards. Оптимизатор в Os Engine #3.

★1

UPDONW
Новый дизайн