Во многих приложениях, создавая новый оптимальный портфель требует, чтобы сравнение нового портфеля с начальным или текущим портфелем сформировало списки из покупок и продаж. Portfolio
свойство объекта 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