Во многих приложениях, создавая новый оптимальный портфель требует, чтобы сравнение нового портфеля с начальным или текущим портфелем сформировало списки из покупок и продаж. Свойство объекта Портфеля InitPort
позволяет вам идентифицировать начальный или текущий портфель. Начальный портфель также играет существенную роль, если у вас есть или операционные издержки или ограничения оборота. Начальный портфель не должен быть выполнимым в рамках ограничений проблемы. Это может произойти, если веса в портфеле переключили таким образом, что некоторые ограничения становятся нарушенными. Чтобы проверять, выполним ли ваш начальный портфель, используйте функцию checkFeasibility
, описанную в Проверке Портфелей. Предположим, что у вас есть начальный портфель в x0
, затем используйте объект Portfolio
настроить начальный портфель:
x0 = [ 0.3; 0.2; 0.2; 0.0 ];
p = Portfolio('InitPort', x0);
disp(p.InitPort);
0.3000 0.2000 0.2000 0
Как со всеми свойствами массива, можно установить InitPort
со скалярным расширением. Это полезно, чтобы настроить одинаково взвешенный начальный портфель, например, 10 активов:
p = Portfolio('NumAssets', 10, 'InitPort', 1/10); disp(p.InitPort);
0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000 0.1000
Чтобы очистить начальный портфель от вашего объекта Portfolio, используйте или объект Portfolio
или функцию setInitPort
с пустым входом для свойства InitPort
. Если операционные издержки или ограничения оборота установлены, не возможно очистить свойство InitPort
таким образом. В этом случае, чтобы очистить InitPort
, сначала очистите зависимые свойства и затем очистите theInitPort
свойство.
Свойство InitPort
может также быть установлено с setInitPort
, который позволяет вам задать количество активов, если вы хотите использовать скалярное расширение. Например, учитывая начальный портфель в x0
, используйте setInitPort
, чтобы установить свойство InitPort
:
p = Portfolio; x0 = [ 0.3; 0.2; 0.2; 0.0 ]; p = setInitPort(p, x0); disp(p.InitPort);
0.3000 0.2000 0.2000 0
Чтобы создать одинаково взвешенный портфель четырех активов, используйте setInitPort
:
p = Portfolio; p = setInitPort(p, 1/4, 4); disp(p.InitPort);
0.2500 0.2500 0.2500 0.2500
Функции объекта Portfolio, которые работают или с операционными издержками или с ограничениями оборота также, зависят от свойства InitPort
. Так, функции set
для операционных издержек или ограничений оборота разрешают присвоение значения для свойства InitPort
как часть их реализации. Для получения дополнительной информации смотрите Работу с Ограничениями Среднего оборота Используя Объект Портфеля, Работу с Односторонними Ограничениями Оборота Используя Объект Портфеля и Работу с Операционными издержками для деталей. Если или операционные издержки или ограничения оборота используются, то свойство InitPort
должно иметь непустое значение. Отсутствующий определенное значение, присвоенное через объект Portfolio
или различные функции set
, объект Portfolio, устанавливает InitPort
на 0
и предупреждает, если BuyCost
, SellCost
или свойства Turnover
установлены. Следующий пример иллюстрирует то, что происходит, если ограничение среднего оборота задано с начальным портфелем:
p = Portfolio('Turnover', 0.3, 'InitPort', [ 0.3; 0.2; 0.2; 0.0 ]); disp(p.InitPort);
0.3000 0.2000 0.2000 0
p = Portfolio('Turnover', 0.3);
disp(p.InitPort);
Warning: InitPort and NumAssets are empty and either transaction costs or turnover constraints specified. Will set NumAssets = 1 and InitPort = 0. > In Portfolio.checkarguments at 367 In Portfolio.Portfolio>Portfolio.Portfolio at 171 0
Portfolio
| checkFeasibility
| estimateBounds
| setAssetList
| setInitPort