Оценка активов: Метод предиктор-корректора

Диаграмма петли обратной связи из Википедии. Описанный здесь метод предиктор-корректор возвращает ошибки, вычисленные во время тестирования на истории, чтобы улучшить тестирование модели на истории. Затем поправки могут быть применены к форвардным прогнозам.

В нашей предыдущей статье о тестировании моделей цен на дрейф-диффузионные активы мы вкратце упомянули наш метод предиктор-корректор, который вдохновлен методом предиктор-корректор в численных методах:

https://en.wikipedia.org/wiki/Predictor%E2%80%93corrector_method

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

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

Изучая доходность BTC, мы видим большой отход от нормального состояния в прошлом году: небольшой бычий перекос, но, что более важно (как мы думаем) высокий эксцесс (жирность хвоста и коэффициент хвостов 1,4, что означает, что жирные хвосты в прошлом году были перекошены в бычий тренд).

В программном обеспечении MCarloRisk3D мы показываем описательную статистику для распределения процентов по доходности. Здесь мы предварительно настроили его на использование 365 дней назад во времени для анализа распределения. Красные метки указывают, где отображается статистика. Эти описательные статистические данные приведены для справки, но не используются в прогнозах. В прогнозе используется все эмпирическое распределение.

Средняя доходность близка к нулю (согласно гипотезе эффективного рынка?), поэтому вот пример опасности полагаться только на среднее значение и стандартное отклонение для описания доходности BTC: Мы видим метрики более высокого порядка, похожие на моменты, такие как наклон и хвостовое отношение, которые определенно не являются нейтральными по направлению. Кроме того, чрезмерный эксцесс или упитанность хвоста почти в 3 подразумевает много экстремального поведения в этих возвращениях.

Базовая модель

Мы настроим модель для оценки цены BTC на два месяца вперед (60 дней), используем данные за (скользящий) год назад, чтобы извлечь доходы для построения нашей модели, и проведем исчерпывающее тестирование за 3 года (1095 дней [Примечание 1]), чтобы увидеть, как эта базовая модель тестирует на истории:

3-летнее тестирование 60-дневных прогнозов. Красными отметками обозначены области, где реальность была хуже, чем наша модель риска (наша базовая модель риска недооценивает риск).

Несмотря на то, что мы учитываем «жирные хвосты» и асимметрию наших фактических данных о доходности (не предполагая, что доходность нормальная), мы по-прежнему видим, что реальность нарушает предполагаемые 60-дневные прогнозы. То, что должно быть нарушением кривой риска в 5%, составляет 10,8%, а то, что должно быть нарушением в 1%, отображается как 5,2%. Это означает, что наша модель время от времени недооценивала риск снижения за последние 3 года. Представьте себе, что было бы, если бы мы построили модель, предполагающую нормально распределенную доходность? Он был бы еще более далек от реальности, если бы мы протестировали его на истории.

Коррекция среднего значения

Теперь мы можем перевести петлю обратной связи переключателя Pred-corr в положение On, чтобы взять эти ошибки и автоматически передать их обратно в прогнозист и скорректировать модель. Этот процесс сначала корректирует среднее значение, а затем корректирует волатильность или стандартное отклонение модели на втором этапе.

После первой итерации коррекции (корректировки среднего) показатели риска улучшаются.

После первой итерации (нажатие кнопки Validate после переключения указанного переключателя в положение On) код вычислил среднюю корректировку -$3786, в результате чего целевой риск 5% отображается как 6,8%, а целевой риск 1% — как 3,8%: улучшение! Ближе к реальности бэктеста. Затем мы снова нажимаем кнопку Validate, которая автоматически сообщает коду настроить волатильность на этой второй итерации.

В то время как среднее значение корректируется в долларах, волатильность корректируется коэффициентом умножения.

Коррекция волатильности

Теперь код вычисляет коррекцию объема около 1,35 (следующие 60 дней более волатильны, чем указанная недавняя скользящая доходность за 1 год), и теперь наши метрики риска отображаются следующим образом:

Вторая итерация корректирует волатильность на * 1,34. Мы видим меньше нарушений уровней риска 5% и 1%. Может быть, это немного чрезмерная коррекция.

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

Ручная настройка коррекции волатильности

Мы прошли через пару ручных итераций (не показаны), и здесь мы получаем поправочный коэффициент 1,15.

После ручной корректировки коррекции волатильности до 1,15 наши пробои диапазона риска довольно хорошо вписываются в линию.

Сейчас наш целевой риск в 5% отображается как 5,2% при тестировании на истории, а наш целевой уровень риска в 1% — как 0,3%. Статистика показывает, что это немного завышенная оценка риска в 1%, но лучше, чем на прошлой итерации. Пока достаточно хорошо. Лучше, чем оценки, которые вы увидите в финансовых телешоу? Создавайте свои собственные модели и проверяйте их, чтобы увидеть! С этим приложением у вас теперь есть сила.

Возможно, как и музыкант Граймс, вы тоже оцените эту силу:

https://en.wikipedia.org/wiki/We_Appreciate_Power

Применение поправок к прогнозам

Затем мы можем вернуться к нашему окну прогноза и посмотреть, как эти коррекции повлияют на прогноз на следующие 60 дней.

Прогноз на будущее, без бэктеста, коррекция выключена, обратите внимание, что ярко-зеленая срединная линия наклонена вверх.
Коррекция включена, переключатель для этого вызван, и соответствующая ярко-зеленая линия номинальная на горизонте прогноза. Обратите внимание, что ярко-зеленая линия прогноза теперь имеет гораздо меньший наклон, чем в оригинале. Ближе к предположению ЭМГ о наклоне 0.

Без коррекции наш 60-дневный прогноз ожидаемой (медианной) стоимости BTC составил $58843. С включенной коррекцией это $54599, разница примерно в 7%: Нетривиально.

Поправка также применяется ко всему диапазону вероятностей. При отключенной коррекции прогноз на 60 дней для 5-95-го процентиля составляет:

$48009 до $57705

и с поправкой на:

$38756 до $75979

Что составляет около 20% разницы на медвежьей стороне и 25% на бычьей. Например, коррекция толкает диапазон прогноза вниз и шире, чем базовый прогноз Монте-Карло. Опять же, помните, что базовый метод Монте-Карло включает в себя ненормальность, жирные хвосты и т.д., которые встречаются в фактических данных о доходности, поэтому предположение о нормальности сделало бы нескорректированный прогноз еще дальше от того, что показывает бэктест.

В качестве дополнительного замечания мы должны сказать, что эти тесты не являются примерами полос Боллинджера, хотя они имеют некоторые общие черты с этими полосами. Это форвардные прогнозы по методу Монте-Карло, которые дают более широкий спред, чем эти полосы, не сглажены, и они не показывают, будет ли актив «пинговать» при попадании в полосу, как некоторые люди интерпретируют полосы Боллинджера. На самом деле, вы можете видеть, где синяя линия реальности время от времени задерживается в верхней или нижней части полос прогноза риска… Такое иногда случается. Здесь мы по-прежнему исходим из случайных блужданий: если и есть прогноз направления, то он часто перегружен большой дисперсией.

Фьючерсы

Может быть, есть способ добавить дополнительные шаги коррекции для корректировки асимметрии и эксцесса в дополнение к поправкам на среднее значение и стандартное отклонение, которые мы здесь делаем? Может быть… Следите за обновлениями на этом канале!

Дополнительные материалы

Более подробную информацию и обсуждения можно найти на обучающих слайдах для этой функции: https://diffent.com/mcrtrain/MCRSlideSetPredCorr.pdf

Более формальный технический документ по этой теме доступен на SSRN:

https://papers.ssrn.com/sol3/papers.cfm?abstract_id=3654426

Программное обеспечение

MCarloRisk3D с функциями предиктора-корректора можно найти в магазинах приложений для macOS и iPad. Эта функция также доступна в приложении MCarloRisk для iPhone.

Примечания

[Примечание 1] Как далеко назад нужно тестировать? Это остается на усмотрение аналитика. Если вернуться слишком далеко, то данные могут быть из другого режима, который больше не действует, например, возможно: до GPT AI / после AI … (когда сейчас много криптоденег направляется на проекты ИИ?). До пандемии/после пандемии? У нас нет оценки переключения режимов в этом коде (пока!). Хотя, если вы посмотрите на середину бэктеста (около 1,5 лет назад), то увидите, что там действительно происходит своего рода смена режима с гораздо более низкой волатильностью во 2-й половине бэктеста. Именно тогда ChatGPT начал «взрываться» в популярности? Тем не менее, подход скользящего окна здесь автоматически переходит к новым данным, когда они становятся доступными, и мы видим своего рода гетероскедастическое поведение наших диапазонов риска, которые фиксируются в течение периода тестирования.

Источник