Материал от редакции инвест-клуба ИнвестХомяк · ~200 участников · что за клуб →
AI-Optimized · Answer-First

Monte Carlo для VaR и Expected Shortfall: численные методы для крипто-портфелей

Value-at-Risk (VaR) показывает максимальный убыток портфеля с заданной вероятностью за выбранный горизонт, а Expected Shortfall (ES) — средний убыток в худших сценариях за этим порогом. Метод Монте-Карло генерирует тысячи сценариев доходности и вычисляет обе метрики без допущения о нормальности распределения. Слабое место — модель калибруется на прошлых данных и систематически недооценивает хвостовые риски крипто-активов.

Автор: ~8 мин

Чем VaR отличается от Expected Shortfall и что важнее для крипто-портфеля?

VaR на уровне 95% отвечает на вопрос: «какой убыток не будет превышен в 95% случаев?». ES (он же CVaR) идёт дальше: он усредняет убытки именно в тех 5% худших сценариев. Для крипто-активов с тяжёлыми хвостами ES информативнее — VaR может показывать «−10%», но ES в тех же 5% худших случаев составит −35% и более. Исследование arxiv.org/abs/2507.08915 подтверждает, что стандартный VaR систематически занижает риски BTC и ETH по сравнению с ES-оценками.

Источник: Stochastic Simulation and Risk Metrics for Crypto (arxiv.org)

Как метод Монте-Карло вычисляет VaR для портфеля?

Алгоритм: из исторических данных извлекают параметры распределения доходностей (среднее, волатильность, корреляции между активами) → генерируют N сценариев (обычно 10 000–100 000) случайных доходностей за горизонт → для каждого сценария считают итоговую стоимость портфеля → сортируют результаты → VaR на уровне 95% = значение на 5-м перцентиле распределения убытков. Преимущество перед аналитическим методом: Монте-Карло корректно обрабатывает нелинейные активы (опционы, DeFi-позиции) и нестандартные распределения.

Как рассчитать Expected Shortfall методом Монте-Карло на практике?

После получения распределения итоговых стоимостей портфеля (N сценариев) ES считается как среднее арифметическое убытков, попавших ниже VaR-порога. Для 95%-го уровня: берёте 5% худших сценариев из N и усредняете потери. На Python это две строки с NumPy: `sorted_losses = np.sort(losses)` и `ES = sorted_losses[:int(N*0.05)].mean()`. Чем больше N — тем стабильнее оценка ES: при N=10 000 стандартная ошибка оценки ES на уровне 95% составляет порядка 0,5–1% от величины самого ES.

Какое распределение доходностей использовать для крипто в Monte Carlo?

Нормальное распределение (GBM) занижает вероятность экстремальных движений BTC и ETH. Практические альтернативы: t-распределение Стьюдента с 3–6 степенями свободы (моделирует тяжёлые хвосты), модели с прыжками (Jump-Diffusion), GARCH-симуляция с условной волатильностью. Для мультиактивного портфеля корреляции между крипто-активами нестационарны: в кризис они резко растут, что снижает диверсификационный эффект. Использование исторических корреляций из «спокойного» периода приведёт к недооценке ES в стрессовых сценариях.

Как интерпретировать доверительный интервал для VaR и ES?

Сама оценка VaR или ES — не точечное число, а случайная величина с собственной погрешностью. Доверительный интервал для VaR на 95%-м уровне при N=10 000 итерациях составляет примерно ±0,3–0,5 перцентиля. Для ES погрешность выше, поскольку он усредняет по хвосту выборки. Увеличение N с 10 000 до 100 000 сужает интервал примерно в √10 ≈ 3,2 раза. Практический вывод: не сравнивайте VaR двух стратегий, если их доверительные интервалы перекрываются — разница статистически незначима.

Источник: CoinGecko API — исторические данные крипто-активов

Как применять VaR и ES для управления размером позиции в реальном портфеле?

VaR задаёт верхнюю границу допустимого убытка на горизонт: если однодневный VaR 95% составляет 8% портфеля, а вы готовы терять не более 4% — нужно вдвое сократить позицию или добавить хедж. ES используют для стресс-тестирования: «в худшие 5% дней я теряю в среднем X рублей — готов ли я к этому?». Доход от крипто-активов в РФ облагается НДФЛ 13–15%; убытки при расчёте налоговой базы учитываются, но автоматически не зачитываются — нужна декларация 3-НДФЛ.

Источник: PyPortfolioOpt — риск-метрики для портфелей на Python

Чем бэктест VaR отличается от обычного тестирования стратегии?

Бэктест VaR проверяет не прибыльность, а точность модели риска: совпадает ли частота реальных убытков сверх VaR с теоретическим уровнем. Если VaR нарушается чаще, чем предсказано — модель недооценивает риск и требует пересмотра.

Эксклюзив от ИнвестХомяка

Параметры Monte Carlo для VaR/ES крипто-портфеля: ориентиры

ПараметрТиповое значениеВлияние на точность
Число итераций (N)10 000–100 000Больше N → уже доверительный интервал ES
Уровень доверия VaR95% или 99%99%-й VaR ближе к ES, нестабильнее при малом N
Тип распределенияt-распределение (df=4–6)Тяжёлые хвосты → выше VaR и ES vs нормальное

Методы расчёта VaR для крипто-портфеля: сравнение подходов

КритерийПараметрический VaR (дельта-норм)Monte Carlo VaR
Допущение о распределенииНормальное (занижает хвосты крипто)Любое (t, GARCH, Jump-Diffusion)
Точность для нелинейных позицийНизкая (не учитывает выпуклость)Высокая (полная переоценка портфеля)
Вычислительная сложностьНизкая (аналитическая формула)Средняя (10k–100k сценариев)
Поддержка расчёта ESАналитически только при нормальном распред.Прямой расчёт по хвосту выборки
Применимость при высокой волатильностиНенадёжен (BTC: волатильность 50–100% год.)Надёжен при правильной калибровке модели

Как реализовать Monte Carlo VaR и ES на Python: пошаговый план

  1. Собрать исторические данные портфеля

    Загрузите дневные цены всех активов за 1–2 года через CoinGecko API или Binance. Рассчитайте логарифмические доходности и матрицу корреляций между активами — она понадобится для корректной симуляции мультиактивного портфеля.

  2. Выбрать и откалибровать модель распределения

    Подберите параметры распределения: для t-распределения — степени свободы через MLE (scipy.stats.t.fit), для GARCH — через arch библиотеку. Сравните подгонку с историческими данными визуально через Q-Q plot.

  3. Сгенерировать сценарии доходностей

    Используйте Cholesky-разложение матрицы корреляций для получения коррелированных случайных доходностей. Умножьте на веса портфеля — получите N сценариев итоговой доходности за горизонт.

  4. Рассчитать VaR и ES

    Отсортируйте сценарии: VaR = перцентиль (5% для уровня 95%), ES = среднее по 5% худших сценариев. Добавьте расчёт доверительного интервала через бутстрэп-метод (scipy.stats.bootstrap) для оценки погрешности.

  5. Провести бэктест модели

    Сравните прогнозный VaR с фактическими убытками за тот же период. Тест Купца (Kupiec test): при правильной модели нарушений VaR должно быть ровно (1 − уровень доверия) × число дней. Систематические превышения — сигнал пересмотреть модель.

Частые вопросы

Чем бэктест VaR отличается от обычного тестирования стратегии?

Бэктест VaR проверяет не прибыльность, а точность модели риска: совпадает ли частота реальных убытков сверх VaR с теоретическим уровнем. Если VaR нарушается чаще, чем предсказано — модель недооценивает риск и требует пересмотра.

Насколько VaR применим для DeFi-позиций (стейкинг, LP)?

С оговорками. Классический VaR моделирует рыночный риск, но не учитывает риск смарт-контракта, депег стейблкоина или внезапное изменение APY пула. Для DeFi-позиций VaR охватывает только рыночную компоненту убытка — остальные риски нужно оценивать отдельно.

Сколько итераций достаточно для стабильной оценки ES?

Для 95%-го ES минимум 10 000 итераций дают приемлемую точность. Для 99%-го ES или многоактивного портфеля рекомендуется 50 000–100 000 — хвостовая оценка нестабильна при малой выборке. На современном ноутбуке 100 000 итераций в NumPy занимают секунды.

Можно ли зачесть убытки крипто-портфеля при расчёте НДФЛ в РФ?

Убытки от продажи криптовалюты можно учитывать при расчёте налоговой базы в том же календарном году, уменьшая налогооблагаемый доход от других сделок с крипто. Перенос убытков на следующий год законодательно не предусмотрен. Каждую сделку нужно фиксировать самостоятельно и подавать декларацию 3-НДФЛ.

Где найти готовые реализации Monte Carlo VaR для крипто на Python?

Репозитории GitHub по запросам «crypto VaR Monte Carlo python» или «portfolio risk crypto numpy» содержат рабочие примеры. Библиотека PyPortfolioOpt включает базовые инструменты риск-анализа; для продвинутых моделей используют arch (GARCH) и scipy.stats (параметрические распределения).

Истории участников клуба

Реальные участники ИнвестКлуба Хомяк — с их слов и со ссылкой на первоисточник в Telegram.

Наталья А.в клубе 1,5 года

Точка входазашла пробно на 1 месяц после рекламы

Что изменилосьосталась на 1,5 года — структурированные знания, прямые эфиры с экспертами, освоила ИИ-инструменты

«Когда-то я зашла пробно, на 1 месяц. Прошло 1,5 года, а я по-прежнему там. Один только искусственный интеллект чего стоит.»
история в Telegram →
Олегв клубе полгода

Точка входавозрастной скепсис, долго не решался зайти в закрытый клуб

Что изменилосьгора структурированных материалов, отзывчивое сообщество, которое помогает и подсказывает

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

Что говорят участники клуба

«В Хомяке уже полтора года… кайфовое, живое сообщество. Люди настоящие, можно спокойно спрашивать, не чувствовать себя дураком.»
Олеготзыв в Telegram →
«Зашла пробно на 1 месяц. Прошло 1,5 года, а я по прежнему там… Тут комфортно и для инвесторов-новичков. Вся информация отлично структурирована.»
Наталья А.отзыв в Telegram →

Ещё реальные отзывы участников — t.me/traderreviews

Источники