Почему алгоритмы торгуют по-разному на истории и в реальном времени и какую ценность дает форвард-тест?

Время на чтение: 11 минут

Что такое форвард-тест

Запуск торгового алгоритма в боевом режиме — это кульминация процесса разработки стратегии. Если робота берут в реальную торговлю, это значит, что он успешно прошел несколько серьезных тестов и показал себя лучше остальных. Но в процессе применения алгоритмов в реальном времени трейдеры сталкиваются с проблемой, когда алгоритм, отлично себя зарекомендовавший на истории, вдруг начинает сильно терять деньги в реальном времени. Для трейдера это как психологический, так и технологический удар. Он подрывает веру трейдера в себя и в его процессы разработки стратегий.

В этой статье я приведу примеры с обеих сторон: один, когда алгоритм после успешного бэктеста сразу начинает проигрывать, и второй, когда в реальном времени или на форвардной симуляции (о которой подробнее поговорим в этой статье) алгоритм торгует в прибыль.

Содержание

Видео о форвард-тесте

Из бэктеста сразу в лайв?

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

Что такое форвард-тест
Один из примеров работы алгоритма по валютной паре GBP/JPY.

Здесь пример алгоритма, который до сих пор довольно успешно торгует по GBP/JPY, если не эта настройка в точности, то одна из. Кривая капитала растет как на этом, так и на следующем примере, где другой робот торговал по XAU/USD.

Что такое форвард-тест
Результативность алгоритма по золоту.

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

Запуск робота в боевой режим сразу после обнаружения хорошей настройки на истории — не всегда хорошая практика. Однако для частичной поддержки этого подхода должен обратиться к прошлому опыту из 2020, когда 3 алгопортфеля из 4-х закончили год положительно. Один счет и вовсе сильно превзошел ожидания, принеся прибыль свыше 100%. В то время я принимал решения о запуске робота основываясь на интуитивных догадках, как избежать последствий переоптимизации (оверфита).

Темная сторона этого подхода в том, что трейдер может слепо выбрать алгоритм с хорошей кривой капитала на истории (как выше) и запустить его в лайве. Но так он рискует попасть на переоптимизированный алгоритм.

Переоптимизация — это главная причина, по которой алгоритмы в реальном времени начинают ломаться и приносят убытки.

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

150 минут видео о создании торговых роботов доступно бесплатно и без регистрации

Не упустите возможность автоматизировать ваши торговые стратегии для финансовых рынков.

От бэктеста к форвард-тесту

Бэктесты дают трейдеру несметное количество данных. Представим такую картину.

У нас есть стратегия с одним набором параметров, и мы торгуем по ней в ручном режиме. Это значит, что в пределах дня мы можем охватить ограниченное количество инструментов и успеть среагировать на ограниченное количество торговых сигналов. В конце некого отчетного периода у нас получилась кривая капитала по мотивам торговли по этой стратегии.

Теперь представим ситуацию, когда мы протестировали эту же стратегию и можем посмотреть, как на истории отторговала каждая из, допустим, 300 настроек. То есть у нас на руках 300 кривых капитала. С одной стороны, мы совершили прорыв и отказались от ручного трейдинга и логирования наших действий (журнал). С другой стороны, биг дата часто означает и большие проблемы, проблемы выбора. Возникнет вопрос: какую настройку робота выводить в живой трейдинг?

Имея на руках 300 конфигураций (наборов параметров), в лайв мы можем запустить, например, только одну. Но, как мы помним, необдуманный переход в лайв сразу после бэктеста — это рискованная практика. Понадобится еще один уровень защиты, который повышает нашу уверенность. Вот здесь на сцене появляется форвардное тестирование — WFA (walk-forward analysis).

Что такое форвард-тест?

Имея на руках бэктест стратегии за 5-10 лет в 300 конфигурациях, мы можем провести форвардный тест. Этот тест является простой симуляцией, которая дает представление о возможных результатах в живом режиме.

Для проведения форвард-теста нужно разделить историческое окно на интервалы «оптимизаций» и собственно «форвардов». Конфигурация робота, которая хорошо зарекомендовала себя на этапе оптимизации, применяется в фазе форварда. Так мы получаем кусочек форвардной кривой капитала. Затем мы начинаем сдвигать фазы на величину форварда, пока не дойдем до правого края исторического окна.

Фазы, шаги и итоговая кривая схематично показаны на рисунке.

Что такое форвард-тест
Шаги, которые можно использовать для бэк и форвард-тестов.

Длина обеих фаз (3 + 1 год) показана для примера. В своей алгоритмической практике я пробую разные значения этих интервалов для всех стратегий, чтобы понимать, на каком промежутке оптимизировать и надолго ли запускать.

В нашем Telegram-канале есть то, чего не публикуем на сайте 👇

Примеры кривых капитала, полученных на форвардном тестировании №1

Каждая форвардная фаза дает кусочек кривой капитала. Эти кусочки склеиваются в одну большую кривую для оценки широкой картины. Благодаря таким объединенным отрезкам мы можем почти точно оценить ценность любой стратегии. «Почти» потому, что только время покажет, на что способна как сама стратегия, так и методы отбора.

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

Что такое форвард-тест
В таблице представлены результаты бэктестов и форвардтестов. Сравнение идет по 5-ти коэффициентам.

Каждая фаза оптимизации длится 3 года (точнее 156 недель). Каждая форвардная фаза длится год (52 недели). Также надо добавить, что MDD (просадка) на оптимизационных интервалах всегда будет 15%. Благодаря этому приему мы подбираем рисковую фракцию от капитала (для стоп-лосса) на форвардную фазу.

Процесс определения лучшей настройки робота на оптимизационном интервале, которая затем пойдет на форвардный интервал, очень прост:

  • искомая настройка алгоритма по отдельно взятой валютной паре должна совершить 0.5-5 сделок в месяц;
  • фактор восстановления должен быть больше 1 (это очень высокий показатель);
  • R-квадрат должен быть выше 0.75 (с таким показателем кривые капитала выглядят очень гладко).

С настройками форвард-теста разобрались, выяснили критерии, теперь запускаем.

Что такое форвард-тест
Результаты первого бэктеста.

Первая фаза оптимизации, на которой мы отбираем лучшие настройки для «будущего», дает великолепную кривую. За три года капитал вырос в 26 раз, среднегодовой доход составляет невообразимые 197%! Из 30-ти возможных валютных пар было отобрано 14 (по одному набору параметров на каждую), которые и сделали результат для «прошлого» периода оптимизации.

Теперь посмотрим, что если запустить отобранные 14 алгоритмов на следующих 52-х неделях (включаем форвард-тест)?

Что такое форвард-тест
Те же алгоритмы, только теперь на форвард-тесте.

Не слишком ужасно, но сильно далеко от ожиданий! По итогу после года как бы живых торгов получаем минус 5%.

Теперь сдвигаем даты интервалов на 52 недели вправо и выполняем второй шаг.

Что такое форвард-тест
Новое "окно" бэктеста.

На этот раз оптимизационный интервал обнаружил 16 валютных пар с хорошими настройками. А кривая капитала оказалась еще круче — в прямом и переносном смысле. Средний годовой темп прироста 447%! Показатель просто шокирует, как же можно потерять деньги на этих же 16-ти роботах, если запустить их в следующем году?

Что такое форвард-тест
Те же алгоритмы, только с новым форвард-тестом.

В реальности следующие 52 недели сильно расстроили! Как же так вышло, что 450% годовых в «прошлом» превратились в минус 18.8% в «будущем»? Вся эта затея с алготрейдингом начинает плохо пахнуть. Может, хотя бы последний интервал даст прибыль, хотя бы на симуляции?

Что такое форвард-тест
Заключительное окно бэктеста.

Привыкаем видеть шикарные кривые капитала на фазах оптимизации. В этот раз виртуальный счет вырос в 15 раз, среднегодовой прирост 149.7%. Так постарались 15 настроек — по одной на валютную пару. С дрожью в руках приступаем к последней форвардной фазе. Здесь должен сказать, что у этой фазы есть ограничение, оно связано с физической датой окончания самого бэктеста — апрель 2020.

Что такое форвард-тест
Заключительная форвард-фаза тех же алгоритмов.

За эти последние 3 месяца стратегия, наконец, приносит профит — в симуляции живых торгов. Надо признать, что для адекватной оценки этот интервал коротковат.

Но широкая картина теперь ясна: ошеломительный успех в фазах оптимизации не гарантирует успеха в последующей «будущей» фазе форвардного применения робота.

Итоговая, склеенная, кривая капитала по всем форвардным участкам выглядит вот так.

Что такое форвард-тест
Кривая доходности всех стратегий по форвард-тесту.

2 года и 3 месяца форвардной симуляции принесли такой результат:

  • среднегодовой прирост — минус 10.4%;
  • максимальная просадка — 35.3%.

Могло быть и хуже! :)

Подписывайтесь на наши статьи! Исследования, статистика и кейсы трейдинга

Примеры кривых капитала, полученных на форвардном тестировании №2

Разберем другой пример. На этот раз возьмем ту же стратегию на тех же участках оптимизации и форварда, но процесс отбора лучших настроек на оптимизационных фазах немного изменим. Теперь мы отбираем только такие параметры робота по одной валюте, которые дают такое же количество сделок в месяц (от 0.5 до 5), фактор восстановления должен быть ниже (от 0.66 до 1), и требование к R-квадрат тоже немного снижается (начиная с 0.5, а не с 1, как раньше). В общем, мы немного снизили требования. Посмотрим, как это отразится на оптимизационных и форвардных участках.

Что такое форвард-тест
Таблица бэк и форвард-тестов с новыми условиями для стратегий.

В этой таблице видим показатели результативности по каждой фазе. Наконец в столбце «АR» (среднегодовая доходность) появились зеленые ячейки!

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

Из 30-ти валют 19 дали по одному хорошему роботу. Теперь испытаем этот набор на следующих 52-х неделях.

Что такое форвард-тест
Форвард-тест к предыдущему бэктесту.

Успех. Найденные на оптимизации 19 наборов параметров закончили год со среднегодовой доходностью 19.3%, а просадка приблизилась к как бы ожидаемой — 14.4%.

Пройдем эти шаги еще 2 раза на следующих интервалах.

Что такое форвард-тест
И еще один бэктест.
Кривая на этапе оптимизации всегда смотрит вверх. Капитал вырастает в 10 раз. Снова отобраны 19 параметров, но необязательно настройки совпадут с предыдущей фазой. Применяем их на следующем однолетнем интервале.
Что такое форвард-тест
И еще один форвард.

Хорошо, теперь среднегодовой доход равен 21.9%. Однако рост кривой оказался не очень стабильным, а просадка превысила порог 15% и достигла 18.6%. Такое часто и случается в реальности.

Остался последний шаг.

Что такое форвард-тест
Заключительный бэктест с новыми настройками.
Мы уже привыкли к красивым кривым капитала на оптимизационных фазах, на этот раз капитал вырос в 6 раз. Снова отобрано 19 роботов. Применяем их на трех месяцах 2020 года.
Что такое форвард-тест
Заключительный форвад-тест с заключительными настройками.

И получаем кривую, которую хочется и в реальном времени получить. Рост стабильный, а максимальная просадка ниже ожидаемой. Суммарная кривая капитала по всем форвардным фазам получилась такой.

Что такое форвард-тест
Кривая доходности всех форвард тестов по всем временным окнам.

Результат по итогу:

  • среднегодовой прирост — 25.6%;
  • максимальная просадка — 18.6%;
  • R-квадрат — 0.82.

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

Выводы

Алгоритмический трейдинг — это весьма скучная и монотонная работа, которая состоит из повторяющихся циклов разработки и тестирования стратегий. Однако уровень скуки можно понизить благодаря таким вот экспериментам, как выше. Экспериментаторство с параметрами тестирования иногда приводит к неожиданным результатам, которые потом применяешь в будущем. Так случилось и с форвардным анализом (WFA), благодаря чему был неожиданно открыт новый подход к подбору требований на оптимизационных участках.

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

Применение результатов форвардного анализа в живом трейдинге значительно повышает уверенность трейдера и помогает точнее откалибровать ожидания от реального трейдинга с выбранными настройками алгоритмов.

Материалы

Поделиться статьей

Поделиться в facebook
Поделиться в vk
Поделиться в twitter
Поделиться в telegram

С радостью ответим на ваши комментарии

Читайте также

Scroll Up

2,5 часа бесплатных видео по автоматизации торговых стратегий

Начните обходить других частных трейдеров.

До 40% скидок на все курсы. Только для тех, кто прошел вступительный материал до конца

Ваша выгода составит от 1 020 ₽ до 14 814 .

До 40% скидок на все курсы. Только для тех, кто прошел вступительный материал до конца

Ваша выгода составит от 1 020 ₽ до 14 814 .

Не уходите с пустыми руками! Выберите один из 3-х бесплатных видеокурсов о трейдинге или же софт для анализа рынков