Обе страхующихся функции снимают оптимизацию в качестве ограниченной проблемы линейного метода наименьших квадратов. (См. функциональный 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
-by-8
матрица в этом примере и d
является 3
-by-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
) являются тем же самым.
Предположим теперь, когда вы хотите поместить некоторые верхние и нижние границы в отдельные инструменты в вашем портфеле. При помощи функции Financial Toolbox™ 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
осуществляет верхнюю границу на четвертом инструменте, и портфель продолжает полностью страховаться и самофинансирующийся.