Работа с ограничениями среднего оборота Используя объект PortfolioMAD

Ограничение оборота является дополнительным линейным ограничением абсолютного значения (см. Ограничения Среднего оборота), который осуществляет верхнюю границу в среднем покупок и продаж. Ограничение оборота может быть установлено с помощью объекта PortfolioMAD или функции setTurnover. Ограничение оборота зависит от начального или текущего портфеля, который принят, чтобы быть нулем, если не установил, когда ограничение оборота установлено. Ограничение оборота имеет свойства Turnover, для верхней границы на среднем обороте и InitPort, для портфеля, против которого вычисляется оборот.

Установка ограничений среднего оборота Используя функцию PortfolioMAD

Свойства для ограничений оборота установлены с помощью объекта PortfolioMAD. Предположим, что у вас есть начальный портфель 10 активов в переменной x0, и вы хотите гарантировать, что средний оборот - не больше, чем 30%. Установить это ограничение оборота:

x0 = [ 0.12; 0.09; 0.08; 0.07; 0.1; 0.1; 0.15; 0.11; 0.08; 0.1 ]; 
p = PortfolioMAD('Turnover', 0.3, 'InitPort', x0);
disp(p.NumAssets);
disp(p.Turnover);
disp(p.InitPort);
10

0.3000

0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000
Отметьте, не установлены ли свойства NumAssets или InitPort, прежде или когда ограничение оборота установлено, различные правила применяются, чтобы присвоить значения по умолчанию этим свойствам (см. Подготовку Начального или Текущего Портфеля).

Установка ограничений среднего оборота Используя функцию setTurnover

Можно также установить свойства для оборота портфеля с помощью setTurnover, чтобы задать и верхнюю границу для среднего оборота и начальный портфель. Предположим, что вы имеете начальный портфель 10 активов в переменной x0 и хотите гарантировать, что средний оборот - не больше, чем 30%. Учитывая объект PortfolioMAD p, используйте setTurnover, чтобы установить ограничение оборота с и без начального портфеля, устанавливаемого ранее:

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 = setTurnover(p, 0.3);

disp(p.NumAssets);
disp(p.Turnover);
disp(p.InitPort);
10

0.3000

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 = PortfolioMAD;
p = setTurnover(p, 0.3, x0);
disp(p.NumAssets);
disp(p.Turnover);
disp(p.InitPort);
10

0.3000

0.1200
0.0900
0.0800
0.0700
0.1000
0.1000
0.1500
0.1100
0.0800
0.1000

setTurnover реализует скалярное расширение на аргументе для начального портфеля. Если свойство NumAssets уже установлено в объекте PortfolioMAD, скалярный аргумент для InitPort расширяется, чтобы иметь то же значение через все размерности. Кроме того, setTurnover позволяет вам задать NumAssets как дополнительный аргумент. Чтобы очистить оборот от вашего объекта PortfolioMAD, используйте объект PortfolioMAD или setTurnover с пустыми входными параметрами для свойств, которые будут очищены.

Смотрите также

| | | | | | | | |

Связанные примеры

Больше о