📈 Одна картинка вместо хвостовой модели
Вчера рассказывал, как хвостовая модель обещала «раз в 722 года» за день до события. Продолжение: оказывается, есть картинка, которая ловит такое враньё на глаз. Называется график Ципфа. Талеб показывает его на заявках по безработице: ковидный скачок выглядел невозможным выбросом - а на этом графике лёг ровно на продолжение прямой. Кто смотрел на график, для того сюрприза не было.
Построили такой же по нашим стратегиям.
🧭 Как он устроен
Берём все убыточные дни стратегии. По горизонтали - размер дневного убытка, по вертикали - доля дней хуже этого размера. Обе оси логарифмические: деление - не «плюс один процент», а «в десять раз».
Всё чтение сводится к одному правилу: если правый край облака точек ложится на прямую - убытки живут по степенному закону. У маленьких и огромных убытков один механизм, прямая продолжается вправо за пределы виденного, и предела у убытка НЕТ. Худший день истории - не аномалия, а очередная точка на той же линии. Следующая будет правее.
Наклон прямой - скорость, с которой редеют большие дни: круче - большие убытки быстро становятся редкостью, положе - хвост жирный и «рекорды» будут обновляться регулярно.
А вот если кривая в конце загибается вниз - хвост действительно обрезан: что-то физически мешает большим убыткам случаться.
🔍 Что видно на наших трёх ногах
Стратегия на юань: день −5.82 %, тот самый «раз в 722 года», лежит прямо на прямой. Подгонка говорила «предел −3 %», картинка говорила «прямая, предела нет». Картинку можно было посмотреть за день ДО.
Стратегия на MXI: худший день −25 % (25 февраля 2022) сидит у продолжения прямой. Под степенным взглядом это не чёрный лебедь, а ожидаемая точка. И наклон у этой прямой пологий - хвост честно жирный.
Стратегия на Si: единственная нога, где хвост в конце загибается вниз. Это след килсвитча на −2 % - он реально режет большие дни. Но точки до −4.77 % на графике тоже есть, и они показывают ровно то место, где защита не работает: гэп между сессиями проходит мимо любого внутридневного стопа.
⚙️ Практическая польза для алгоритмов
1. Секундная проверка любой риск-модели. Если на Ципфе прямая - запрещено верить модели, стопу или бэктесту, которые обещают предел убытка. Никакой математики, один взгляд.
2. Видно, работает ли защита. Загиб вниз в конце - стоп или килсвитч реально обрезает хвост. Нет загиба — защита декоративная и в худшие дни не участвует.
3. Устойчивость к новым данным. Прямая почти не меняется от свежих точек - поэтому вывод «предела нет» можно сделать до кризиса, а не после.
Чем при этом НЕ пользуемся: наклоном как числом. Оценка наклона по этой картинке смещена (на MXI даёт 2.06 против 2.5-2.7 по аккуратному методу). Число для решений остаётся прежним, из утреннего поста: показатель хвоста не измеряем, а назначаем - пол α = 3.
🔧 Куда это вшито
Панель Ципфа теперь рисуется автоматически при каждой генерации отчёта Монте-Карло: отдельным PNG и листом внутри Excel, по всем шести боевым контурам. Каждый вывод подгонки «хвост обрезан» будет очно встречаться с прямой на картинке.
🎯 Что унести
Прежде чем верить любой цифре риска - положите убытки на дважды логарифмический график. Чем ровнее прямая, тем меньше прав у слова «беспрецедентный»: резерв обязан допускать день хуже виденного. А единственный законный способ обрезать хвост - механический, стопом, и его работу видно на том же графике загибом вниз.
🎲 Модель сказала «хуже не бывает». Проверил - бывает.
В нашем Монте-Карло есть отдельный прогон, где хвостовые дни рисуются не из истории, а из обобщённого распределения Парето. Смысл в том, чтобы дать модели право нарисовать день хуже виденного. Форму хвоста задаёт один параметр - ξ. Если он больше нуля, хвост степенной и предела нет. Если меньше - модель утверждает, что предел есть и хуже не бывает.
Сегодня выяснилось, что она это утверждала. И зря.
🦃 Проверка на индюке
Беру ногу юаня и подгоняю хвост по данным ДО 19 сентября 2024 года. Выходит ξ = −0.24: хуже примерно −3 % не бывает. Спрашиваю ту же модель про день −5.82 %.
Ответ: раз в 722 года.
Он случился назавтра. Для сравнения, обычная нормалка, которую все ругают за недооценку хвостов, давала для этого дня 3.9 сигмы - то есть оказалась ближе к правде, чем «правильная» хвостовая модель.
По второй ноге картина та же. Килсвитч в стратегии стоит на −2 %, а пять худших дней: −4.77, −4.76, −4.64, −4.10, −3.87 %. Килсвитч режет убыток внутри дня и не работает, когда цена уходит между сессиями - тогда позиция открывается уже за порогом. Модель приняла защиту от одного риска за отсутствие другого.
📉 Почему так вышло
Причина не в коде. У Талеба это сказано прямым текстом: по данным выборки хвост рисуется тоньше, чем он есть. Данных в хвосте всегда мало по определению, и подгонка систематически ошибается в сторону «всё спокойно».
Насколько мало - видно на стратегии на MXI, единственной нашей ноге с честным степенным хвостом. Показатель α = 2.7, каппа 0.307. Убираю из выборки ОДИН день, 25 февраля 2022:
α = 2.70 → 13.3
Один день из 1367. Вся оценка хвоста держится на нём.
🔍 Что при этом всё-таки работает
Одна вещь из степенного закона на наших данных держится твёрдо. Если убыток пробил порог, его средний размер составляет примерно 1.6 порога - и это отношение почти не меняется:
порог 2.25 % → 1.76
порог 2.83 % → 1.65
порог 3.79 % → 1.63
порог 5.11 % → 1.53
То есть предсказать МОМЕНТ нельзя, оценить МАСШТАБ уже начавшегося - можно.
🐛 Что нашли попутно
Пока чинили одно, вылезло другое. Модель изредка рисовала день −350 %. Это не убыток, это отрицательный счёт: при таком числе путь эквити переворачивает знак, и просадка после этого считается мусорной.
Таких дней было 23 из 249 666 - сотая доля процента. Они одни раздували CVaR99 с 93 % до 243 %.
🔧 Метод, к которому пришли
1. Пол вместо оценки. Если подгонка даёт ξ ниже 1/3, берём 1/3. Модели просто запрещено обещать предел. Средний избыток при этом остаётся тем, что в данных - выдумывается не хвост, а только скорость его затухания.
2. Потолок −100 % на день. Дальше маржин-колл и ноль на счёте, а не отрицательный счёт. Прогон честно засчитывается как разорение.
3. В отчёте публикуются обе цифры - и подогнанная, и рабочая, видно, где сработал пол.
Перегнали все шесть боевых контуров. Пол сработал на всех алгоритмах, которые "обещали меньше" на всех пяти строках. Требуемый резерв вырос:
Si 200 %: 23.9 % → 33.8 %
юань 200 %: 28.4 % → 32.4 %
А по MXI цифра наоборот УПАЛА: 91.0 % → 65.1 %. Те самые 0.01 % дней. 91 % было ошибкой счёта, а не оценкой риска - и мы бы приняли решение по плечу, глядя на неё.
🎯 Что стоит унести
Оценка хвоста по своим данным почти всегда врёт в спокойную сторону, и чем меньше кризисов вы пережили, тем спокойнее выглядит картинка. Поэтому показатель хвоста разумнее не измерять, а назначать сверху.
Неделя получилась непростой для рынка, но для стратегии — вполне достойной.
Стратегия за неделю: −1,86%.
Накопленная доходность снизилась с +14,15% до +12,03%.
Для сравнения, индекс Мосбиржи за эту же неделю упал на -6,97%.
Таким образом, стратегия опередила индекс на 5,11 п.п. И это, пожалуй, главный результат этой недели.
Что сработало? В первую очередь — шорт индекса Мосбиржи, который выполнял роль страховки портфеля. Также частично закрыл ещё несколько позиций по акциям. Каких-то серьёзных дополнительных перестановок в портфеле не делал.
Сейчас больше всего размышляю над позицией в ОФЗ.
Они занимают около 30% портфеля и в период отскока очень хорошо себя показали: в среднем позиции сейчас от +2 до +3%, плюс накопилась купонная доходность.
Но дальше ситуация уже не выглядит настолько очевидной.
Доходности дальних ОФЗ сейчас находятся примерно в районе 15,8%, при этом бюджетный дефицит остаётся фактором риска. Минфин рано или поздно может вернуться на рынок.
Поэтому рассматриваю несколько вариантов:
— полностью закрыть ОФЗ и ждать более интересной точки входа;
— закрыть только часть;
— либо вообще пока ничего не трогать.
Скорее всего, как минимум половину позиции в ОФЗ я переложу во флоутеры. Это позволит сохранить относительно высокую доходность и при этом немного снизить чувствительность портфеля к возможному движению ставок.
При этом почти 20% портфеля уже находится в фондах денежного рынка, поэтому определённая защитная позиция у меня и так есть.
Акции
Сейчас около 44% портфеля — акции.
Добавлять агрессивно пока не хочется и уменьшать агрессивно так же не вижу смысла.
По некоторым компаниям, которые находятся у меня в портфеле, вышли хорошие отчётности, сами бизнесы мне нравятся и желание наращивать позиции есть.
Но общий рыночный сентимент пока говорит о другом: лучше немного притормозить и посмотреть, что будет дальше.
Поэтому не могу сказать «на следующей неделе точно буду покупать» или «точно не буду покупать». Сейчас просто наблюдаем за рынком и ищем возможности
Нефть и золото
По нефти пока вышел из позиции. Часть движения мы отыграли ещё на прошлых неделях.
По золоту тоже ранее забрали часть движения, правда, значительно меньше, чем по нефти.
Сейчас здесь тоже скорее режим наблюдения.
Нефть пока выглядит интереснее, а вот по золоту ситуация для меня менее очевидна. Потенциал в дальнейшем, безусловно, есть, но я не исключаю и коррекции — условно, например, обратно в район $4 100–4 200.
Поэтому пока никаких резких движений. Держим руку на пульсе и смотрим, куда рынок пойдёт дальше.
В общем, такая неделя: рынок получил серьёзную просадку, а защитная часть стратегии отработала именно так, как и должна была.
Рассказывайте, как прошла неделя у вас? Что думаете по ОФЗ, флоутерам, акциям, золоту и нефти? Интересно сравнить взгляды.