Ограничения одностороннего оборота являются необязательными ограничениями (см. «Ограничения одностороннего оборота»), которые устанавливают верхние ограничения на чистые закупки или чистые продажи. Ограничения одностороннего оборота можно задать с помощью 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.1000
x0 = [ 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.1000
setOneWayTurnover
реализует скалярное расширение аргумента для начального портфеля. Если на NumAssets
свойство уже задано в Portfolio
объект, скалярный аргумент для InitPort
расширяется, чтобы иметь одно и то же значение во всех размерностях. В сложение, setOneWayTurnover
позволяет вам задать NumAssets
как необязательный аргумент. Чтобы удалить односторонний оборот из вашего Portfolio
объект, используйте Portfolio
объект или setOneWayTurnover
с пустыми входами для свойств, которые будут удалены.
Portfolio
| setBounds
| setBudget
| setDefaultConstraints
| setEquality
| setGroupRatio
| setGroups
| setInequality
| setOneWayTurnover
| setTrackingError
| setTrackingPort
| setTurnover