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