← К списку статей
March 30, 2026
5 мин. чтения

Копулы для моделирования совместного риска в крипто-портфелях

Копулы для моделирования совместного риска в крипто-портфелях
#риск
#копула
#портфель
#VaR
#хвостовая зависимость
#vine copula

Копульные модели — совместное распределение рисков

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

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

Почему линейная корреляция не работает для крипты

Рассмотрим портфель из BTC, ETH, SOL и AVAX. Во время коллапса Terra/Luna в мае 2022 корреляции между этими активами сошлись к 1.0 — ровно тогда, когда диверсификация была нужна больше всего.

Три фундаментальные проблемы корреляции Пирсона:

  1. Неэллиптические распределения. Крипто-доходности демонстрируют значительные асимметрию и эксцесс. У BTC эксцесс дневных доходностей регулярно превышает 10 (у нормального распределения — 3).

  2. Асимметричная зависимость. Активы более коррелированы на падениях, чем на ростах. Этот «breakdown корреляции» ещё более выражен в крипте, чем в акциях.

  3. Хвостовая зависимость. Вероятность того, что два актива одновременно испытают экстремальные потери, не улавливается линейной корреляцией.

Теорема Склара: фундамент

Теорема Склара (1959) утверждает: любое многомерное совместное распределение можно разложить на маргинальные распределения отдельных активов и копулу, которая кодирует всю структуру зависимости.

Это мощно, потому что позволяет:

  • Моделировать маргиналы каждого актива отдельно (GARCH, EVT, любое подходящее распределение)
  • Моделировать зависимость независимо через копулу
  • Комбинировать для получения полного совместного распределения

Семейства копул и хвостовая зависимость

Сравнение хвостовой зависимости разных копул

Гауссова копула

Параметризуется корреляционной матрицей. Хвостовая зависимость: нулевая — систематически недооценивает вероятность совместных экстремальных событий. Это ключевой фактор, который привёл к неправильной оценке CDO до 2008 года, и он столь же опасен для крипто-рисков.

Копула Стьюдента (t-копула)

Вводит симметричную хвостовую зависимость через параметр степеней свободы ν. При ν = 4 и ρ = 0.5, вероятность одновременного попадания обоих активов в худший квантиль ≈ 18%. Крипто-рынки обычно требуют ν в диапазоне 3–8.

Но t-копула навязывает симметричные хвосты — а в реальности крипто-активы чаще падают вместе (нижний хвост), чем растут (верхний).

Копула Клейтона

Улавливает нижнюю хвостовую зависимость — именно то поведение «обвала заражения», которое мы видим в крипте. При θ = 2 вероятность совместных экстремальных потерь ≈ 71%. Верхняя зависимость = 0.

Копула Гумбеля

Зеркальное отражение — улавливает верхнюю хвостовую зависимость (совместный рост).

Выбор копулы для крипто

Семейство Нижняя хвостовая зав. Верхняя хвостовая зав. Когда использовать
Гауссова 0 0 Только для тела распределения
Стьюдента Симметричная Симметричная Общий случай
Клейтона Сильная 0 Моделирование обвалов
Гумбеля 0 Сильная Моделирование ралли
Франка 0 0 Зависимость без хвостовых эффектов

Vine-копулы: решение проблемы размерности

Структура vine-копулы для крипто-портфеля

Стандартные копулы (Гауссова, t) масштабируются на высокие размерности, но навязывают одинаковую зависимость всем парам. Архимедовы копулы (Клейтон, Гумбель) по природе двумерны.

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

Для портфеля из 10 криптоактивов это 45 парных копул — каждая потенциально из другого семейства:

  • BTC-ETH: t-копула (ν=4, ρ=0.72)
  • BTC-SOL: Клейтон (θ=2.1) — сильная зависимость при обвалах
  • ETH-AVAX: Франк (θ=5.3) — зависимость без хвостов
  • SOL-DOT | BTC: Гумбель (θ=1.8) — условная верхняя зависимость

Типы vine-структур

  • C-vine: один центральный узел (например, BTC) связан со всеми. Лучший выбор, когда один актив доминирует.
  • D-vine: последовательная цепочка. Хорош при естественном порядке (по капитализации).
  • R-vine: наиболее общая структура, включающая C-vine и D-vine как частные случаи.

Моделирование маргиналов: GARCH-EVT

Перед подгонкой копулы нужно трансформировать ряды доходностей в равномерные [0,1] переменные:

  1. GARCH-модель для каждого актива → захватывает кластеризацию волатильности
  2. Стандартизированные остатки — убираем временну́ю зависимость
  3. Хвосты через EVT — обобщённое распределение Парето (GPD) для экстремумов
  4. Эмпирическая CDF для тела распределения
  5. Интегральное преобразование вероятности → псевдо-равномерные наблюдения

Для крипто хорошо работает GJR-GARCH(1,1) с t-инновациями — улавливает асимметричный отклик волатильности (плохие новости увеличивают волатильность сильнее хороших).

VaR и CVaR через копулы

Value-at-Risk (VaR)

Через Monte Carlo:

  1. Симулировать N выборок из vine-копулы (в пространстве [0,1])
  2. Обратно трансформировать через обратные маргинальные CDF
  3. Посчитать портфельные доходности
  4. VaR = α-квантиль распределения потерь

CVaR (Expected Shortfall)

CVaR — ожидаемый убыток при условии, что убыток превысил VaR. В отличие от VaR, CVaR когерентен (удовлетворяет субаддитивности), что делает его лучше для оптимизации портфеля.

Почему копульный риск точнее корреляционного

Два портфеля с одинаковой попарной корреляцией 0.5:

Портфель Копула 99% CVaR
A Гауссова (хвостовая зав. = 0) 8.2%
B Клейтон (хвостовая зав. = 0.71) 11.5%

Разница в 99% CVaR между гауссовой и vine-копульной моделями может превышать 30–40% — корреляционные модели недооценивают хвостовой риск на треть и более.

Реализация на Python

Шаг 1: Подгонка GARCH-маргиналов

from arch import arch_model
import numpy as np

def fit_garch_marginal(series, dist="t"):
    model = arch_model(
        series * 100,
        vol="GARCH", p=1, o=1, q=1,  # GJR-GARCH
        dist=dist, mean="AR", lags=1
    )
    result = model.fit(disp="off")
    return result.std_resid.dropna(), result

Шаг 2: Подгонка vine-копулы

import pyvinecopulib as pv

controls = pv.FitControlsVinecop(
    family_set=[
        pv.BicopFamily.student,
        pv.BicopFamily.clayton,
        pv.BicopFamily.gumbel,
        pv.BicopFamily.frank,
        pv.BicopFamily.joe,
        pv.BicopFamily.bb1,       # смесь Clayton-Gumbel
        pv.BicopFamily.bb7,       # смесь Joe-Clayton
    ],
    selection_criterion="bic",
    tree_criterion="tau",
    trunc_lvl=5,
)

vine = pv.Vinecop(U, controls=controls)

Шаг 3: Monte Carlo VaR/CVaR

U_sim = vine.simulate(n=100_000, seeds=[42])

losses = -portfolio_returns
var_99 = np.quantile(losses, 0.99)
cvar_99 = np.mean(losses[losses >= var_99])

Практические рекомендации

Вычислительная стоимость

Vine-копулы — O(d² · n) на уровень дерева. Стратегии оптимизации:

  • Усечение vine (trunc_lvl=3–4) — верхние деревья вносят мало
  • Кэширование модели — перефит копулы раз в неделю, GARCH обновляется ежедневно
  • Параллелизация — GARCH для каждого актива независим

Типичные ошибки

  1. Забыть PIT. Подать сырые доходности в копулу вместо равномерных наблюдений = бессмысленные результаты.
  2. Переобучение семейств. Включить все возможные семейства → используйте BIC и ограничьте до 4–5.
  3. Игнорировать автокорреляцию. Пропустить GARCH-шаг и подать автокоррелированные ряды → зависимость заражена временными эффектами.
  4. Статичные копулы. Копула 2021-го бычьего рынка плохо откалибрована для 2022-го краха → скользящие окна.

Ссылки

  • 📄 Sklar, A. (1959). Fonctions de repartition a n dimensions et leurs marges
  • 📄 Joe, H. (2014). Dependence Modeling with Copulas. Chapman and Hall/CRC
  • 📄 Aas, K. et al. (2009). Pair-copula constructions of multiple dependence. Insurance: Math & Economics
  • 📄 Jeleskovic, V. & Bruhn, L. (2024). Cryptocurrency portfolio optimization: GARCH-Copula within Markowitz
  • 💻 pyvinecopulib — Python-библиотека для vine-копул

Вывод

Копульные модели — особенно vine-копулы — дают математически строгий фреймворк для моделирования совместного риска крипто-портфелей, далеко выходящий за рамки линейной корреляции. Пайплайн GARCH-EVT-Copula стал стандартом на квантовых хедж-фондах и крипто-ориентированных рисковых десках. С библиотеками вроде pyvinecopulib порог входа достаточно низок, чтобы любой систематический трейдер мог интегрировать копульное моделирование в свой рабочий процесс.

Дисклеймер: Информация в этой статье предоставлена исключительно в образовательных и ознакомительных целях и не является финансовым, инвестиционным или торговым советом. Торговля криптовалютами сопряжена с высоким риском убытков.

MarketMaker.cc Team

Количественные исследования и стратегии

Обсудить в Telegram
Newsletter

Будьте в курсе событий

Подпишитесь на нашу рассылку, чтобы получать эксклюзивную аналитику по AI-трейдингу и обновления платформы.

Мы уважаем вашу конфиденциальность. Отписаться можно в любой момент.