grepan
grepan личный блог
22 ноября 2021, 16:08

Попытки проектирования системы возврата к среднему

Надеюсь получить интересные идеи и конструктивную критику от участников на мои попытки подобрать алгоритмы возврата к среднему (Mean reversion).

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

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

Стандартные правила работы с контр-трендовыми системами такие:

— отсутствие стоплоссов

— небольшая, но частая прибыль

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

Возьмем инструменты с коэффициентом корреляции не ниже 0.9 и проверим на периоде.
Попытки проектирования системы возврата к среднему

Тикеры в данном случае не важны. Это может быть календарные фьючи, коррелируемые фьючи, акции или, например, крипта.

Сначала смотрим графики:
Попытки проектирования системы возврата к среднему

Подтвердим визуальную корреляцию на цифрах:
Попытки проектирования системы возврата к среднему

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

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

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

Посмотрим на распределение спреда, чтобы определить границы:

Попытки проектирования системы возврата к среднему

Распределение не похоже на нормальное.  Тест Шапиро-Уилка подтверждает:
Попытки проектирования системы возврата к среднему

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

Теперь видны квантили значений спреда и число выбросов.

Под конец проверим ряд спрэда на автокорреляцию:
Попытки проектирования системы возврата к среднему

Коррелограмма по коэффициентам автокорреляции убывает достаточно медленно, из-за чего значимыми оказались коэффициенты автокорреляции вплоть до 20 лага. Это является показателем нестационарности ряда данных спрэда.

 

Кстати, если алгоритм формирования спрэда имеет параметры, то при подборе таких параметров я ставлю задачу увеличить частоту возврата к среднему. При переборе параметров, гридсерче либо генетическим алгоритме в качестве цели ставим задачу уменьшения значения HalfLife – половины времени отклонения от средней.  На моем спрэде это 6 минут.
Попытки проектирования системы возврата к среднему

Вот теперь анализ спрэда закончен. Теперь надо глядя на эти картинки, «приземлить» их на торговую стратегию.

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

Сделаем простую логику торгового алгоритма: стоплосс -300 руб, вход при отклонении 80 руб, забираем минимальный профит 30 руб (чтоб покрыть комиссию). Соотношение стоплосса к профиту непривычно дикое, но проверим результаты:

Trades: 636, stops: 22, доля: 3.46%

Попытки проектирования системы возврата к среднему

Попытки проектирования системы возврата к среднему
Попытки проектирования системы возврата к среднему

Смотрится неплохо. При подборе параметров торгового алгоритма полезно смотреть на показатель Daily VAR, в идеале вывести его в плюс.

Буду запускать его на боевом сервере в режиме эмуляции сделок, для проверки.

Подскажите, а как подступиться к календарному спрэду? Хочется, но пока не получается. 




















34 Комментария
  • Тимофей Мартынов
    22 ноября 2021, 16:29
    Осталось понять, как найти процесс, где нет тренда и где схождение к среднему в большей степени гарантировано
  • yurikon
    22 ноября 2021, 16:32
    на каких инструментах делался бэктест?
    • Kot_Begemot
      22 ноября 2021, 16:58
      yurikon, там на первом скрине)
  • Kot_Begemot
    22 ноября 2021, 16:58
    Надеюсь получить интересные идеи и конструктивную критику от участников на мои попытки подобрать алгоритмы возврата к среднему (Mean reversion)

    Да вроде и добавить нечего, надо только еще издержки учесть и спред-выбросы (дивиденды, ставки и пр.).

    Я бы еще первые лаги частной АКФ учел. Но это уже на любителя.
      • Kot_Begemot
        22 ноября 2021, 19:29
        grepan, первое что приходит в голову — в качестве нуля взять ноль + некоторое сглаживание приращений спреда с весом близким к коэффициенту. Но это пробовать надо все ближе к реальным данным. 

        Я с таким ещё не сталкивался.

          • Kot_Begemot
            22 ноября 2021, 20:53
            grepan, ага, типа того)
  • Roman Ivanov
    22 ноября 2021, 17:38

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

  • Механик Рынка
    22 ноября 2021, 17:48
    Не удивили, я так торгую давно уже.
    Только средняя не 50% а 55% я писал уже об этом.
    Если есть интерес то в личку.
  • yurikon
    22 ноября 2021, 17:58
    интересно было бы увидеть среднюю сделку по паре ETH-LTC вход-выход. Вангую, что с учетом спреда и комиссий там будет минус на трейд. И на горизонте 3-х месяцев разрыв спреда, и никакая математика простая или сложная там уже не поможе.
  • svgr
    22 ноября 2021, 18:16
    Тут в кучу разное смешано: возврат к среднему и арбитраж — совершенно разные вещи. В принципе.
    Если про первое говорить (как в названии), то это не более чем когнитивное искажение. Нет никакого возврата к среднему ( с чего бы?). Средняя догоняет цену, а никак не наоборот. А это заработать не поможет.
    • Kot_Begemot
      22 ноября 2021, 18:52
      svgr, а если цена есть процесс Орнштейна-Уленбека?! 
      • svgr
        22 ноября 2021, 19:06
        Kot_Begemot, то надо уметь находить его свойства. И делать практические выводы.
        Но, думаю, есть много других кандидатов на описание поведения цены. Не лучше и не хуже. То есть никак не описывающих.
      • svgr
        22 ноября 2021, 19:40
        grepan, числа измерений чего? Вы определение дайте тому, что меряете. И разница видна станет, если есть.
        Одинокий человек, возвращающийся домой с работы и двое, возвращающиеся в семью — в их поведениях разве количеством людей в процессе всё определяется?
        • Кот Матроскин
          22 ноября 2021, 20:34
          svgr, поэтично завернули)
  • Вельвет
    22 ноября 2021, 19:34
    Подскажите, а как подступиться к календарному спрэду?

    Для проверки календарного спреда надо отбирать данные, например, за последние 5 -15лет, интервалом 1 месяц ( если Июль например, 2021.07, 2020.07, 2019.07 итд..) все склеить вместе и вывести среднюю.И все это по каждому тикеру, пусть их даже 3 будет.Потом эти 3 средние смотреть на графиках Июля. Но тогда и торговать надо это в Июле, если там конечно что-то есть
    Но думаю в крипте мало шансов найти такое, там все бешеной волатильности.
    В акциях тоже не густо для арбитража, там все трендует.
    Самое лучшее для арбитража брать фьючерсы на комоды или индекс.Ведь там можно играть уже разными месяцами одномоментно.
  • wrmngr
    23 ноября 2021, 00:11
    то есть вы взяли два ценовых ряда и сразу по ним без обработки посчитали корреляцию 0,95? 
    • Пафос Респектыч
      23 ноября 2021, 00:51
      wrmngr, это не важно, просто «теперь надо придумать, как это использовать» ))
      • wrmngr
        23 ноября 2021, 01:37
        Пафос Респектыч, никак, можно только наукообразно похвастаться на смартлабе. Практическая ценность отрицательная
        • Пафос Респектыч
          23 ноября 2021, 01:55
          wrmngr, ну чего вы ворчите, как может быть отрицательная, вон же профит на истории, и автор пишет что на его взгляд «смотрится неплохо»!

Активные форумы
Что сейчас обсуждают

Старый дизайн
Старый
дизайн