Обе страхующихся функции снимают оптимизацию в качестве ограниченной проблемы линейного метода наименьших квадратов. (См. функцию lsqlin
для деталей.), В частности, lsqlin
попытки минимизировать ограниченную проблему линейного метода наименьших квадратов
где C, A и Aeq являются матрицами, и d, b, beq, lb, и ub являются векторами. Для программного обеспечения Financial Instruments Toolbox™ x является вектором из активов актива (контракты).
В зависимости от ограничения и количества активов в портфеле, решение конкретной проблемы может или не может существовать. Кроме того, если решение найдено, это не может быть уникально. Для уникального решения, чтобы существовать, должна быть достаточно и соответственно ограничена проблема наименьших квадратов.
Вспомните это hedgeopt
позволяет вам выделять оптимальную преграду одним из двух голов:
Минимизируйте стоимость хеджирования портфеля, учитывая набор целевой чувствительности.
Минимизируйте чувствительность портфеля для данного набора максимальных целевых затрат.
Как пример, воспроизведите результаты для полностью застрахованного примера портфеля.
TargetSens = [0 0 0]; FixedInd = [1 4 5 7 8]; [Sens,Cost,Quantity] = hedgeopt(Sensitivities, Price,... Holdings, FixedInd, [], [], TargetSens);
Sens = -0.00 -0.00 -0.00 Cost = 23055.90 Quantity' = 98.72 -182.36 -19.55 80.00 8.00 -32.97 40.00 10.00
Этот пример находит уникальное решение по стоимости чуть более чем 23 000$. Матричный C
(сформированный внутренне hedgeopt
и передал lsqlin
) актив Price
вектор, описанный как вектор-строка.
C = Price' = [98.72 97.53 0.05 98.72 100.55 6.28 0.05 3.69]
Векторный d
текущая стоимость портфеля Value0 = 23674.62
. Пример обеспечивает, максимально тесно, постоянную стоимость портфеля, удовлетворяющую заданным ограничениям.
В отсутствие любых дополнительных ограничений цель наименьших квадратов связала одно уравнение с восемью неизвестными. Это - недоопределенная система уравнений. Поскольку такие системы обычно имеют бесконечное число решений, необходимо задать дополнительные ограничения, чтобы достигнуть решения с практическим значением.
Дополнительные ограничения могут прибыть из двух источников:
Заданные пользователями ограничения равенства
Целевые ограничения равенства чувствительности, наложенные hedgeopt
Пример в Полностью Застрахованном Портфеле задает пять ограничений равенства, сопоставленных с содержанием активов 1, 4, 5, 7, и 8 зафиксированных. Это сокращает количество неизвестных от восемь до три, который является все еще недоопределенной системой. Однако, когда объединено с первой целью hedgeopt
, ограничения равенства сопоставлены с целевой чувствительностью в TargetSens
создайте дополнительную систему трех уравнений с тремя неизвестными. Это дополнительные системные гарантии, что взвешенное среднее дельты, гаммы, и vega активов 2, 3, и 6, вместе с остающимися активами, сохраненными зафиксированными, удовлетворяет полным целевым потребностям чувствительности портфеля в TargetSens
.
Объединение уравнения цели наименьших квадратов тремя уравнениями чувствительности портфеля предоставляет полной системе четырех уравнений с тремя неизвестными активами актива. Это больше не недоопределенная система, и решение как показано.
Если активы, сохраненные зафиксированными, уменьшаются, например, FixedInd = [1 4 5 7]
, hedgeopt
не возвращает стоимость, полностью застрахованный портфель (Sens = [0 0 0]
и Cost = 0
).
Если вы далее уменьшаете FixedInd
(например, [1 4 5]
, [1 4], или даже
[]
), hedgeopt
всегда не возвращает стоимость, полностью застрахованный портфель. В этих случаях недостаточные ограничения приводят к недоопределенной системе. Несмотря на то, что hedgeopt
не идентифицирует стоимости, полностью застрахованных портфелей, нет ничего уникального о них. Эти портфели имеют мало практического значения.
Ограничения должны быть достаточными и соответственно заданы. Дополнительные ограничения, оказывающие влияние на оптимизацию, называются зависимыми ограничениями. Как простой пример, примите, что параметр Z ограничивается таким образом что . Кроме того, примите, что вы так или иначе добавляете другое ограничение, которое эффективно ограничивает . Ограничение теперь не оказывает влияния на оптимизацию.
Проиллюстрировать использование hedgeopt
чтобы минимизировать чувствительность портфеля для данной максимальной целевой стоимости, задайте целевую стоимость 20 000$ и определите новую чувствительность портфеля, активы и стоимость перебалансированного портфеля.
MaxCost = 20000; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... Holdings, [1 4 5 7 8], [], MaxCost);
Sens = -4345.36 295.81 -6586.64 Cost = 20000.00 Quantity' = 100.00 -151.86 -253.47 80.00 8.00 -18.18 40.00 10.00
Этот пример соответствует точке за 20 000$ вдоль оси стоимости на рисунках, Восстанавливающих равновесие Профиля Стоимости, Фондов, Доступных для Изменения баланса и Изменения баланса Стоимости.
При минимизации чувствительности максимальная целевая стоимость обработана как ограничение неравенства; в этом случае, MaxCost
большинство, которое вы готовы потратить, чтобы застраховать портфель. Цель наименьших квадратов матричный C
матрица, транспонируют входной чувствительности актива
C = Sensitivities'
3
- 8
матрица в этом примере и d
3
- 1
вектор-столбец из нулей,
[0 0 0]'
.
Без любых дополнительных ограничений цель наименьших квадратов приводит к недоопределенной системе трех уравнений с восемью неизвестными. Путем содержания активов 1, 4, 5, 7, и 8 зафиксированных, вы сокращаете количество неизвестных от восемь до три. Теперь с системой трех уравнений с тремя неизвестными, hedgeopt
находит решение показанным.
Сокращение количества активов, сохраненных зафиксированными, создает недоопределенную систему с бессмысленными решениями. Например, смотрите то, что происходит только с четырьмя ограниченными активами.
FixedInd = [1 4 5 7]; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... Holdings, FixedInd, [], MaxCost);
Sens = -0.00 -0.00 -0.00 Cost = 20000.00 Quantity' = 100.00 -149.31 -14.91 80.00 8.00 -34.64 40.00 -32.60
Вы потратили 20 000$ (все фонды, доступные для изменения баланса), чтобы достигнуть полностью застрахованного портфеля.
С увеличением доступных средств к 50 000$ вы все еще расходуете все доступные средства, чтобы получить другой полностью застрахованный портфель.
MaxCost = 50000; [Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... Holdings, FixedInd, [],MaxCost);
Sens = -0.00 0.00 0.00 Cost = 50000.00 Quantity' = 100.00 -473.78 -60.51 80.00 8.00 -18.20 40.00 385.60
Все решения недоопределенной системы бессмысленны. Вы покупаете и продаете различные активы, чтобы получить нулевую чувствительность, расходуя все доступные средства каждый раз. Если вы сокращаете количество основных средств дальше, эта проблема недостаточно ограничивается, и вы не находите решения (выходными параметрами является весь NaN
).
Обратите внимание также, что никакое решение не существует каждый раз, когда ограничения противоречивы. Противоречивые ограничения создают неосуществимое пространство решения; выходными параметрами является весь NaN
.
hedgeslf
Другая функция хеджирования, hedgeslf
, попытки минимизировать чувствительность портфеля, таким образом, что перебалансированный портфель обеспечивает постоянное значение (перебалансированный портфель застрахован против перемещений рынка и самый близкий к тому, чтобы быть самофинансирующимся). Если самофинансирующаяся преграда не найдена, hedgeslf
попытки восстановить равновесие портфеля, чтобы минимизировать чувствительность.
От системного подхода наименьших квадратов, hedgeslf
первые попытки минимизировать стоимость таким же образом это hedgeopt
делает. Если это не может решить эту задачу (никакая стоимость, самофинансирующаяся преграда не возможна), hedgeslf
доходы, чтобы минимизировать чувствительность как hedgeopt
. Таким образом, обсуждение ограничений для hedgeopt
непосредственно применимо к hedgeslf
также.
Чтобы проиллюстрировать это средство хеджирования с помощью акции экзотические опции, считайте портфель CRRInstSet
полученный из MAT-файла в качестве примера deriv.mat
. Портфель состоит из восьми инструментов опции: два фондовых опциона, один барьер, один составной объект, два lookback и два азиата.
Функции хеджирования требуют входных параметров, которые включают текущие активы портфеля (выделения) и матрица инструментальной чувствительности. Чтобы создать эти входные параметры, запустите путем загрузки портфеля в качестве примера в память
load deriv.mat;
Затем вычислите цены и чувствительность инструментов в этом портфеле.
[Delta, Gamma, Vega, Price] = crrsens(CRRTree, CRRInstSet);
Извлеките текущие активы портфеля (сохраненное количество или количество контрактов).
Holdings = instget(CRRInstSet, 'FieldName', 'Quantity');
Поскольку удобство помещает дельту, гамму и vega меры по чувствительности в матрицу чувствительности.
Sensitivities = [Delta Gamma Vega];
Каждая строка Sensitivities
матрица сопоставлена с различным инструментом в портфеле и каждом столбце с различной мерой по чувствительности.
disp([Price Holdings Sensitivities])
8.29 10.00 0.59 0.04 53.45 2.50 5.00 -0.31 0.03 67.00 12.13 1.00 0.69 0.03 67.00 3.32 3.00 -0.12 -0.01 -98.08 7.60 7.00 -0.40 -45926.32 88.18 11.78 9.00 -0.42 -112143.15 119.19 4.18 4.00 0.60 45926.32 49.21 3.42 6.00 0.82 112143.15 41.71
Первый столбец содержит долларовую цену за единицу товара каждого инструмента, второе содержит активы каждого инструмента, и третьи, четвертые, и пятые колонны содержат дельту, гамму и vega долларовую чувствительность, соответственно.
Предположим, что вы хотите получить дельту, гамму и vega нейтральное использование портфеля hedgeslf
.
[Sens, Value1, Quantity]= hedgeslf(Sensitivities, Price, ... Holdings)
Sens = 0.00 -0.00 0.00 Value1 = 313.93 Quantity = 10.00 7.64 -1.56 26.13 9.94 3.73 -0.75 8.11
hedgeslf
возвращает долларовую чувствительность портфеля (Sens
), значение перебалансированного портфеля (Value1
) и новое выделение для каждого инструмента (Quantity
).
Если Value0
и Value1
представляйте стоимость портфеля до и после изменения баланса, соответственно, можно проверить стоимость путем сравнения стоимости портфеля.
Value0= Holdings' * Price
Value0 = 313.93
В этом примере портфель полностью застрахован (одновременная дельта, гамма и vega нейтралитет) и самофинансирующийся (значения портфеля до и после балансировки (Value0
и Value1
) то же самое.
Предположим теперь, когда вы хотите поместить некоторые верхние и нижние границы в отдельные инструменты в вашем портфеле. При помощи функции portcons
, можно задать эти ограничения, наряду с различными общими линейными ограничениями неравенства.
Как пример, примите, что, в дополнение к содержанию инструмента 1 зафиксированный как прежде, вы хотите к связанному положение всех инструментов к в + контракты/-20 (для каждого инструмента, вы не можете закоротить или долго больше чем 20 контрактов). Применение этих ограничений запрещает текущее положение в четвертом инструменте (долго 26.13). Все другие инструменты в настоящее время в верхних / нижних границах.
Можно сгенерировать эти ограничения первым определением векторов нижних и верхних границ и затем вызовом portcons
.
LowerBounds = [-20 -20 -20 -20 -20 -20 -20 -20];
UpperBounds = [20 20 20 20 20 20 20 20];
ConSet = portcons('AssetLims', LowerBounds, UpperBounds);
Чтобы наложить эти ограничения, вызвать hedgeslf
с ConSet
как последний вход.
[Sens, Cost, Quantity1] = hedgeslf(Sensitivities, Price, ... Holdings, 1, ConSet)
Sens = -0.00 0.00 0.00 Cost = 313.93 Quantity1 = 10.00 5.28 10.98 20.00 20.00 -6.99 -20.00 9.39
Наблюдайте это hedgeslf
осуществляет верхнюю границу на четвертом инструменте, и портфель продолжает полностью страховаться и самофинансирующийся.