Walk Forwards – один из способов избежать переобучения алгоритма, путём проверки его способности адаптироваться к новым периодам данных.
1. Walk-Forwards это.
Суть Walk-Forwards в картинке:
Рис. 1. Визуализация Walk-Forward тестирования.
В процессе «Walk-Forward» оптимизации мы:
1. Делим историю на этапы оптимизации.
2. Оптимизируем стратегию на In Sample периоде. Выбираем лучшие параметры на этом участке.
3. Проводим контрольные тесты на Out Of Sample периоде. Смотрим, как лучшие параметры робота из прошлого In Sample ведут себя на ранее неизвестных данных.
4. Анализируем результаты Out Of Sample.
Суть в том, что чем больше прибыльных Out of Sample периодов, тем робастнее стратегия.
2. Walk-Forwards быстрый старт.
Рис. 2. Настройка этапов оптимизации в OsEngine.
Рекомендации по настройке этапов Walk-Forwards.
1. Период In Sample – от 700 до 1000 дней.
2. Период Out Of Sample – от 90 до 180 дней.
Мы пользуемся именно Walk-Forward тестированием для своего трендового портфеля роботов.
Одна из возможных схем оптимизации:
1. Провести оптимизацию в начале квартала (полугодия).
2. Включить роботов в торговлю и не трогать их 3 (6) месяца.
3. Провести оптимизацию в начале следующего периода (квартала или полугодия).
И т.д.
3. Запускаем OsEngine.
Для начала работы запускаем exe файл с платформой:
Попадаем в главное меню, выбираем «Оптимизатор»:
Открывается окно Оптимизатора, в котором нам предстоит работать:
И попадаем в окно сервера данных:
1. Выбираем тип источника. В данном случае это сет данных, который был ранее скачен через OsData.
2. Выбираем тип трансляции, в данном случае это свечи.
3. Выбираем сам сет данных.
4. Настраиваем время трансляции данных.
4. Выбираем робота для оптимизации.
В главном окне оптимизатора жмём на кнопку Select:
И выбираем торгового робота, которого хотим оптимизировать:
5. Выбираем бумагу, на которой будет происходить оптимизация.
Это делается в главном окне оптимизатора:
6. Выставляем комиссии для сделок.
Это делается в главном окне оптимизатора:
1. Выбираем тип комиссии.
a. None – выключено.
b. OneLotFix – на один контракт.
c. Percent – в процентах от суммы сделки.
2. Устанавливаем значение комиссии.
7. Настраиваем в роботе «Сопровождение позиций».
Это делается в главном окне оптимизатора:
Ссылка на объяснение настроек в окне.
8. Настраиваем оптимизируемые параметры.
1. Колонка, включающая и отключающая параметры для оптимизации.
2. Название параметра.
3. Тип оптимизируемого параметра.
4. Значение по умолчанию. Используется, если параметр не включен в список оптимизируемых.
5. Стартовое значение для оптимизации.
6. Шаг приращения значения.
7. Итоговое значение параметра.
8. Количество проходов оптимизатора для обхода всех возможных значений параметров.
9. Кнопка сброса значений параметров к начальному, как записано в исходном коде робота.
9. Настраиваем схему оптимизации для Walk Forwards.
1. Время трансляции данных.
2. Если включено, последний этап будет InSample. Тот, из которого можно брать настройки для реала. Если выключено, последний этап будет OutOfSample.
3. Количество пар InSample – OutOfSample.
4. Время на OutOfSample относительно InSample периодов.
5. Кнопка создать схему. Нажимаем после предварительных настроек.
6. Таблица с периодами оптимизации.
7. Визуальное представление периодов оптимизации.
10. Настраиваем фильтры для результатов.
1. Показывать проход в итоговой выборке, только если итоговый профит на депозит в процентах больше заданной цифры.
2. Показывать проход в итоговой выборке, только если итоговая максимальная просадка не превысила указанную цифру.
3. Показывать проход в итоговой выборке, только если средний профит на одну сделку выше указанной цифры.
4. Показывать проход в итоговой выборке, только если профит фактор выше указанной цифры.
5. Показывать проход в итоговой выборке, только если количество сделок больше указанной цифры.
ВАЖНО!!! Для Walk-Forwards лучше здесь ничего не включать!!!
11. Запускаем оптимизатор.
1. Количество потоков, которое будет задействовано во время работы.
2. Кнопка запустить.
После чего Вы увидите процесс оптимизации:
ВАЖНО!!! НЕ надо ставить потоков больше, чем есть у Вас на ПК. Если данных много и робот сложный, это может закончиться крашем. Это будет способствовать тому, что ПК зависнет и начнутся ошибки.
12. Просмотр результатов. Series and Results.
Здесь мы видим все варианты робота, запущенного с разными параметрами на одном временном участке.
1. Выбор участка оптимизации для отображения.
2. Номер запуска робота.
3. Параметры робота. Если навести на этом поле указатель мыши, то Вы увидите список параметров у робота.
4. Количество позиций. ЛКМ – сортировка по столбцу.
5. Итоговый профит абсолютный. ЛКМ – сортировка по столбцу.
6. Максимальная просадка. ЛКМ – сортировка по столбцу.
7. Средний профит на 1 контракт в абсолюте. ЛКМ – сортировка по столбцу.
8. Средний профит на 1 контракт в процентах. ЛКМ – сортировка по столбцу.
9. Профит фактор. ЛКМ – сортировка по столбцу.
10. Pay Off Ratio. ЛКМ – сортировка по столбцу.
11. Recovery. ЛКМ – сортировка по столбцу.
12. Sharp Ratio. ЛКМ – сортировка по столбцу.
13. Chart – открыть Чарт данного робота, с текущими параметрами. ВНИМАНИЕ. Чтобы это произошло, нужно будет подождать, ибо для открытия чарта нужно провести операцию тестирования.
14. Params – открыть окно настроек параметров робота.
13. Просмотр результатов. Out of sample statistic.
14. Просмотр результатов. Как выглядит ХОРОШИЙ отчёт.
Ну и Вам на память, чтобы было к чему стремиться. Это одна из стратегий, которые торгует наша команда:
Удачных алгоритмов!
Если что-то не получилось, или остались вопросы, пишите в чат поддержки.
Комментарии