Выделите оптимальную преграду для целевых затрат или чувствительности
[ выделяет оптимальную преграду по одному из двух критериев:PortSens,PortCost,PortHolds] = hedgeopt(Sensitivities,Price,CurrentHolds)
Минимизируйте чувствительность портфеля (воздействие) для данного набора целевых затрат.
Минимизируйте стоимость хеджирования портфеля, учитывая набор целевой чувствительности.
Хеджирование включает основной компромисс между страховкой портфеля и стоимостью страхового покрытия. Эта функция позволяет инвесторам изменить выделения портфеля среди инструментов, чтобы достигнуть любого из критериев. Выбранный критерий выведен из списка входных параметров. Проблема снята как ограниченная проблема линейного метода наименьших квадратов.
[ добавляют дополнительные дополнительные аргументы.PortSens,PortCost,PortHolds] = hedgeopt(___,FixedInd,NumCosts,TargetCost,TargetSensConSet)
Чтобы проиллюстрировать средство хеджирования, считайте портфель 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
Как ожидалось стоимость, 19 174,02$, является различием между Value0 и Value1, 23 674,62$ — 4 500,60$. Только положения в инструментах 2, 3, и 6 изменяются.
Полностью застрахованный портфель
Пример проиллюстрировал частичную преграду, но возможно самый интересный случай связал стоимость, сопоставленную с полностью застрахованным портфелем (одновременный delta\Gamma, и vega нейтралитет). В этом случае установите целевую чувствительность к вектору-строке из 0s и вызов 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- 1 вектор.
Типы данных: double
CurrentHolds — Контракты выделяются каждому инструментуКонтракты, выделенные каждому инструменту в виде NINST- 1 вектор.
Типы данных: double
FixedInd — Количество фиксированных инструментов[ ] (значение по умолчанию) | вектор(Необязательно) Количество фиксированных инструментов в виде NFIXED- 1 вектор из индексов инструментов, чтобы содержать зафиксированный. Например, чтобы содержать первые и третьи инструменты 10 инструментальных неизменных портфелей, набор FixedInd = [1 3]. Значение по умолчанию = [], никакие инструменты, сохраненные зафиксированными.
Типы данных: double
NumCosts — Число точек сгенерировано вдоль границы стоимости (значение по умолчанию) | целое число(Необязательно) Число точек сгенерировало вдоль границы стоимости когда вектор из целевых затрат (TargetCost) не задан в виде целого числа. Значением по умолчанию являются 10 равномерно распределенных точек между точкой минимальной стоимости и точкой минимального воздействия. При определении TargetCost, введите NumCosts как пустой матричный [].
Типы данных: double
TargetCost — Целевая величина затрат вдоль границы стоимости[ ] (значение по умолчанию) | вектор(Необязательно) Целевая величина затрат вдоль границы стоимости в виде вектора. Если TargetCost пусто, или не вводимый, hedgeopt оценивает NumCosts равномерно распределенная цель стоит между минимальной стоимостью и минимальным воздействием. Когда задано, элементы TargetCost должны быть положительные числа, которые представляют максимальную сумму денег, которую владелец готов потратить, чтобы восстановить равновесие портфеля.
Типы данных: double
TargetSens — Целевые значения чувствительности портфеля[ ] (значение по умолчанию) | вектор(Необязательно) Целевые значения чувствительности портфеля в виде 1- NSENS вектор, содержащий целевые значения чувствительности портфеля. При определении TargetSens, введите NumCosts и TargetCost как пустые матрицы [].
Типы данных: double
ConSet — Дополнительные условия на перераспределениях портфеля[ ] (значение по умолчанию) | матрица(Необязательно) Дополнительные условия на перераспределениях портфеля в виде многих ограничений (NCONS) количеством инструментов (NINST) матрица дополнительных условий на перераспределениях портфеля. Имеющий право NINST- 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 дополнены NaNs как заполнители.
Типы данных: double
PortSens — Долларовая чувствительность портфеляДолларовая чувствительность портфеля, возвращенная как ряд вопросов (NPOINTS- NSENS) матрица. Когда совершенная преграда существует, PortSens нули. В противном случае лучшая возможная преграда выбрана.
Примечание
Не все проблемы разрешимы (например, пробел решения может быть неосуществимым, неограниченным, или недостаточно ограниченный), или решение может не сходиться. Когда допустимое решение не найдено, соответствующие строки PortSens и PortHolds и элементы PortCost дополнены NaNкак заполнители. Кроме того, решение не может быть уникальным.
PortCost — Общие затраты портфеляОбщие затраты портфеля, возвращенные как 1- NPOINTS вектор.
PortHolds — Контракты выделяются каждому инструментуКонтракты выделяются каждому инструменту, возвращенному как NPOINTS- NINST матрица. Это перераспределенные портфели.
У вас есть модифицированная версия этого примера. Вы хотите открыть этот пример со своими редактированиями?
1. Если смысл перевода понятен, то лучше оставьте как есть и не придирайтесь к словам, синонимам и тому подобному. О вкусах не спорим.
2. Не дополняйте перевод комментариями “от себя”. В исправлении не должно появляться дополнительных смыслов и комментариев, отсутствующих в оригинале. Такие правки не получится интегрировать в алгоритме автоматического перевода.
3. Сохраняйте структуру оригинального текста - например, не разбивайте одно предложение на два.
4. Не имеет смысла однотипное исправление перевода какого-то термина во всех предложениях. Исправляйте только в одном месте. Когда Вашу правку одобрят, это исправление будет алгоритмически распространено и на другие части документации.
5. По иным вопросам, например если надо исправить заблокированное для перевода слово, обратитесь к редакторам через форму технической поддержки.