Хеджирование - это инвестиции для снижения риска неблагоприятных изменений цен в активе. Financial Instruments Toolbox™ предлагает две функции для оценки фундаментальной сделки хеджирования, hedgeopt и hedgeslf.
Первая функция, hedgeopt, решает наиболее общую проблему хеджирования. Он распределяет оптимальное хеджирование для удовлетворения любой из двух целей:
Минимизация затрат на хеджирование портфеля с учетом набора целевых чувствительности.
Минимизация чувствительности портфеля для данного набора максимальных целевых затрат.
hedgeopt позволяет инвесторам изменять распределение портфеля между инструментами в соответствии с любой из целей. Задача отливается как ограниченная линейная задача наименьших квадратов. Для получения дополнительной информации о hedgeopt, см. Хеджирование с помощью хедгеопта.
Вторая функция, hedgeslf, пытается выделить хеджирование самофинансирования среди портфеля инструментов. В частности, hedgeslf попытки сохранить постоянную стоимость портфеля в соответствии с пониженной чувствительностью портфеля (т.е. перераспределенный портфель хеджируется от рыночных движений и наиболее близок к самофинансированию). Если hedgeslf не может найти хеджирование самофинансирования, оно восстанавливает баланс портфеля, чтобы минимизировать общую чувствительность портфеля. Для получения дополнительной информации о hedgeslf, см. Хеджирование самофинансирования с хеджированием.
Примеры в этом разделе рассматривают меры дельты, гамма и веги чувствительности. В этом инструментарии при работе с деривативами процентных ставок дельта является мерой ценовой чувствительности сдвигов кривой форвардной доходности, гамма - мерой дельта-чувствительности сдвигов кривой форвардной доходности, а vega - мерой ценовой чувствительности сдвигов процесса волатильности. Посмотрите bdtsens или hjmsens для получения подробной информации о расчете чувствительности для производных процентных ставок.
Для экзотических опционов собственного капитала основным инструментом является цена акций вместо кривой форвардной доходности. Итак, дельта теперь представляет собой показатель ценовой чувствительности сдвигов в цене акций, гамма - показатель дельта-чувствительности сдвигов в цене акций, а вега - показатель ценовой чувствительности сдвигов в волатильности акций. Посмотрите crrsens, eqpsens, ittsens, или sttsens для получения подробной информации о расчете чувствительности для производных акций.
Примеры вычисления чувствительности для производных инструментов на основе процентных ставок см. в разделе Расчет чувствительности инструментов. Аналогично, примеры, показывающие вычисление чувствительности для экзотических вариантов долевого участия, см. в разделе Вычисление чувствительности долевого инструмента.
Примечание
Дельта, гамма и вега чувствительности, которые вычисляет инструментарий, являются чувствительностью к доллару.
hedgeoptПримечание
Числовые результаты в этом разделе отображаются в формате MATLAB ® bank. Хотя вычисления выполняются с двойной точностью с плавающей запятой, отображаются только два десятичных знака.
Для иллюстрации механизма хеджирования рассмотрим портфель HJMInstSet получено из файла примера deriv.mat. Портфель состоит из восьми инструментов: двух облигаций, одного опциона на облигации, одной ноты с фиксированной ставкой, одной ноты с плавающей ставкой, одной верхней, одной нижней и одной своповой.
Обе функции хеджирования требуют некоторых общих входных данных, включая текущие портфельные запасы (соотнесения) и матрицу чувствительности инструментов. Чтобы создать эти входные данные, загрузите портфель примеров в память
load deriv.mat;
вычислить цену и чувствительность
[Delta, Gamma, Vega, Price] = hjmsens(HJMTree, HJMInstSet);
Warning: Not all cash flows are aligned with the tree. Result will be approximated.
и извлечь текущие портфельные запасы.
Holdings = instget(HJMInstSet, 'FieldName', 'Quantity');
Для удобства поместите измерения дельты, гамма и веги чувствительности в матрицу чувствительности.
Sensitivities = [Delta Gamma Vega];
Каждая строка Sensitivities матрица связана с разным инструментом в портфеле, и каждый столбец имеет различную меру чувствительности.
Обобщение информации о портфеле
disp([Price Holdings Sensitivities])
98.72 100.00 -272.65 1029.90 0.00 97.53 50.00 -347.43 1622.69 -0.04 0.05 -50.00 -8.08 643.40 34.07 98.72 80.00 -272.65 1029.90 0.00 100.55 8.00 -1.04 3.31 0 6.28 30.00 294.97 6852.56 93.69 0.05 40.00 -47.16 8459.99 93.69 3.69 10.00 -282.05 1059.68 0.00
Первый столбец выше - цена каждого инструмента за единицу в долларах, второй - запасы каждого инструмента (количество удерживаемых инструментов или количество контрактов), а третий, четвертый и пятый столбцы - чувствительность к дельте, гамма и веге доллара соответственно.
Текущая чувствительность портфеля - это средневзвешенное значение инструментов в портфеле.
TargetSens = Holdings' * Sensitivities
TargetSens =
-61910.22 788946.21 4852.91Для иллюстрации использования hedgeopt, предположим, что вы хотите сохранить свой существующий портфель. Первая форма hedgeopt минимизирует затраты на хеджирование портфеля с учетом набора целевых чувствительности. Если вы хотите сохранить свой существующий состав портфеля и риск убытков, вы должны иметь возможность сделать это, не тратя никаких денег. Чтобы проверить это, установите целевые чувствительности на текущие.
FixedInd = [1 2 3 4 5 6 7 8]; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,Holdings, FixedInd, [], [], TargetSens)
Holdings =
100.00
50.00
-50.00
80.00
8.00
30.00
40.00
10.00
Sens =
-61910.22 788946.21 4852.91
Cost =
0
Quantity =
Columns 1 through 6
100.00 50.00 -50.00 80.00 8.00 30.00
Columns 7 through 8
40.00 10.00Состав и чувствительность портфеля неизменны, а затраты, связанные с бездействием, равны нулю. Стоимость определяется как изменение стоимости портфеля. Это число не может быть меньше нуля, поскольку стоимость перебалансировки определена как неотрицательное число.
Если Value0 и Value1 представляют стоимость портфеля до и после ребалансировки, соответственно, нулевая стоимость также может быть проверена путем сравнения стоимости портфеля.
Value0 = Holdings' * Price
Value0 =
23674.62
Value1 = Quantity * Price
Value1 =
23674.62Основываясь на примере «Ведение существующих соотнесений», предположим, что необходимо знать стоимость для достижения общей чувствительности портфеля к доллару [-23000 -3300 3000], разрешая торговлю только инструментами 2, 3 и 6 (удерживая фиксированными позиции инструментов 1, 4, 5, 7 и 8). Чтобы найти стоимость, сначала установите чувствительность целевого портфеля к доллару.
TargetSens = [-23000 -3300 3000];
Затем укажите инструменты, которые необходимо зафиксировать.
FixedInd = [1 4 5 7 8];
Наконец, позвоните hedgeopt
[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... Holdings, FixedInd, [], [], TargetSens);
и еще раз изучить результаты.
Sens =
-23000.00 -3300.00 3000.00
Cost =
19174.02
Quantity' =
100.00
-141.03
137.26
80.00
8.00
-57.96
40.00
10.00
Повторно вычислить Value1, стоимость портфеля после ребалансировки.
Value1 = Quantity * Price
Value1 =
4500.60
Как и ожидалось, стоимость, $19174,02, является разницей между Value0 и Value1, $23674.62 — $4500.60. Изменены только позиции в инструментах 2, 3 и 6.
Пример в Частично хеджированный портфель иллюстрирует частичное хеджирование, но, возможно, наиболее интересным случаем является стоимость, связанная с полностью хеджированным портфелем (одновременная дельта, гамма и vega нейтральность). В этом случае установите целевую чувствительность к вектору строки 0 с и вызовите hedgeopt снова. В следующем примере используются данные из хеджирования с хедгеоптом.
TargetSens = [0 0 0]; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price, ... Holdings, FixedInd, [], [], TargetSens);
Анализ результатов показывает, что вы получили полностью хеджированный портфель
Sens =
-0.00 -0.00 -0.00
но за счет более чем 20 000 долларов.
Cost =
23055.90
Позиции, необходимые для создания полностью хеджированного портфеля
Quantity' =
100.00
-182.36
-19.55
80.00
8.00
-32.97
40.00
10.00
привести к новой стоимости портфеля
Value1 = Quantity * Price
Value1 =
618.72Примеры в полностью хеджированном портфеле иллюстрируют использование hedgeopt определить минимальные затраты на хеджирование портфеля с учетом набора целевых чувствительных факторов. В этих примерах целевые чувствительности портфеля рассматриваются как ограничения равенства в процессе оптимизации. Вы говорите hedgeopt какие чувствительности вы хотите, и это говорит вам, что это будет стоить, чтобы получить эти чувствительности.
Связанная с этим проблема заключается в минимизации чувствительности портфеля для данного набора максимальных целевых затрат. Для этой цели целевые затраты рассматриваются как ограничения неравенства в процессе оптимизации. Вы говорите hedgeopt больше всего вы готовы потратить на утепление вашего портфеля, и это говорит вам о наименьшей чувствительности портфеля, которую вы можете получить за свои деньги.
Чтобы проиллюстрировать это использование hedgeopt, вычислить чувствительность портфеля в долларах по всей границе затрат. Из предыдущих примеров известно, что траты ничего не копируют существующий портфель, в то время как траты $23 055.90 полностью хеджируют портфель.
Предположим, что, например, вы готовы потратить до 50 000 долл. США и хотите увидеть, какая чувствительность портфеля будет достигнута на границе затрат. Предположим, что одни и те же инструменты сохраняются фиксированными и что граница затрат оценивается от 0 до 50 000 долл. США с шагом 1000 долл. США.
MaxCost = [0:1000:50000];
Теперь звоните hedgeopt.
[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price, ... Holdings, FixedInd, [], MaxCost);
С помощью этих данных можно рассчитать требуемые затраты на хеджирование по сравнению с доступными средствами (сумма, которую вы хотите потратить).
plot(MaxCost/1000, Cost/1000, 'red'), grid xlabel('Funds Available for Rebalancing ($1000''s)') ylabel('Actual Rebalancing Cost ($1000''s)') title ('Rebalancing Cost Profile')
Ребалансировка профиля затрат

и чувствительность портфеля к доллару по сравнению с имеющимися средствами.
figure plot(MaxCost/1000, Sens(:,1), '-red') hold('on') plot(MaxCost/1000, Sens(:,2), '-.black') plot(MaxCost/1000, Sens(:,3), '--blue') grid xlabel('Funds Available for Rebalancing ($1000''s)') ylabel('Delta, Gamma, and Vega Portfolio Dollar Sensitivities') title ('Portfolio Sensitivities Profile') legend('Delta', 'Gamma', 'Vega', 0)
Средства, доступные для перераспределения

hedgeslfЦифры «Профиль затрат на ребалансировку» и «Доступные для перебалансировки средства» указывают на то, что выгоды нет, поскольку доступные для хеджирования средства превышают 23 055,90 долл. США, что является точкой максимальных расходов, необходимых для получения одновременной дельты, гамма и вегской нейтральности. Вы также можете найти эту точку дельта, гамма и vega нейтралитет, используя hedgeslf.
[Sens, Value1, Quantity] = hedgeslf(Sensitivities, Price,... Holdings, FixedInd);
Sens =
-0.00
-0.00
-0.00
Value1 =
618.72
Quantity =
100.00
-182.36
-19.55
80.00
8.00
-32.97
40.00
10.00
Аналогично hedgeopt, hedgeslf возвращает чувствительность к доллару портфеля и количество инструментов (ребалансированные запасы). Однако, напротив, второй выходной параметр hedgeslf - значение повторно сбалансированного портфеля, из которого можно вычислить затраты на ребалансировку путем вычитания.
Value0 - Value1
ans =
23055.90
В этом примере портфель явно не самофинансируется, поэтому hedgeslf находит наилучшее возможное решение, необходимое для получения нулевой чувствительности.
Фактически существует третий синтаксис вызова, доступный для hedgeopt непосредственно связано с результатами, показанными выше для hedgeslf. Предположим, что вместо прямого указания средств, доступных для перебалансировки (больше всего денег вы готовы потратить), вы хотите просто указать количество точек вдоль границы затрат. Этот вызов для hedgeopt отбирает границы затрат в 10 равноотстоящих точках между точкой минимальной стоимости (и потенциально максимальной подверженностью) и точкой минимальной подверженности (и максимальной стоимостью).
[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... Holdings, FixedInd, 10)
Sens =
-32784.46 2231.83 -49694.33
-29141.74 1983.85 -44172.74
-25499.02 1735.87 -38651.14
-21856.30 1487.89 -33129.55
-18213.59 1239.91 -27607.96
-14570.87 991.93 -22086.37
-10928.15 743.94 -16564.78
-7285.43 495.96 -11043.18
-3642.72 247.98 -5521.59
0.00 -0.00 0.00
Cost =
0.00
2561.77
5123.53
7685.30
10247.07
12808.83
15370.60
17932.37
20494.14
23055.90
Теперь постройте график этих данных.
figure plot(Cost/1000, Sens(:,1), '-red') hold('on') plot(Cost/1000, Sens(:,2), '-.black') plot(Cost/1000, Sens(:,3), '--blue') grid xlabel('Rebalancing Cost ($1000''s)') ylabel('Delta, Gamma, and Vega Portfolio Dollar Sensitivities') title ('Portfolio Sensitivities Profile') legend('Delta', 'Gamma', 'Vega', 0)
Перераспределение затрат

В этой вызывающей форме hedgeopt требования hedgeslf для определения максимальной стоимости, необходимой для минимизации чувствительности портфеля (23 055,90 долл. США), и равномерной выборки границы затрат между 0 и 23 055,90 долл. США.
Оба hedgeopt и hedgeslf привести задачу оптимизации как задачу линейных наименьших квадратов с ограничениями. В зависимости от инструментов и ограничений ни одна из функций не может сойтись с решением. В некоторых случаях проблемное пространство может быть неограниченным, и для сходимости могут быть необходимы дополнительные ограничения равенства инструмента или пользовательские ограничения. Для получения дополнительной информации см. раздел Хеджирование с ограниченными портфелями.