Подготовка начального или текущего портфеля

Во многих приложениях, создавая новый оптимальный портфель требует, чтобы сравнение нового портфеля с начальным или текущим портфелем сформировало списки из покупок и продаж. PortfolioCVaR свойство объекта InitPort позволяет вам идентифицировать начальный или текущий портфель. Начальный портфель также играет существенную роль, если у вас есть или операционные издержки или ограничения оборота. Начальный портфель не должен быть выполнимым в рамках ограничений проблемы. Это может произойти, если веса в портфеле переключили таким образом, что некоторые ограничения становятся нарушенными. Чтобы проверять, выполним ли ваш начальный портфель, используйте checkFeasibility функция описана в Проверке Портфелей CVaR. Предположим, что у вас есть начальный портфель в x0, затем используйте PortfolioCVaR возразите, чтобы настроить начальный портфель:

x0 = [ 0.3; 0.2; 0.2; 0.0 ];
p = PortfolioCVaR('InitPort', x0);
disp(p.InitPort);
  0.3000
  0.2000
  0.2000
       0

Как со всеми свойствами массива, можно установить InitPort со скалярным расширением. Это полезно, чтобы настроить одинаково взвешенный начальный портфель, например, 10 активов:

p = PortfolioCVaR('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

Очистить начальный портфель от вашего PortfolioCVaR объект, используйте любого PortfolioCVaR возразите или setInitPort функция с пустым входом для InitPort свойство. Если операционные издержки или ограничения оборота установлены, не возможно очистить InitPort свойство таким образом. В этом случае, чтобы очистить InitPort, сначала очистите зависимые свойства и затем очистите theInitPort свойство.

InitPort свойство может также быть установлено с setInitPort который позволяет вам задать количество активов, если вы хотите использовать скалярное расширение. Например, учитывая начальный портфель в x0, используйте setInitPort установить InitPort свойство:

p = PortfolioCVaR;
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 = PortfolioCVaR;
p = setInitPort(p, 1/4, 4);
disp(p.InitPort); 
 0.2500
 0.2500
 0.2500
 0.2500

PortfolioCVaR возразите функциям, которые работают или с операционными издержками или с ограничениями оборота, также зависят от InitPort свойство. Так, функции множества для операционных издержек или ограничений оборота разрешают присвоение значения для InitPort свойство как часть их реализации. Для получения дополнительной информации смотрите Работу с Ограничениями Среднего оборота Используя Объект PortfolioCVaR, Работу с Односторонними Ограничениями Оборота Используя Объект PortfolioCVaR и Работу с Операционными издержками. Если или операционные издержки или ограничения оборота используются, то InitPort свойство должно иметь непустое значение. Отсутствующий определенное значение присвоено через PortfolioCVaR возразите или различные функции множества, PortfolioCVaR возразите устанавливает InitPort к 0 и предупреждает если BuyCost, SellCost, или Turnover свойства установлены. Этот пример показывает то, что происходит, если вы задаете ограничение среднего оборота с начальным портфелем:

p = PortfolioCVaR('Turnover', 0.3, 'InitPort', [ 0.3; 0.2; 0.2; 0.0 ]);
disp(p.InitPort);
 0.3000
 0.2000
 0.2000
      0
В отличие от этого этот пример показывает то, что происходит, если ограничение среднего оборота задано без начального портфеля:
p = PortfolioCVaR('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 PortfolioCVaR.checkarguments at 322
  In PortfolioCVaR.PortfolioCVaR>PortfolioCVaR.PortfolioCVaR at 195 
     0

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

| | | |

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

Больше о

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