Во многих приложениях создание нового оптимального портфеля требует сравнения нового портфеля с первоначальным или текущим портфелем для формирования списков покупок и продаж. PortfolioMAD свойство объекта InitPort позволяет определить начальный или текущий портфель. Начальный портфель также играет важную роль при наличии операционных издержек или ограничений оборота. Первоначальный портфель не обязательно должен быть осуществимым в рамках ограничений проблемы. Это может произойти, если веса в портфеле сдвинулись так, что некоторые ограничения нарушаются. Чтобы проверить, осуществим ли ваш первоначальный портфель, используйтеcheckFeasibility функция, описанная в разделе Проверка портфелей MAD. Предположим, что у вас есть начальный портфель в x0, затем используйте PortfolioMAD объект для настройки начального портфеля:
x0 = [ 0.3; 0.2; 0.2; 0.0 ];
p = PortfolioMAD('InitPort', x0);
disp(p.InitPort) 0.3000
0.2000
0.2000
0Как и для всех свойств массива, можно задать InitPort со скалярным расширением. Это полезно для создания одинаково взвешенного начального портфеля, например, из 10 активов:
p = PortfolioMAD('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
Чтобы очистить исходную портфолио от объекта FircedMAD, используйте либо PortfolioMAD объект или setInitPort с пустым входом для InitPort собственность. Если установлены операционные затраты или ограничения оборота, невозможно очистить InitPort таким образом, свойство. В этом случае очистить InitPort, сначала очистить зависимые свойства, а затем очиститьInitPort собственность.
InitPort свойство также можно задать с помощью setInitPort который позволяет указать количество активов, если требуется использовать скалярное расширение. Например, с учетом первоначального портфеля в x0, использовать setInitPort для установки InitPort свойство:
p = PortfolioMAD; 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 = PortfolioMAD; p = setInitPort(p, 1/4, 4); disp(p.InitPort)
0.2500 0.2500 0.2500 0.2500
PortfolioMAD функции объекта, которые работают либо с транзакционными затратами, либо с ограничениями оборота, также зависят от InitPort собственность. Таким образом, функции набора для операционных затрат или ограничений оборота позволяют присваивать значение для InitPort собственность в рамках их реализации. Для получения дополнительной информации посмотрите Работу с Ограничениями Среднего оборота Используя Объект PortfolioMAD, Работу с Односторонними Ограничениями Товарооборота Используя Объект PortfolioMAD и Работу с Операционными издержками. Если используются либо операционные затраты, либо ограничения оборота, то InitPort свойство должно иметь непустое значение. Отсутствует определенное значение, назначенное через PortfolioMAD объект или различные функции набора, PortfolioMAD наборы объектов InitPort кому 0 и предупреждает, если BuyCost, SellCost, или Turnover свойства заданы. В этом примере показано, что происходит, если указать ограничение среднего оборота для начального портфеля:
p = PortfolioMAD('Turnover', 0.3, 'InitPort', [ 0.3; 0.2; 0.2; 0.0 ]); disp(p.InitPort)
0.3000
0.2000
0.2000
0p = PortfolioMAD('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 PortfolioMAD.checkarguments at 446
In PortfolioMAD.PortfolioMAD>PortfolioMAD.PortfolioMAD at 190
0checkFeasibility | estimateBounds | PortfolioMAD | setAssetList | setInitPort