📈 Одна картинка вместо хвостовой модели
Вчера рассказывал, как хвостовая модель обещала «раз в 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. 10 мая - Уиткофф и Кушнер могут скоро приехать в Россию, диалог с ними будет продолжен
2. 20 мая - Уиткофф и Кушнер в ближайшие недели посетят Россию
3. 5 июня - визит Кушнера и Уиткоффа в Россию в ближайшее время не ожидается
4. 5 июня - поездка Уиткоффа и Кушнера в Россию готовится, но сроки еще неизвестны
5. 11 июня - в июне должна состояться встреча с Уиткоффом и Кушнером
6. 14 июня - Уиткофф и Кушнер в ближайшее время вновь приедут в Россию
7. 15 июня - Российская сторона ждет визита Уиткоффа и Кушнера в обозримом будущем
8. 16 июня - точных дат приезда Уиткоффа и Кушнера в Россию пока нет
9. 18 июня - Уиткофф и Кушнер в ближайшее время посетят Россию, но конкретные даты не определены
10. 23 июня - даты визита Кушнера и Уиткоффа пока не согласованы
Судя по всему, цвет недельной свечи на этой неделе будут решать эти двое. Потому что без этой новости закрытие пятницы было шортовым. По крайней мере для Газпрома $GAZP - по хорошему здесь надо вернуться под 92.4₽, чтобы шорт снова стал актуальным.
В качестве хеджирования позиции, в вотчлист добавляю индекс МосБиржи $MXU6 с сопротивлением на 233500₽ - при закреплении выше буду брать лонг.
---
По валюте лонги закрыл полностью. Близятся уровни на 12.5₽ $CRU6 и 83600₽ $SiU6 по юаню и доллару, соответственно. Здесь буду искать новые точки входа.
---
И под закрытие рынка брал шорт нефти $BRU6 через выходные. С коротким стопом и целью в район 78-80$