Обе функции хеджирования приводят оптимизацию как ограниченный линейный метод наименьших квадратов задачу. (Смотрите функцию 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
Пример в Fully Hedged Portfolio задает пять ограничений равенства, связанных с фиксированными активами 1, 4, 5, 7 и 8. Это уменьшает количество неизвестных с восьми до трех, что все еще является недостаточно определенной системой. Однако, в сочетании с первой целью hedgeopt
, ограничения равенства, связанные с чувствительностью цели в TargetSens
произвести дополнительную систему из трех уравнений с тремя неизвестными. Эта дополнительная система гарантирует, что взвешенные средние значения дельты, гаммы и веги активов 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'
a 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
. Портфель состоит из восьми опционных инструментов: двух опционов опций, одного барьера, одного комплекса, двух интерполяционных инструментов и двух азиатских.
Функции хеджирования требуют входов, которые включают текущие портфельные активы (распределения) и матрицу чувствительности инструмента. Чтобы создать эти входы, начните с загрузки портфеля примера в память
load deriv.mat;
Затем вычислите цены и чувствительность инструментов в этом портфеле.
[Delta, Gamma, Vega, Price] = crrsens(CRRTree, CRRInstSet);
Извлечение текущих портфельных владений (количество удерживаемого количества или количество контрактов).
Holdings = instget(CRRInstSet, 'FieldName', 'Quantity');
Для удобства поместите измерения чувствительности дельты, гаммы и веги в матрицу чувствительности.
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
Первый столбец содержит долларовый модуль цену каждого инструмента, второй содержит владения каждого инструмента, а третий, четвертый и пятый столбцы содержат чувствительность к дельте, гамма и вега, соответственно.
Предположим, что вы хотите получить нейтральный портфель дельты, гаммы и веги с помощью 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
В этом примере портфель полностью хеджируется (одновременно дельта, гамма и вега нейтралитет) и самофинансируется (значения портфеля до и после балансировки (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
обеспечивает соблюдение верхней границы четвертого документа, и портфель по-прежнему полностью хеджируется и самофинансируется.