Блог им. grepan

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

    • 22 ноября 2021, 16:08
    • |
    • grepan
  • Еще

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

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

 

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

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

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

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

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

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

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

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

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

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




















★15
34 комментария
Осталось понять, как найти процесс, где нет тренда и где схождение к среднему в большей степени гарантировано
Тимофей Мартынов, ну, корреляция, системная зависимость инструментов (индекс + содержимые), развесовка инструментов по идее должны решить вопрос. Плюс страховка с составным стоплоссом (не по одному инструменту, а по позиции в целом).
avatar
на каких инструментах делался бэктест?
avatar
yurikon, там на первом скрине)
avatar
Надеюсь получить интересные идеи и конструктивную критику от участников на мои попытки подобрать алгоритмы возврата к среднему (Mean reversion)

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

Я бы еще первые лаги частной АКФ учел. Но это уже на любителя.
avatar
Kot_Begemot, основное замеченное различие с реалом — это разница клоуза на тесте и бид-аск в стакане.  Комиссии не играют роли, они незначительны. 
Подскажите, а как учесть первые лаги АКФ? На прикладном уровне…
avatar
grepan, первое что приходит в голову — в качестве нуля взять ноль + некоторое сглаживание приращений спреда с весом близким к коэффициенту. Но это пробовать надо все ближе к реальным данным. 

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

avatar
Kot_Begemot, что-то типа экспоненциальной взвешенной последних приращений?
avatar
grepan, ага, типа того)
avatar

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

avatar
ivanovr, верно, при переходе на реал и повышении частоты анализа надо более сложные механизмы пересечения пороговых критериев реализовывать. Ширше не получится ) замечена корреляция с периодом фьючерсов).
Если только на крипту переходить, но нам придется нового робота под новую биржу делать(
avatar
Не удивили, я так торгую давно уже.
Только средняя не 50% а 55% я писал уже об этом.
Если есть интерес то в личку.
Firetrade, средняя спрэда 55%? Это задел на системный рост курсов некоторых инструментов? 
avatar
Firetrade, Денис, а есть хотя бы на бэктесте результаты за большой период? Реал не прошу…
avatar
интересно было бы увидеть среднюю сделку по паре ETH-LTC вход-выход. Вангую, что с учетом спреда и комиссий там будет минус на трейд. И на горизонте 3-х месяцев разрыв спреда, и никакая математика простая или сложная там уже не поможе.
avatar
yurikon, верно. у меня на тесте на крипте получалось, что 0.1% стоимости совокупной позиции это успешный порог. Но удивительно, что комиссии составили как раз 0.1%. На крипте пока такая история у меня не сходится.
avatar
Тут в кучу разное смешано: возврат к среднему и арбитраж — совершенно разные вещи. В принципе.
Если про первое говорить (как в названии), то это не более чем когнитивное искажение. Нет никакого возврата к среднему ( с чего бы?). Средняя догоняет цену, а никак не наоборот. А это заработать не поможет.
avatar
svgr, а если цена есть процесс Орнштейна-Уленбека?! 
avatar
Kot_Begemot, то надо уметь находить его свойства. И делать практические выводы.
Но, думаю, есть много других кандидатов на описание поведения цены. Не лучше и не хуже. То есть никак не описывающих.
avatar
Kot_Begemot, тоже пока исследую этот вариант…
avatar
svgr, ну это смотря что считать за среднюю. Если среднюю цены одного инструмента, то Вы правы. Если среднюю многомерного портфеля, то это уже арбитраж. Суть разве меняется от числа измерений? А вот риски при повышении числа измерений падают)
avatar
grepan, числа измерений чего? Вы определение дайте тому, что меряете. И разница видна станет, если есть.
Одинокий человек, возвращающийся домой с работы и двое, возвращающиеся в семью — в их поведениях разве количеством людей в процессе всё определяется?
avatar
svgr, поэтично завернули)
svgr, спасибо! Измерение это число людей) у двоих, возвращающихся домой с работы, любых рисков меньше)
avatar
Подскажите, а как подступиться к календарному спрэду?

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

теги блога grepan

....все тэги



UPDONW
Новый дизайн