exponenta event banner

Настройка начального или текущего портфеля

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

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

Функции объекта портфеля, которые работают либо с транзакционными затратами, либо с ограничениями оборота, также зависят от 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

См. также

| | | |

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

Подробнее

Внешние веб-сайты