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

Корреляция — первый инструмент, за который берётся портфельный менеджер при оценке диверсификации. Но на крипто-рынке корреляция опасно обманчива. Два токена могут показывать корреляцию Пирсона 0.3 в спокойные дни, а потом взлетать до 0.95 в момент краха — именно тогда, когда диверсификация нужна больше всего.
Копульные модели решают эту проблему, разделяя поведение каждого актива по отдельности (маргиналы) и структуру зависимости между ними (копула). Это даёт гибкий фреймворк для моделирования полного совместного распределения — включая хвосты, где и живёт настоящий риск.
Почему линейная корреляция не работает для крипты
Рассмотрим портфель из BTC, ETH, SOL и AVAX. Во время коллапса Terra/Luna в мае 2022 корреляции между этими активами сошлись к 1.0 — ровно тогда, когда диверсификация была нужна больше всего.
Три фундаментальные проблемы корреляции Пирсона:
-
Неэллиптические распределения. Крипто-доходности демонстрируют значительные асимметрию и эксцесс. У BTC эксцесс дневных доходностей регулярно превышает 10 (у нормального распределения — 3).
-
Асимметричная зависимость. Активы более коррелированы на падениях, чем на ростах. Этот «breakdown корреляции» ещё более выражен в крипте, чем в акциях.
-
Хвостовая зависимость. Вероятность того, что два актива одновременно испытают экстремальные потери, не улавливается линейной корреляцией.
Теорема Склара: фундамент
Теорема Склара (1959) утверждает: любое многомерное совместное распределение можно разложить на маргинальные распределения отдельных активов и копулу, которая кодирует всю структуру зависимости.
Это мощно, потому что позволяет:
- Моделировать маргиналы каждого актива отдельно (GARCH, EVT, любое подходящее распределение)
- Моделировать зависимость независимо через копулу
- Комбинировать для получения полного совместного распределения
Семейства копул и хвостовая зависимость

Гауссова копула
Параметризуется корреляционной матрицей. Хвостовая зависимость: нулевая — систематически недооценивает вероятность совместных экстремальных событий. Это ключевой фактор, который привёл к неправильной оценке CDO до 2008 года, и он столь же опасен для крипто-рисков.
Копула Стьюдента (t-копула)
Вводит симметричную хвостовую зависимость через параметр степеней свободы ν. При ν = 4 и ρ = 0.5, вероятность одновременного попадания обоих активов в худший квантиль ≈ 18%. Крипто-рынки обычно требуют ν в диапазоне 3–8.
Но t-копула навязывает симметричные хвосты — а в реальности крипто-активы чаще падают вместе (нижний хвост), чем растут (верхний).
Копула Клейтона
Улавливает нижнюю хвостовую зависимость — именно то поведение «обвала заражения», которое мы видим в крипте. При θ = 2 вероятность совместных экстремальных потерь ≈ 71%. Верхняя зависимость = 0.
Копула Гумбеля
Зеркальное отражение — улавливает верхнюю хвостовую зависимость (совместный рост).
Выбор копулы для крипто
| Семейство | Нижняя хвостовая зав. | Верхняя хвостовая зав. | Когда использовать |
|---|---|---|---|
| Гауссова | 0 | 0 | Только для тела распределения |
| Стьюдента | Симметричная | Симметричная | Общий случай |
| Клейтона | Сильная | 0 | Моделирование обвалов |
| Гумбеля | 0 | Сильная | Моделирование ралли |
| Франка | 0 | 0 | Зависимость без хвостовых эффектов |
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] переменные:
- GARCH-модель для каждого актива → захватывает кластеризацию волатильности
- Стандартизированные остатки — убираем временну́ю зависимость
- Хвосты через EVT — обобщённое распределение Парето (GPD) для экстремумов
- Эмпирическая CDF для тела распределения
- Интегральное преобразование вероятности → псевдо-равномерные наблюдения
Для крипто хорошо работает GJR-GARCH(1,1) с t-инновациями — улавливает асимметричный отклик волатильности (плохие новости увеличивают волатильность сильнее хороших).
VaR и CVaR через копулы
Value-at-Risk (VaR)
Через Monte Carlo:
- Симулировать N выборок из vine-копулы (в пространстве [0,1])
- Обратно трансформировать через обратные маргинальные CDF
- Посчитать портфельные доходности
- 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 для каждого актива независим
Типичные ошибки
- Забыть PIT. Подать сырые доходности в копулу вместо равномерных наблюдений = бессмысленные результаты.
- Переобучение семейств. Включить все возможные семейства → используйте BIC и ограничьте до 4–5.
- Игнорировать автокорреляцию. Пропустить GARCH-шаг и подать автокоррелированные ряды → зависимость заражена временными эффектами.
- Статичные копулы. Копула 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
Количественные исследования и стратегии