Хеджирование с ограниченными портфелями

Обзор

Обе функции хеджирования приводят оптимизацию как ограниченный линейный метод наименьших квадратов задачу. (Смотрите функцию lsqlin для получения дополнительной информации.) В частности, lsqlin пытается минимизировать ограниченную задачу линейного метода наименьших квадратов

minx12Cxd22таким , чтоAxbAeqx=beqlbxub

где 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 параметра ограничена таким образом, что Z1. Кроме того, предположим, что вы как-то добавляете другое ограничение, которое эффективно ограничивает Z0. Ограничение Z1 теперь не влияет на оптимизацию.

Пример: Минимизируйте чувствительность портфеля

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

См. также

|

Похожие примеры

Подробнее о