'Simple' Ограничения привязки с использованием объекта CVaR'Simple' ограничивающие ограничения - это необязательные линейные ограничения, которые поддерживают верхние и нижние границы весов портфеля (см. «Простые» ограничивающие ограничения). Хотя каждый набор портфолио должен быть ограничен, нет необходимости указывать набор портфолио с явно связанными ограничениями. Например, можно создать набор портфелей с неявным ограничением верхней границы или набор портфелей со средними ограничениями оборота. Связанные зависимости имеют свойства LowerBound для ограничения нижней границы и UpperBound для ограничения верхней границы. Задайте значения по умолчанию для этих ограничений с помощью setDefaultConstraints (см. раздел Установка ограничений по умолчанию для весов портфеля с использованием объекта портфеля).
'Simple' Границы с помощью PortfolioCVaR ФункцияСвойства ограничивающих ограничений задаются через PortfolioCVaR объект. Предположим, что у вас есть сбалансированный фонд с акциями, которые могут составлять от 50% до 75% портфеля, и облигациями, которые могут составлять от 25% до 50% портфеля. Связанные ограничения для сбалансированного фонда устанавливаются следующим образом:
lb = [ 0.5; 0.25 ]; ub = [ 0.75; 0.5 ]; p = PortfolioCVaR('LowerBound', lb, 'UpperBound', ub, 'BoundType', 'Simple'); disp(p.NumAssets) disp(p.LowerBound) disp(p.UpperBound)
2 0.5000 0.2500 0.7500 0.5000
Для продолжения этого примера необходимо настроить бюджетное ограничение. Дополнительные сведения см. в разделе Работа с бюджетными ограничениями с использованием объекта портфеля.
'Simple' Границы с помощью setBounds ФункцияМожно также задать свойства ограничивающих зависимостей с помощью setBounds. Предположим, что у вас есть сбалансированный фонд с акциями, которые могут составлять от 50% до 75% портфеля, и облигациями, которые могут составлять от 25% до 50% портфеля. Дано PortfolioCVaR объект p, использовать setBounds для установки ограничивающих ограничений:
lb = [ 0.5; 0.25 ]; ub = [ 0.75; 0.5 ]; p = PortfolioCVaR; p = setBounds(p, lb, ub,'BoundType', 'Simple'); disp(p.NumAssets) disp(p.LowerBound) disp(p.UpperBound)
2 0.5000 0.2500 0.7500 0.5000
'Simple' Границы с помощью PortfolioCVaR Функция или setBounds ФункцияОба PortfolioCVaR объект и setBounds функция реализует скалярное расширение для LowerBound или UpperBound свойства. Если NumAssets свойство уже установлено в PortfolioCVaR объект, скалярные аргументы для любого свойства расширяются, чтобы иметь одинаковое значение для всех измерений. Кроме того, setBounds позволяет указать NumAssets в качестве необязательного аргумента. Предположим, что у вас есть вселенная из 500 активов и вы хотите установить общие ограничения на все активы в вашей вселенной. В частности, вы являетесь долгосрочным инвестором и хотите иметь не более 5% своего портфеля в любом отдельном активе. Эти ограничивающие ограничения можно задать любым из следующих эквивалентных способов.
p = PortfolioCVaR('NumAssets', 500, 'LowerBound', 0, 'UpperBound', 0.05,'BoundType', 'Simple');
или
p = PortfolioCVaR('NumAssets', 500); p = setBounds(p, 0, 0.05,'BoundType','Simple');
или
p = PortfolioCVaR; p = setBounds(p, 0, 0.05, 500,'BoundType','Simple');
Как снять связанные ограничения с вашего PortfolioCVaR объект, используйте либо PortfolioCVaR объект или setBounds с пустыми вводами для очищаемых свойств. Например, чтобы снять ограничение верхней границы из PortfolioCVaR объект p в предыдущем примере:
p = PortfolioCVaR(p, 'UpperBound', []);PortfolioCVaR | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setOneWayTurnover | setTurnover