Определение ограничений с ConSet

Введение

Оба hedgeopt и hedgeslf примите дополнительный входной параметр, ConSet, это позволяет вам задавать набор линейных ограничений неравенства для инструментов в вашем портфеле. Примеры в этом разделе кратки. Для получения дополнительной информации относительно ограничительных технических требований портфеля обратитесь к Анализу Портфелей.

Установка ограничений

Для первого примера установки ограничений возвратитесь к полностью застрахованному примеру портфеля, который использовал hedgeopt определить минимальную стоимость получения одновременной дельты, гаммы и vega нейтралитета (предназначаются для чувствительности весь 0). Вспомните это когда hedgeopt вычисляет стоимость изменения баланса портфеля, входная целевая чувствительность, которую вы задаете, обработана как ограничения равенства во время процесса оптимизации. Ситуация воспроизводится затем для удобства.

TargetSens = [0 0 0];
[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... 
Holdings, FixedInd, [], [], TargetSens);

Выходные параметры обеспечивают полностью застрахованный портфель

Sens =
         -0.00          -0.00          -0.00

за счет более чем 23 000$.

Cost =
      23055.90

Положения, требуемые достигнуть этого полностью застрахованного портфеля,

Quantity' =

        100.00
       -182.36
        -19.55
         80.00
          8.00
        -32.97
         40.00
         10.00

Предположим теперь, когда вы хотите поместить некоторые верхние и нижние границы в отдельные инструменты в вашем портфеле. Можно задать эти ограничения, наряду со множеством общих линейных ограничений неравенства, с функцией portcons.

Как пример, примите, что, в дополнение к содержанию инструментов 1, 4, 5, 7, и 8 зафиксированных как прежде, вы хотите к связанному положение всех инструментов к в + контракты/-180 (для каждого инструмента, вы не можете закоротить или долго больше чем 180 контрактов). Применение этих ограничений запрещает текущее положение во втором инструменте (короткие 182.36). Все другие инструменты в настоящее время в верхних / нижних границах.

Можно сгенерировать эти ограничения первым определением векторов нижних и верхних границ и затем вызовом portcons.

LowerBounds = [-180 -180 -180 -180 -180 -180 -180 -180];
UpperBounds = [ 180  180   180 180  180  180  180  180];
ConSet = portcons('AssetLims', LowerBounds, UpperBounds);

Чтобы наложить эти ограничения, вызвать hedgeopt с ConSet как последний вход.

[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... 
Holdings, FixedInd, [], [], TargetSens, ConSet);

Исследуйте выходные параметры и смотрите, что они все установлены в NaN, указание, что проблема, учитывая ограничения, не разрешима. Интуитивно, результаты означают, что вы не можете получить одновременную дельту, гамму и vega нейтралитет с этими ограничениями ни по какой цене.

Чтобы видеть, как близко можно добраться до нейтралитета портфеля с этими ограничениями, вызвать hedgeslf.

[Sens, Value1, Quantity] = hedgeslf(Sensitivities, Price,... 
Holdings, FixedInd, ConSet);
Sens =

       -352.43
         21.99
       -498.77

Value1 =

      855.10

Quantity =

        100.00
       -180.00
        -37.22
         80.00
          8.00
        -31.86
         40.00
         10.00

hedgeslf осуществляет нижнюю границу для второго инструмента, но чувствительность совсем не нейтральна. Стоимость, чтобы получить этот портфель

Value0 - Value1
ans =

      22819.52

Изменение баланса портфеля

Как итоговый пример заданных пользователями ограничений, восстановите равновесие портфеля с помощью второй цели хеджирования hedgeopt. Примите, что вы готовы потратить целых 20 000$, чтобы восстановить равновесие вашего портфеля, и вы хотите знать, какую минимальную чувствительность портфеля можно получить для денег. В этой форме вспомните, что целевые (20 000$) стоимости обработаны как ограничение неравенства во время процесса оптимизации.

Для ссылки, запуска hedgeopt без любых заданных пользователями линейных ограничений неравенства.

[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... 
Holdings, FixedInd, [], 20000);
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$ вдоль Профиля Чувствительности Портфеля показанная на рисунке Стоимость Изменения баланса.

Примите, что, в дополнение к содержанию инструментов 1, 4, 5, 7, и 8 зафиксированных как прежде, вы хотите к связанному положение всех инструментов к в + контракты/-150 (для каждого инструмента, вы не можете закоротить больше чем 150 контрактов, и вы не можете долго больше чем 150 контрактов). Эти границы запрещают текущее положение во вторых и третьих инструментах (-151.86 и-253.47). Все другие инструменты в настоящее время в верхних / нижних границах.

Как прежде, можно сгенерировать эти ограничения первым определением векторов нижних и верхних границ и затем вызовом portcons.

LowerBounds = [-150 -150 -150 -150 -150 -150 -150 -150];
UpperBounds = [ 150  150  150  150  150  150  150  150];
ConSet = portcons('AssetLims', LowerBounds, UpperBounds);

Чтобы наложить эти ограничения, снова вызовите hedgeopt с ConSet как последний вход.

[Sens, Cost, Quantity] = hedgeopt(Sensitivities, Price,... 
Holdings,FixedInd, [], 20000, [], ConSet);
Sens =

      -8818.47        434.43      -4010.79

Cost =

      19876.89

Quantity' =

        100.00
       -150.00
       -150.00
         80.00
          8.00
        -28.32
         40.00
         10.00

С этими ограничениями, hedgeopt осуществляет нижнюю границу для вторых и третьих инструментов. Понесенная стоимость составляет 19 876,89$.

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

|

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

Больше о

Для просмотра документации необходимо авторизоваться на сайте