Обе функции хеджирования приводят оптимизацию как ограниченный линейный метод наименьших квадратов задачу. (Смотрите функцию 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 обеспечивает соблюдение верхней границы четвертого документа, и портфель по-прежнему полностью хеджируется и самофинансируется.