реклама
Бургер менюБургер меню

Ярослав Суков – Стресс-тестирование портфелей: готовимся к кризисам (страница 8)

18

Tail-risk: философия и практика

Tail-risk — это не метрика, а целая философия управления рисками. Ее суть: мы не можем предсказать кризис, но мы можем застраховаться от него.

Инвестор, осознающий tail-risk:

- Покупает опционы вне денег (deep OTM puts) на индекс. Они дешевы, и в обычные дни сгорают. Но в день краха они приносят 1000-кратную прибыль, которая компенсирует потери портфеля.

- Держит кэш (10-20%) не как «неэффективный актив», а как «страховку от ликвидного шока».

- Избегает стратегий с «короткой волатильностью» (продажа опционов), которые имеют положительную доходность в обычные дни, но взрываются в кризис.

Пример из реальности: Фонд Universa Investments (советник — Талеб) построил стратегию на покупке дешевых опционов. В 2008 году, когда S&P упал на 38%, фонд Universa заработал 115% (да, плюс 115% в год краха). Они потеряли деньги в спокойные годы (опционы сгорали), но пережили кризис с огромной прибылью.

Как применить tail-risk в вашем портфеле:

- Выделите 1-3% портфеля на покупку очень дешевых опционов «put» на индекс (страйк на 20-30% ниже текущей цены, экспирация 6-12 месяцев).

- Считайте эти 1-3% не инвестицией, а страховой премией. Они могут обнулиться. Но если рынок упадет на 30%, эти опционы вырастут в 10-20 раз и спасут ваш портфель.

Монте-Карло симуляции

От подбрасывания монет к моделированию апокалипсиса

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

Базовый алгоритм:

1. Задайте вероятностные распределения для всех факторов (доходности активов, волатильность, корреляции).

2. Сгенерируйте один случайный сценарий (вытяните значения из распределений).

3. Рассчитайте стоимость портфеля в этом сценарии.

4. Повторите шаги 2-3 N раз (N = 10 000, 100 000, 1 млн).

5. Постройте гистограмму конечных стоимостей портфеля. Найдите квантили, средние, хвосты.

Пример кода на Python (упрощенный, но работающий)

python

import numpy as np

import pandas as pd

# Параметры портфеля: два актива

weights = np.array([0.6, 0.4]) # 60% акции, 40% облигации

expected_returns = np.array([0.08, 0.04]) # годовые ожидаемые доходности

volatilities = np.array([0.20, 0.08]) # годовые волатильности

correlation = 0.2 # корреляция между активами

cov_matrix = np.array([[0.20**2, 0.20*0.08*correlation],

[0.20*0.08*correlation, 0.08**2]])

# Параметры симуляции

n_simulations = 100000

horizon_days = 10

annual_trading_days = 252

mu_daily = expected_returns / annual_trading_days

cov_daily = cov_matrix / annual_trading_days

# Генерация случайных доходностей (многомерное нормальное)

returns_sim = np.random.multivariate_normal(mu_daily, cov_daily,

size=(n_simulations, horizon_days))

# Совокупная доходность за горизонт

cumulative_returns = np.exp(np.sum(returns_sim, axis=1)) - 1

portfolio_returns = cumulative_returns @ weights

# Метрики

VaR_95 = np.percentile(portfolio_returns, 5) # левый хвост 5%

ES_95 = portfolio_returns[portfolio_returns <= VaR_95].mean()

print(f"VaR 95% (10 дней): {VaR_95:.2%}")

print(f"Expected Shortfall 95%: {ES_95:.2%}")

Что делает этот код: Симулирует 100 000 различных 10-дневных путей для портфеля из акций и облигаций, учитывая корреляцию. Затем вычисляет VaR и ES.

Когда Монте-Карло незаменим

1. Нелинейные активы (опционы, конвертируемые облигации, structured products). Их цена нелинейно зависит от базового актива. Аналитических формул нет — только симуляция.

2. Сложные зависимости (не нормальные, копулы). Вы можете генерировать случайные величины из t-распределения или использовать копулы, чтобы смоделировать «хвостовую зависимость» (когда активы падают вместе сильнее, чем растут вместе).

3. Пути зависимости (path-dependence). Некоторые стратегии зависят от *последовательности* доходностей, а не только от конечной точки. Монте-Карло это позволяет.

4. Оценка хвостовых мер (CVaR, tail beta). Аналитически их трудно вычислить для сложных портфелей. Монте-Карло дает численную оценку.

Ограничения и подводные камни

- Garbage in, garbage out. Если вы задали неверные распределения (например, нормальные, а должны быть с толстыми хвостами), результат будет красивым, но ложным.

- Вычислительная сложность. Для оценки хвостов 99.9% нужно не 10 000 симуляций, а миллионы. Иначе в хвост просто не попадает достаточное количество точек.

- Проблема размерности. С ростом числа активов ковариационная матрица становится огромной и трудно оцениваемой.

- Стационарность. Монте-Карло предполагает, что распределения не меняются со временем. Но в кризис волатильность растет, корреляции скачут. Нужны режим-переключающие модели.

Продвинутая техника: Симуляция толстых хвостов через t-распределение

python

from scipy.stats import t

# Вместо многомерного нормального используем многомерное t

# с 3 степенями свободы (очень толстые хвосты)

df = 3

returns_sim_t = np.random.multivariate_normal(mu_daily, cov_daily,