Общие операции на объекте портфеля

Именование объекта портфеля

Чтобы назвать объект Portfolio, используйте свойство Name. Name является информационным и не имеет никакого эффекта ни на какие вычисления портфеля. Если свойство Name непусто, Name является заголовком для графика границы эффективности, сгенерированного plotFrontier. Например, если вы создаете фонд распределения активов, вы могли бы назвать Фонд Распределения активов объекта Portfolio:

p = Portfolio('Name','Asset Allocation Fund');
disp(p.Name);
Asset Allocation Fund

Конфигурирование активов во вселенной актива

Основное количество в объекте Portfolio является количеством активов во вселенной актива. Это количество сохраняется в свойстве NumAssets. Несмотря на то, что можно установить это свойство непосредственно, оно выведено из других свойств, таких как среднее значение актива, возвращается и начальный портфель. В некоторых случаях номер активов, возможно, должен быть определен непосредственно. Этот пример показывает, как настроить объект Portfolio, который имеет четыре актива:

p = Portfolio('NumAssets', 4);
disp(p.NumAssets);
4

После установки свойства NumAssets вы не можете изменить его (если никакие другие свойства не установлены, которые зависят от NumAssets). Единственный способ изменить количество активов в существующем объекте Portfolio с известным количеством активов состоит в том, чтобы создать новый объект Portfolio.

Подготовка списка идентификаторов актива

При работе с портфелями необходимо задать вселенную активов. Несмотря на то, что можно выполнить полный анализ, не называя активы во вселенной, полезно сопоставить идентификатор с каждым активом, как вы создаете и работаете с портфелями. Можно создать список идентификаторов актива как вектор ячейки векторов символов в свойстве AssetList. Можно настроить список с помощью следующих двух функций.

Подготовка списков активов Используя функцию портфеля

Предположим, что у вас есть объект Portfolio, p, с активами с символами 'AA'', 'BA', 'CAT', 'DD' и 'ETR'. Можно создать список этих символов актива в объекте с помощью объекта Portfolio:

p = Portfolio('assetlist', { 'AA', 'BA', 'CAT', 'DD', 'ETR' });
disp(p.AssetList);
'AA'    'BA'    'CAT'    'DD'    'ETR'
Заметьте, что свойство AssetList сохраняется как массив ячеек, который содержит векторы символов, и что необходимо передать массив ячеек в объект Portfolio установить AssetList. Кроме того, заметьте, что свойство NumAssets установлено в 5 на основе количества символов, используемых, чтобы создать список активов:
disp(p.NumAssets);
5

Подготовка Списков Активов Используя Функцию setAssetList

Можно также задать список активов с помощью функции setAssetList. Учитывая список символов актива 'AA', 'BA', 'CAT', 'DD', and'ETR', можно использовать setAssetList с:

p = Portfolio;
p = setAssetList(p, { 'AA', 'BA', 'CAT', 'DD', 'ETR' });
disp(p.AssetList);
 'AA'    'BA'    'CAT'    'DD'    'ETR'

setAssetList также позволяет вам ввести символы непосредственно как список, разделенный запятыми, не создавая массив ячеек из символьных векторов. Например, учитывая список символов активов 'AA', 'BA', 'CAT', 'DD' и 'ETR', используют setAssetList:

p = Portfolio;
p = setAssetList(p,'AA', 'BA', 'CAT', 'DD', 'ETR');
disp(p.AssetList);
'AA'    'BA'    'CAT'    'DD'    'ETR'

setAssetList имеет много дополнительных функций, чтобы создать списки идентификаторов актива. Если вы используете setAssetList с только объектом Portfolio, он создает список активов по умолчанию согласно имени, заданному в скрытой общественной собственности defaultforAssetList (который является 'Asset' по умолчанию). Количество созданных имен актива зависит от количества активов в свойстве NumAssets. Если NumAssets не установлен, то NumAssets принят, чтобы быть 1.

Например, если объект Portfolio, p создается с NumAssets = 5, то этот фрагмент кода показывает поведение именования значения по умолчанию:

p = Portfolio('numassets',5);
p = setAssetList(p);
disp(p.AssetList);
'Asset1'    'Asset2'    'Asset3'    'Asset4'    'Asset5'
Предположим, что вашими активами является, например, ETFs, и вы изменяете скрытое свойство defaultforAssetList на 'ETF', можно затем создать список по умолчанию для ETFs:
p = Portfolio('numassets',5);
p.defaultforAssetList = 'ETF'; 
p = setAssetList(p);
disp(p.AssetList);
'ETF1'    'ETF2'    'ETF3'    'ETF4'    'ETF5'

Усечение и дополнение списков активов

Если свойство NumAssets уже установлено, и вы передаете в слишком многих или очень небольшом числе идентификаторов, объекте Portfolio, и функция setAssetList обрезает или заполняет список пронумерованными именами актива по умолчанию, которые используют имя, заданное в скрытой общественной собственности defaultforAssetList. Если список является усеченным или заполненным, предупреждающее сообщение указывает на несоответствие. Например, примите, что у вас есть объект Portfolio с пятью ETFs, и вы только знаете первые три '921937835' CUSIPs, '922908769' и '922042775'. Используйте этот синтаксис, чтобы создать список активов, который заполняет остающиеся идентификаторы актива пронумерованными заполнителями 'UnknownCUSIP':

p = Portfolio('numassets',5);
p.defaultforAssetList = 'UnknownCUSIP';
p = setAssetList(p,'921937835', '922908769', '922042775');
disp(p.AssetList);
Warning: Input list of assets has 2 too few identifiers. Padding with numbered assets. 
> In Portfolio.setAssetList at 121 
    '921937835'    '922908769'    '922042775'    'UnknownCUSIP4'    'UnknownCUSIP5'

Также предположите, что вы имеете слишком много идентификаторов и нуждаетесь только в первых четырех активах. Этот пример иллюстрирует усечение списка активов с помощью объекта Portfolio:

p = Portfolio('numassets',4);
p = Portfolio(p, 'assetlist', { 'AGG', 'EEM', 'MDY', 'SPY', 'VEU' });
disp(p.AssetList);
Warning: AssetList has 1 too many identifiers. Using first 4 assets. 
> In Portfolio.checkarguments at 434
  In Portfolio.Portfolio>Portfolio.Portfolio at 171 
    'AGG'    'EEM'    'MDY'    'SPY'

Скрытый uppercaseAssetList общественной собственности является булевым флагом, чтобы задать, преобразовать ли имена актива к прописным буквам. Значением по умолчанию для uppercaseAssetList является false. Этот пример показывает, как использовать флаг uppercaseAssetList, чтобы обеспечить идентификаторы, чтобы быть прописными буквами:

p = Portfolio;
p.uppercaseAssetList = true;
p = setAssetList(p,{ 'aa', 'ba', 'cat', 'dd', 'etr' });
disp(p.AssetList);
'AA'    'BA'    'CAT'    'DD'    'ETR'

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

| | | | |

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

Больше о

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