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$.