← Заметки
Классификатор режимов, в одной заметке
strategy·long-portfolio·macro-regime·research

Классификатор режимов, в одной заметке

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

· Mikhail Savchenko · Обновлено

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

Первое решение — число состояний. Остановились на трёх: бык, chop, медведь. Двух мало: поведение тихой ленты в диапазоне честно отличается от медведя, и склейка двух этих режимов стоит около 200 bps в год по стратегии. Пять — много: дополнительные состояния (мягкий бык, поздняя стадия X, recovery и т. п.) переобучаются на окне калибровки, и сглаженный posterior прыгает между ними так, что генерирует turnover, но не доходность. Три — минимальное число, при котором каждое состояние оправдывает место. Четыре и пять перетестировали каждые полгода в течение двух лет; три выигрывает каждый аудит.

Hidden Markov Model хороша ровно настолько, насколько хороши её наблюдения. У нас она смотрит на шесть признаков, считающихся ежедневно на скользящем 60-дневном окне, и пройдёмся по каждому — именно сюда ушло больше всего исследовательского времени.

Первый — реализованная волатильность на окне 20 дней: аннуализированные log-returns композитной риск-корзины (60/40 BTC/SPY, взвешенные по текущей аллокации стратегии). У медвежьих режимов характерные скачки волатильности; у chop — приподнятый baseline; у быка — самый низкий baseline из трёх и редчайшие скачки. Отличается форма распределения, а не только уровень.

Второй — сила тренда через Манна-Кендалла на 90-дневной кривой log-цены. Robust к выбросам, не делает вид, что монотонность есть, когда её нет, чисто ловит переходы между режимами. Сначала пробовали EWMA-тренд и slope-of-OLS; обе хуже на данных вне обучающей выборки.

Третий — breadth. Из четырёх активов, допустимых в портфеле — BTC, SPY, GLD, SHY, — сколько торгуется выше своей 60-дневной скользящей. 3 из 4 — разумное подтверждение быка; 0 из 4 — сильное подтверждение медведя; 2 из 4 с правильным составом (перевес в защитных) читается как chop.

Четвёртый — наклон кривой доходностей от SHY к IEF, разница доходностей коротких и средних Treasuries. Инвертируется в позднем цикле, становится круче в раннем. Стратегия её не торгует, но это чистый признак для определения режима, и HMM его обожает: он несёт макроинформацию, которой нет у признаков, построенных только на цене.

Пятый — risk-on/risk-off: доходность SPY минус доходность GLD на окне 30 дней. Удивительно чистый дискриминатор на переходах между режимами, потому что SPY и GLD расходятся резче всего, когда режим действительно меняется. Это два чистейших прокси для «аппетит к риску растёт» и «аппетит к риску схлопывается».

Шестой — глубина просадки: расстояние до скользящего 252-дневного пика equity. Кондишен на этом значит, что 10%-ная просадка в быке читается иначе, чем 10%-ная в медведе; смешивание режимов саморазруливается, как только модели дать кондишен на её собственную глубину.

Пробовали добавлять ещё семь признаков (CDS spreads, VIX term structure, ставки funding по perps, breadth по расширенным корзинам). Ни один не улучшил точность классификации вне обучающей выборки больше чем на 0.4 п. п. Часть сделала только хуже, добавив шум. Шесть — это то, что пережило отбор; сам отбор перетестируем ежегодно.

Сама модель — прямой Baum-Welch на скользящем 5-летнем окне, переобучается ежемесячно. Матрица переходов регуляризуется к диагонально-доминирующему prior’у: мы не хотим, чтобы модель учила, будто режимы переключаются через неделю, потому что они так не переключаются, а модель, которая в это верит, генерирует turnover, съедающий edge. Posterior’ы прогоняются через 14-дневный экспоненциальный сглаживатель перед использованием downstream’ом; сырые posterior’ы слишком дёрганы и заставляли бы стратегию переключаться на шуме.

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

У каждого актива есть диапазон — BTC 5-35%, SPY 10-45%, GLD 5-15%, SHY ≥20%. Режим определяет, где в диапазоне сидит актив, но сам диапазон — структурный и не двигается. В сильном быке BTC сидит около 35%. В chop — около 15-20%. В медведе — около 5%. Облигационный пол не обсуждается ни в одном режиме. Это потолки экспозиции, привязанные к режиму, а не позиционирование, привязанное к режиму; разница важна ровно тогда, когда режим определён неправильно — а это бывает не так редко. Если классификатор пометил chop как быка, стратегия переаллоцирует BTC к верху диапазона, но за диапазон не выйдет — диапазон это структурный потолок, а не выход модели. Урон ограничен.

Модель с позиционированием, привязанным к режиму, — медведь = шорт, бык = плечо в лонг — такой защиты не имела бы. Мы её рассматривали и отвергли. 90%-ные доверительные интервалы классификации режима в любой момент времени слишком широкие, чтобы доверять режиму выбор знака позиции; задача режима — модулировать экспозицию внутри уже ограниченной структуры.

Переходы между режимами — самые рискованные моменты. Уверенность модели падает, posterior’ы по двум состояниям становятся примерно равны, и стратегия должна делать меньше, а не больше, пока новый режим не устаканится. Это форсируется правилом мягкого снижения риска: если максимальный posterior держится ниже 0.65 более пяти дней подряд, аллокация по каждому активу сдвигается наполовину к весам медвежьего режима — независимо от того, какой режим самый вероятный. Это стоит немного ожидаемой доходности в случаях, когда модель чисто разрешается в быка или chop, и экономит много боли, если она разрешается в медведя. Асимметрия выплат делает выбор очевидным.

Честная слабость текущей конфигурации — окно калибровки. Пять лет мало: полных циклов в нём недостаточно. Двигаемся к 12-летнему окну с иерархическим prior’ом, который позволит свежим данным весить больше, не доминируя. Это единственное структурное изменение, которое мы ожидаем сделать в следующем году. Всё остальное держится.

— inite team

Похожие заметки
Все заметки →