Односторонние ограничения оборота являются дополнительными ограничениями (см. Односторонние Ограничения Оборота), которые осуществляют верхние границы на чистом объеме закупок или чистой сумме продаж. Односторонние ограничения оборота могут быть установлены с помощью объекта PortfolioMAD
или функции setOneWayTurnover
. Односторонние ограничения оборота зависят от начального или текущего портфеля, который принят, чтобы быть нулем, если не установил, когда ограничения оборота установлены. Односторонние ограничения оборота имеют свойства BuyTurnover
, для верхней границы на чистом объеме закупок, SellTurnover
, для верхней границы на чистой сумме продаж и InitPort
, для портфеля, против которого вычисляется оборот.
PortfolioMAD
Свойства для односторонних ограничений оборота установлены с помощью объекта PortfolioMAD
. Предположим, что у вас есть начальный портфель с 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 = PortfolioMAD('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% начального портфеля. Учитывая объект PortfolioMAD p
, используйте setOneWayTurnover
, чтобы установить ограничения оборота с и без начального портфеля, устанавливаемого ранее:
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ];
p = PortfolioMAD('InitPort', x0);
p = setOneWayTurnover(p, 0.3, 0.2);
disp(p.NumAssets);
disp(p.BuyTurnover);
disp(p.SellTurnover);
disp(p.InitPort);
x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; p = PortfolioMAD; 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
уже установлено в объекте PortfolioMAD, скалярный аргумент для InitPort
расширяется, чтобы иметь то же значение через все размерности. Кроме того, setOneWayTurnover
позволяет вам задать NumAssets
как дополнительный аргумент. Чтобы удалить односторонний оборот из вашего объекта PortfolioMAD, используйте объект PortfolioMAD
или setOneWayTurnover
с пустыми входными параметрами для свойств, которые будут очищены.
PortfolioMAD
| setBounds
| setBudget
| setDefaultConstraints
| setEquality
| setGroupRatio
| setGroups
| setInequality
| setOneWayTurnover
| setTurnover