Односторонние ограничения оборота являются необязательными ограничениями (см. Односторонние ограничения оборота), которые устанавливают верхние границы для чистых покупок или чистых продаж. Односторонние ограничения оборота могут быть установлены с помощью Portfolio объект или setOneWayTurnover функция. Односторонние ограничения оборота зависят от первоначального или текущего портфеля, который считается нулевым, если не установлен, когда установлены ограничения оборота. Односторонние ограничения оборота имеют свойства BuyTurnover, для верхней границы чистых покупок, SellTurnover, для верхней границы чистых продаж, и InitPort, для портфеля, по которому рассчитывается оборот.
Portfolio ФункцияСвойства для ограничений одностороннего оборота устанавливаются с помощью Portfolio объект. Предположим, что у вас есть начальный портфель с 10 активами в переменной x0 и вы хотите убедиться, что оборот по покупкам составляет не более 30%, а оборот по продажам - не более 20% от первоначального портфеля. Для установки этих ограничений оборота:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = Portfolio('BuyTurnover', 0.3, 'SellTurnover', 0.2, 'InitPort', x0); disp(p.NumAssets) disp(p.BuyTurnover) disp(p.SellTurnover) disp(p.InitPort)
10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000Если NumAssets или InitPort свойства не задаются до или при установке ограничения оборота применяются различные правила для назначения этим свойствам значений по умолчанию (см. раздел Настройка начального или текущего портфеля).
setOneWayTurnover ФункцияМожно также установить свойства для оборота портфеля с помощью setOneWayTurnover указать верхние границы оборота при закупках (BuyTurnover) и продажи (SellTurnover) и первоначальный портфель. Предположим, что у вас есть начальный портфель из 10 активов в переменной x0 и хотят обеспечить, чтобы оборот по покупкам составлял не более 30% и оборот по продажам составлял не более 20% от первоначального портфеля. Дано Portfolio объект p, использовать setOneWayTurnover для установки ограничений оборота с заданными ранее исходными портфелями и без них:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ];
p = Portfolio('InitPort', x0);
p = setOneWayTurnover(p, 0.3, 0.2);
disp(p.NumAssets)
disp(p.BuyTurnover)
disp(p.SellTurnover)
disp(p.InitPort) 10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = Portfolio; p = setOneWayTurnover(p, 0.3, 0.2, x0); disp(p.NumAssets) disp(p.BuyTurnover) disp(p.SellTurnover) disp(p.InitPort)
10
0.3000
0.2000
0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000setOneWayTurnover реализует скалярное расширение аргумента для начального портфеля. Если NumAssets свойство уже установлено в Portfolio объект, скалярный аргумент для InitPort расширяется, чтобы иметь одинаковое значение для всех размеров. Кроме того, setOneWayTurnover позволяет указать NumAssets в качестве необязательного аргумента. Чтобы удалить односторонний оборот из вашего Portfolio объект, используйте Portfolio объект или setOneWayTurnover с пустыми вводами для очищаемых свойств.
Portfolio | setBounds | setBudget | setDefaultConstraints | setEquality | setGroupRatio | setGroups | setInequality | setOneWayTurnover | setTrackingError | setTrackingPort | setTurnover