Распределение оптимального хеджирования для целевых затрат или чувствительности
[
выделяет оптимальный хеджирование по одному из двух критериев:PortSens
,PortCost
,PortHolds
] = hedgeopt(Sensitivities
,Price
,CurrentHolds
)
Минимизация чувствительности портфеля (подверженности риску) для данного набора целевых затрат.
Минимизируйте затраты на хеджирование портфеля с учетом набора целевых чувствительности.
Хеджирование предполагает фундаментальный компромисс между страхованием портфеля и стоимостью страхового покрытия. Эта функция позволяет инвесторам изменять распределение портфеля среди инструментов для достижения любого из критериев. Выбранный критерий выводится из списка входных параметров. Задача приведена как ограниченный линейный метод наименьших квадратов задача.
[
добавляет дополнительные необязательные аргументы.PortSens
,PortCost
,PortHolds
] = hedgeopt(___,FixedInd
,NumCosts
,TargetCost
,TargetSens
ConSet
)
Чтобы проиллюстрировать механизм хеджирования, рассмотрите портфель HJMInstSet
полученный из файла примера deriv.mat
. Портфель состоит из восьми инструментов: двух облигаций, одной опции на облигации, одной ноты с фиксированной ставкой, одной ноты с плавающей ставкой, одной прописной буквы, одного этажа и одного свопа.
В этих примерах целевые чувствительности портфеля рассматриваются как ограничения равенства в процессе оптимизации. Можно использовать hedgeopt
чтобы определить, какие чувствительности вы хотите, и hedgeopt
вычисляет, что будет стоить, чтобы получить эти чувствительности.
load deriv.mat;
Вычислите цену и чувствительность
warning('off')
[Delta, Gamma, Vega, Price] = hjmsens(HJMTree, HJMInstSet)
Delta = 8×1
-272.6462
-347.4315
-8.0781
-272.6462
-1.0445
294.9700
-47.1629
-282.0465
Gamma = 8×1
103 ×
1.0299
1.6227
0.6434
1.0299
0.0033
6.8526
8.4600
1.0597
Vega = 8×1
0.0000
-0.0397
34.0746
0.0000
0
93.6946
93.6946
0.0000
Price = 8×1
98.7159
97.5280
0.0486
98.7159
100.5529
6.2831
0.0486
3.6923
Извлечение текущих портфельных холдингов.
warning('on') Holdings = instget(HJMInstSet, 'FieldName', 'Quantity')
Holdings = 8×1
100
50
-50
80
8
30
40
10
Для удобства разместите delta
, gamma
, и vega
измерения чувствительности в матрицу чувствительности.
Sensitivities = [Delta Gamma Vega];
Каждая строка Sensitivities
матрица связана с другим инструментом в портфолио, и каждый столбец с другой мерой чувствительности.
Результирующие данные портфеля.
disp([Price Holdings Sensitivities])
1.0e+03 * 0.0987 0.1000 -0.2726 1.0299 0.0000 0.0975 0.0500 -0.3474 1.6227 -0.0000 0.0000 -0.0500 -0.0081 0.6434 0.0341 0.0987 0.0800 -0.2726 1.0299 0.0000 0.1006 0.0080 -0.0010 0.0033 0 0.0063 0.0300 0.2950 6.8526 0.0937 0.0000 0.0400 -0.0472 8.4600 0.0937 0.0037 0.0100 -0.2820 1.0597 0.0000
Первый столбец выше - это долларовый модуль цена каждого инструмента, второй - это владения каждого инструмента (удерживаемое количество или количество контрактов), а третий, четвертый и пятый столбцы - это долларовые delta
, gamma
, и vega
чувствительности, соответственно.
Текущие чувствительности портфеля являются взвешенным средним значением инструментов в портфеле.
TargetSens = Holdings' * Sensitivities
TargetSens = 1×3
105 ×
-0.6191 7.8895 0.0485
Ведение существующих распределений
Чтобы проиллюстрировать использование hedgeopt
предположим, что вы хотите сохранить свой существующий портфель. hedgeopt
минимизирует стоимость хеджирования портфеля с учетом набора целевых чувствительности. Если вы хотите сохранить свой существующий состав портфеля и воздействие, вы должны быть в состоянии сделать это, не тратя никаких денег. Чтобы проверить это, установите чувствительность цели к текущим чувствительности.
FixedInd = [1 2 3 4 5 6 7 8]; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,Holdings, FixedInd, [], [], TargetSens)
Sens = 1×3
105 ×
-0.6191 7.8895 0.0485
Cost = 0
Quantity = 1×8
100 50 -50 80 8 30 40 10
Состав портфеля и чувствительность не меняются, а стоимость, связанная с ничего не делая, равна нулю. Стоимость определяется как изменение значения портфеля. Это число не может быть меньше нуля, потому что стоимость ребалансирования определяется как неотрицательное число.
Если Value0
и Value1
представление стоимости портфеля до и после ребалансировки, соответственно, нулевая стоимость также может быть проверена путем сравнения значений портфеля.
Value0 = Holdings' * Price
Value0 = 2.3675e+04
Value1 = Quantity * Price
Value1 = 2.3675e+04
Частично хеджированный портфель
Основываясь на этом примере, предположим, что вы хотите знать стоимость для достижения общей долларовой чувствительности портфеля [-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 = 1×3
104 ×
-2.3000 -0.3300 0.3000
Cost = 1.9174e+04
Quantity = 1×8
100.0000 -141.0267 137.2638 80.0000 8.0000 -57.9606 40.0000 10.0000
Пересчет Value1
, значение портфеля после ребаланса.
Value1 = Quantity * Price
Value1 = 4.5006e+03
Как и ожидалось, стоимость, $19174,02, является различием между Value0
и Value1
, $23674.62 — $4500.60. Только положения в инструментах 2
, 3
, и 6
изменяются.
Полностью хеджированный портфолио
Пример проиллюстрировал частичное хеджирование, но, пожалуй, самый интересный случай предполагает стоимость, связанную с полностью хеджированным портфелем (одновременно delta
, gamma
, и vega
нейтралитет). В этом случае установите целевую чувствительность к вектору-строке 0
s и вызов hedgeopt
снова.
TargetSens = [0 0 0]; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price, Holdings, FixedInd, [], [], TargetSens)
Sens = 1×3
10-10 ×
0.1091 0.5821 0.0045
Cost = 2.3056e+04
Quantity = 1×8
100.0000 -182.3615 -19.5501 80.0000 8.0000 -32.9674 40.0000 10.0000
Изучение выходов показывает, что вы получили полностью хеджированный портфель, но за счет более чем 20 000 долларов США и Quantity
определяет позиции, необходимые для нахождения полностью хеджированного портфеля.
Получившееся новое значение портфеля
Value1 = Quantity * Price
Value1 = 618.7168
Sensitivities
- Чувствительность каждого прибораЧувствительность каждого инструмента, заданная как ряд инструментов (NINST
) по количеству чувствительности (NSENS
) матрица чувствительности к доллару. Каждая строка представляет другой инструмент. Каждый столбец представляет разную чувствительность.
Типы данных: double
Price
- Цены на приборыЦены на приборы, указанные как NINST
-by- 1
вектор.
Типы данных: double
CurrentHolds
- Контракты, распределенные по каждому инструментуКонтракты, присвоенные каждому инструменту, указываются как NINST
-by- 1
вектор.
Типы данных: double
FixedInd
- Количество стационарных приборов[ ]
(по умолчанию) | вектор(Необязательно) Количество фиксированных инструментов, заданное как NFIXED
-by- 1
вектор индексов приборов для фиксации. Для примера, чтобы сохранить первый и третий инструменты портфеля 10 инструментов без изменений, установите FixedInd = [1 3]
. По умолчанию = []
, без фиксированных инструментов.
Типы данных: double
NumCosts
- Число точек, сгенерированных вдоль границы затрат10
(по умолчанию) | целое число(Необязательно) Число точек, сгенерированных вдоль границы затрат, когда вектор целевых затрат (TargetCost
) не определен, задается как целое число. По умолчанию это 10 одинаково разнесенных точек между точкой минимальной стоимости и точкой минимальной экспозиции. При указании TargetCost
, введите NumCosts
как пустая матрица []
.
Типы данных: double
TargetCost
- Целевые значения затрат вдоль границы затрат[ ]
(по умолчанию) | вектор(Необязательно) Целевые значения затрат вдоль границы затрат, заданные как вектор. Если TargetCost
пуст или не введен hedgeopt
оценивает NumCosts
равномерно распределенные целевые затраты между минимальной стоимостью и минимальным воздействием. Когда задано, элементы TargetCost
должны быть положительными числами, которые представляют максимальное количество денег, которые владелец готов потратить на восстановление баланса портфеля.
Типы данных: double
TargetSens
- Целевые значения чувствительности портфеля[ ]
(по умолчанию) | вектор(Необязательно) Целевые значения чувствительности портфеля, заданные как 1
-by- NSENS
вектор, содержащий целевые значения чувствительности портфеля. При указании TargetSens
, введите NumCosts
и TargetCost
как пустые матрицы []
.
Типы данных: double
ConSet
- Дополнительные условия перераспределения портфеля[ ]
(по умолчанию) | матрица(Необязательно) Дополнительные условия перераспределения портфеля, заданные как ряд ограничений (NCONS
) по количеству приборов (NINST
) матрица дополнительных условий по перераспределениям портфеля. Подходящее NINST
-by- 1
вектор контрактных владений, PortWts
, удовлетворяет всем неравенствам A*PortWts <= b
, где A = ConSet(:,1:end-1)
и b = ConSet(:,end)
.
Примечание
Пользовательские ограничения, включенные в ConSet
может быть создан с функциями pcalims
или portcons
. Однако, portcons
по умолчанию PortHolds
ограничения позитивности обычно неуместны для проблем хеджирования, поскольку обычно требуются короткие продажи.
NPOINTS
, количество строк в PortSens
и PortHolds
и длину PortCost
, выводится из входов. Когда целевые чувствительности, TargetSens
, введено, NPOINTS = 1
; в противном случае NPOINTS = NumCosts
, или равно длине TargetCost
вектор.
Не все задачи решаемы (для примера пространство решений может быть недопустимым или неограниченным, или решение может не сходиться). Когда допустимое решение не найдено, соответствующие строки PortSens
, PortHolds
, и элементы PortCost
заполнены NaN
s как заполнители.
Типы данных: double
PortSens
- Чувствительность портфеля в долларахЧувствительность портфеля к доллару, возвращенная как число точек (NPOINTS
-by- NSENS
) матрица. Когда существует совершенное хеджирование, PortSens
- нули. В противном случае выбирается лучшее хеджирование.
Примечание
Не все задачи решаемы (для примера пространство решения может быть недопустимым, неограниченным или недостаточно ограниченным), или решение может не сходиться. Когда допустимое решение не найдено, соответствующие строки PortSens
и PortHolds
и элементы PortCost
заполнены NaN
как заполнители. В сложение решение может быть не уникальным.
PortCost
- Общая стоимость портфеляОбщая стоимость портфеля, возвращенная как 1
-by- NPOINTS
вектор.
PortHolds
- Контракты, распределенные по каждому инструментуКонтракты, выделенные каждому инструменту, возвращенные в качестве NPOINTS
-by- NINST
матрица. Это перераспределенные портфели.
У вас есть измененная версия этого примера. Вы хотите открыть этот пример с вашими правками?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.