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

Обзор

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

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

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

Смотрите также

|

Связанные примеры

Больше о