Через какие процессы проходит алгоритмическая стратегия перед ее запуском + вебинар

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

Вебинар по трейдингу

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

Содержание

1. Разработка и тестирование гипотезы — in-sample тест

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

Разработчики стратегии используют исторические данные для проверки своих идей, применяя различные математические и статистические методы. Этот этап включает в себя бэктест и оптимизацию — процесс тестирования стратегии на исторических данных с разными параметрами для оценки её потенциальной эффективности. Этот тест еще называется in-sample — тест в определенной выборке данных.

Вебинар про алгоритмические стратегии
Область снизу — область исторического теста. In-sample период — период оптимизации.

На графике выше представлен период тестирования с 2007 года по настоящее время. То есть, симулируется торговая логика на этом временном отрезке. Это и есть период обучения алгоритма — in-sample.

2. Out-of-sample и форвард-тест

Чтобы убедиться в реальной работоспособности стратегии, её тестируют на out-of-sample данных — данных, которые не использовалась при бэктестинге и оптимизации. Отсюда и название — вне выборки (out-of-sample).

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

Вебинар про алгоритмические стратегии
In-sample и Out-of-sample периоды.

Из нашего первоначального теста мы сравниваем данные за 2007-2020 (in-sample — IS) с 2020-2024 (out-of-sample — OOS). Задача такого поиска: выявить, что алгоритм ведет себя примерно одинаково как и на IS-периоде, так и на OOS

Мы делаем сразу один глобальный тест с 2007 по последние даты. А уже потом с помощью макросов весь период теста делится на IS и OOS периоды.

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

3. Walk-forward analysis (WFA)

Дальше мы добавляем “шаг” нашему форвард-тесту, смещая каждый тест вправо, чтобы получить склеенный период всех OOS-периодов. Рассмотрим пример с шагом 6:2, то есть 6 лет IS-период, и 2 года OOS-период.

Вебинар про алгоритмические стратегии
Включаем "шаг" нашего теста.

Склеивая рыжие кривые доходностей, мы получаем WFA результат, который выглядит вот так:

Робастность торговых стратегий.
Пример одного из форвард-анализа.

Что у нас есть:

  • период in-sample теста и out-of-sample теста (IS и OS обозначения в столбце Type)
  • финальные результаты по форвард-тесту (в конце списка)
  • все важные нам коэффициенты — от Шарпа до профит-фактора
  • и сама кривая форвард-теста, конечно же

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

Стратегия на примере выше с успехом прошла WFA тест. Но нам и этого мало — нужно смоделировать много таких WFA тестов. Для этого потребуется матричный форвард-тест.

4. Матричный форвард-тест

В отличие от традиционного форвард-тестирования, где стратегия проверяется на одном непрерывном временном отрезке данных, не использовавшихся в процессе оптимизации (те самые out-of-sample данные), матричный форвард-тест включает в себя тестирование на множестве различных временных периодов и рыночных условий. Это делается для того, чтобы увидеть, как стратегия ведет себя в разнообразных сценариях, включая разные фазы рыночных циклов.

К примеру, выше мы использовали соотношение 6 к 2, то есть 6 лет in-sample теста и 2 года out-of-sample. Но зачем брать только одно соотношение, если можно больше? Так и делаем. Вот какие соотношения в своих тестах используем:

  • 3:1
  • 4:1
  • 5:1
  • 6:1
  • 7:1
  • 8:1
  • 6:2
  • 7:2
  • 8:2

Склеивая все эти периоды (опять же, все это делает макрос), мы получаем матричный форвард-тест, или же проще — кластер. Выглядит он так:

Матричный форвард-тест
Матричный форвард-тест, или же кластер.

Значения вверху — те самые соотношения в неделях. Например 312/104 = 6 лет in-sample теста и 2 года out-of-sample, 416/52 = 8 лет in-sample периода и 1 год out-of-sample и так далее.

Зеленые ячейки означают, что форвардный анализ закончился с прибылью, а красные — с убытком. В каждой ячейке хранится WFA анализ, который мы рассматривали выше. В идеале, чтобы зеленых ячеек было 80-90%. Это будет говорить о том, что стратегия устойчива (робастна) и отлично прошла все тесты. Но даже и 50% зеленых ячеек — хороший результат.

В каждой ячейке кластера — совокупные результаты всех инструментов, которые участвовали в тесте. Это либо валютные пары, либо индексы, либо сырьевые инструменты. “Либо” по той причине, что мы отдельно тестируем разные классы финансовых инструментов.

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

5. Добавление стратегии в миксер и подсчет фракции (риск на одну сделку)

Теперь надо заглянуть внутрь кластеров.

Исследуя зеленые кластеры, мы скорее всего найдем привлекательную стратегию, учитывая правила кластера: около 50% ячеек должны быть зеленые (эти правила иногда нарушаются). Как уже отмечено выше, здесь собраны все алгоритмы, прошедшие форвард-тест. Чтобы получить визуальное представление использованных алгоритмов, попавших в определенную ячейку, с помощью макроса мы строим их предварительные кривые.

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

Допустим, по внешнему виду нам нравится кривая с номером 072 — Pizza_TSL-GBPJPY. Кривая и правда хороша! Ок, пару нажатий кнопок макроса, и получаем ее подробные данные по этой настройке.

Результаты алгоритма.
Подробные настройки алгоритма, который мы выбрали выше.

Хорошая стратегия, она нам подходит. Далее добавляем ее в миксер — Excel-файл, где уже находятся все наши рабочие стратегии-старички.

С помощью макроса GetStats мы пересчитываем портфель с учетом новых стратегий и подгоняем максимальную историческую просадку под 15% (этот метод называется Value at Risk (VaR) — исторический метод. Позже мы будем использовать еще один метод — VaR Монте-Карло).

Подгонка работает просто: мы вписываем такое значение риска на один алгоритм, чтобы максимальная просадка (MDD) не превышала 15% за исторический период. 15% — значение просадки, подходящее для нас. Вы можете использовать другие значения, которые будут подходить именно вашему риск-профилю.

Ок, вот так выглядит миксер со всеми важными значениями:

Миксер
Мисксер — Excel-файл со всеми важными метриками и кривой доходностью.

Миксер — объединенный файл со всеми стратегиями портфеля. Кривая миксера — кривая работы всех алгоритмов одновременно (в примере выше — 37 алгоритмов) за исторический период (с 2007 года). Если у вас отдельная стратегия, миксер вам не нужен. Но рекомендуем все же стремиться к портфелю алгоритмов. Даже несколько средних стратегий в сумме могут работать лучше, чем одна хорошая. Почему так — в статье Почему портфель торговых алгоритмов лучше, чем одиночные стратегии или же в видео ниже:

Ок, следующий шаг — проверить корреляцию всех 37 алгоритмов (как из нашего примера выше, так что цифра “37” у всех будет разная).

6. Вычисление корреляции нового алгоритма с уже работающими алгоритмами

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

Корреляция алгоритмов
Взаимосвязь EUR/USD с GBP/USD.

Напомним, что корреляция инструментов = 1 говорит о синхронном движении, корреляция = -1 о полностью противоположенном движении, а корреляция = 0 говорит об отсутствии какой-либо взаимосвязи.

На графике выше мы наложили на EUR/USD кривую GBP/USD (фиолетовая линия). Евро с фунтом исторически имели высокую корреляцию, стремящуюся к 1. Это и заметно на графиках.

Теперь представим, что в сценарии слева по EUR/USD и GBP/USD одновременно открываются лонг сделки. С точки зрения диверсификации толку в этом мало — хоть сделки и открываются на разных инструментах, риск все равно удваивается из-за высокой корреляции этих 2-х валютных пар.

Теперь к примеру справа. Если у нас открыт лонг по EUR/USD, а через какое-то время открывается шорт по GBP/USD — такой вариант нас устраивает. У нас уже есть небольшая прибыль по евро, и открывается хеджирующая позиция по фунту, что снижает общий риск портфеля. Это и есть качественная портфельная диверсификация. Именно по такому принципу мы и считаем корреляцию.

Делаем это с помощью еще одного нашего макроса, который считает взаимосвязь по методу Variance-Covariance. Это тоже тема для отдельного материала по рискам, но если коротко:

Метод Variance-Covariance (Вариация-Ковариация) — статистический подход, используемый для оценки риска инвестиционного портфеля. Он позволяет измерить как волатильность отдельных активов (вариацию), так и степень их взаимосвязи (ковариацию) внутри портфеля.

Все алгоритмы из нашего миксера считаются по этому принципу, и на выходе получаем еще одну матрицу:

Просадки в трейдинге
Вариация-Ковариация всех алгоритмов портфеля.

Читать эту матрицу так:

  • если значение в каждой ячейке стремится к 0, значит один алгоритм с другим алгоритмом не открывают сделки в одном и том же направлении в один и тот же момент времени
  • если значение в ячейке стремится к 1 или -1, значит сделки этого алгоритма взаимосвязаны с другим алгоритмом. Лучше один из них выключить

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

7. Моделирования рисков с помощью Монте-Карло

Еще раз напомним, что это такое.

Метод Монте-Карло (МК) — вероятностный метод вычисления различных событий, где финальный результат в большей степени непредсказуем. Если еще проще, данный метод помогает получить вероятностный исход любого события.

Симуляции МК у нас происходят на уровне портфеля. То есть все те данные из миксера и 37 алгоритмов мы загружаем в наш софт (он работает на языке Python), а на выходе получаем 2 типа Монте-Карло.

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

Монте-Карло метод в трейдинге.
Результаты кривых по методу перетасовки Монте-Карло.

Второй тип: random choice. Здесь уже случайным образом сделки удаляются из истории. Любые — как прибыльные, так и убыточные. Изучим отчет.

Результат МК по методу удаления случайных сделок.

Для чего все это нужно? Это мощный стресс-тест для портфеля алгоритмов. То есть мы симулируем максимальный хаос для нашего исторического портфеля, чтобы в реальной торговле он мог быть готов ко всему.

8. Мониторинг и корректировка

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

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

Заключение

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

Как создавать торговые стратегии на основе статистики и данных, способных работать 24/5

Не упустите возможность получить прибыльные торговые стратегии.

Вебинар

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

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

Оставьте комментарий

Ваш адрес email не будет опубликован. Обязательные поля помечены *

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

Для продолжения нужна подписка Empirix Prime

Подписку можно оформить по кнопке ниже.

Если же есть активная подписка — войдите в личный кабинет.

Не пропустите лучшие статьи и видео о трейдинге — подписывайтесь на наш Telegram

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

  1. Стоимость любого курса можно разделить на 4 части. Без переплат, комиссий или кредитных договоров.
  2. Если курсы вам не подойдут — вернем деньги без вопросов.

Знания и практика — это то, что нужно для прибыльного трейдинга. Начните трейдинг-эволюцию уже сейчас