Численный показатель робастности при Walk-Forward оптимизации.

Численный показатель робастности при Walk-Forward оптимизации.

Термин «робастность» означает способность торговой стратегии, повторять результаты своего тестирования в прошлом на новых данных. 

И было бы здорово измерять эту способность в цифрах. В этом тексте я познакомлю Вас с одной из метрик робастности стратегии, которая есть у нас в OsEngine.Walk-ForwardRobustnessMetric.

Сразу скажу, что это не что-то из яндекса с гуглом. Этот параметр добавили в WFOptimizer наша команда, пытаясь получить численное представление робастности того или иного результата. Очень может быть, что нечто похожее уже где-то есть. Обязательно мне напишите, если похожий параметр обсуждается в других местах и у робастности во время Walk-Forward есть стандартное исчисление, которое скрылось от наших глаз: [email protected]

Вспоминаем о сути робастности.

Пример 1. 

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

Рис. 1. Стратегия с высокой робастностью. Повторяет результаты тестов в реальной торговле.

Пример 2. 

Вы оттестировали какую-то стратегию в тестере и видите результат в красном квадрате. Вы включили стратегию в торги и в реальном времени за следующие два месяца (зелёный квадрат) стратегия вам дала убытки:

Рис. 2. Стратегия с низкой робастностью. Не повторяет результаты тестов в реальной торговле.

Где смотреть робастность в цифрах?

В рамках Walk-Forward оптимизатора OsEngine есть его метрика:

Рис. 3. Окно результатов оптимизации FWОптимизатора в OsEngine.

Рассчитывается от 0 до 100 %. Чем ближе к 100, тем робастнее стратегия.

Лучший результат в таком случае выглядит так:

Рис. 4. Максимально хороший результат это 100 %. 

При этом я вовсе не случайно оставил столбцовую диаграмму в кадре. Она отражает успешность выбранного робота из InSample во множестве OutOfSample результатов. Именно от того, что там за столбики, зависит WFRM. Но… Обо всём по порядку.

Этапы WFоптимизации.

Обычно во время формирования этапов для тестирования при Walk-Forward  используется подобного рода визуализация: 

 Рис. 5. Визуальное и табличное представление этапов WFоптимизации. 

В данном конкретном случае история разбита на 14 пар InSample / OutOfSample. 

Последний InSample без пары, т.к. предполагается, что его OutOfSample будет уже в реале.

Пары InSample – OutOfSample.

В каждом из этих периодов тестируются роботы с одними и теми же параметрами! Во всех 29 этапах. ОДНИ И ТЕ ЖЕ РОБОТЫ. Это справедливо, если не включены фильтры и процесс оптимизации ведётся Brut-Force (Т.е. полным обходом всех параметров).

 

Рис. 6. InSample – OutOfSamle. Всего лишь две таблицы результатов. 

В каждой паре получается по 40 результатов.

Сортируем обе таблицы, по какому-то параметру.

В данном случае параметр для сортировки - это П/У %:

Рис. 7. Таблицы результатов оптимизации отсортированные по П/У %. 

Лучшим роботом в InSample периоде является робот с номером 9. Его, как мы предполагаем, мы бы включили в торги. 

Смотрим под каким номером он пришёл в OutOfSample периоде:

 Рис. 8. Смотрим «Лучшую лошадку» из InSample в «забеге» OutOfSample.

На основании результата добавляем его в соответствующий столбец диаграммы:

Рис. 9. Переносим результат в какую-то категорию по успешности. 

В данном случае, вот сюда:

Рис. 10. Наша «лошадка» пришла в предпоследней категории успешности. Между 60 и 80 % других. 

И таким образом заполняем данную диаграмму. 14 пар InSample / OutOfSample. 14 добавленных единиц в различные столбцы.

Расчёт WFRM.

Рис. 11. Формула расчёта WFRM.

Засчитываем из разных столбцов вес 1 результата пары с разным коэффициентом.

И получаем в итоге WFRM:

Рис. 12. Итоговый WFRM.

Зачем это может быть нужно?

Очевидно, это один из важнейших показателей во время WalkForward оптимизации. И нужно включать роботов в торговлю с наиболее большим коэффициентом. WFRM должен обязательно участвовать в фильтрации различных алгоритмов.

Осуществлять выборку лучшего робота для применения в OutOfSample можно совершенно по разному:

Рис. 13. Варианты выбора лучшего робота из InSample в OsEngine.

В OsEngine это параметры:

1) Total Profit;

2) Max Drow Dawn;

3) Average Profit;

4) Average Profit Percent;

5) Profit Factor;

6) Pay Off Ratio;

7) Recovery;

8) Sharp Ratio;

И разные типы выбора лучшего робота дают разную WFRM. 

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

Которую мы сделаем вместе.

 

С.М. Исследования: Влияние параметра выбора лучшего робота из InSampleв WF оптимизации на робастность. 

17:27
276
Seo

Комментарии

Нет комментариев. Ваш будет первым!