Назвать PortfolioCVaR объект, используйте Name свойство. Name является информационным и не оказывает влияния ни на какие вычисления портфеля. Если Name свойство непусто, Name заголовок для графика границы эффективности, сгенерированного plotFrontier. Например, если вы создаете фонд распределения активов, вы могли бы назвать PortfolioCVaR объект Asset Allocation Fund:
p = PortfolioCVaR('Name','Asset Allocation Fund'); disp(p.Name)
Asset Allocation Fund
Основное количество в PortfolioCVaR объект является количеством активов во вселенной актива. Это количество обеспечено в NumAssets свойство. Несмотря на то, что можно установить это свойство непосредственно, оно обычно выводится из других свойств, таких как количество активов в сценариях или начальном портфеле. В некоторых случаях номер активов, возможно, должен быть определен непосредственно. В этом примере показано, как настроить PortfolioCVaR объект, который имеет четыре актива:
p = PortfolioCVaR('NumAssets', 4);
disp(p.NumAssets)4
После установки NumAssets свойство, вы не можете изменить его (если никакие другие свойства не установлены, которые зависят от NumAssets). Единственный способ изменить количество активов в существующем PortfolioCVaR объект с известным количеством активов состоит в том, чтобы создать новый PortfolioCVaR объект.
При работе с портфелями необходимо задать вселенную активов. Несмотря на то, что можно выполнить полный анализ, не называя активы во вселенной, полезно сопоставить идентификатор с каждым активом, как вы создаете и работаете с портфелями. Можно создать список идентификаторов актива как вектор ячейки из векторов символов в свойстве AssetList. Можно настроить список с помощью следующих двух методов.
Предположим, что у вас есть PortfolioCVaR объект, p, с активами с символами 'AA'', 'BA'\cat, 'DD', и 'ETR'. Можно создать список этих символов актива в объекте с помощью PortfolioCVaR объект:
p = PortfolioCVaR('assetlist', { 'AA', 'BA', 'CAT', 'DD', 'ETR' }); disp(p.AssetList)
'AA' 'BA' 'CAT' 'DD' 'ETR'
AssetList обеспечен как массив ячеек, который содержит векторы символов, и что необходимо передать массив ячеек в PortfolioCVaR возразите, чтобы установить AssetList. Кроме того, заметьте что свойство NumAssets установлен в 5 на основе количества символов, используемых, чтобы создать список активов:disp(p.NumAssets)
5
setAssetList ФункцияМожно также задать список активов с помощью setAssetList функция. Учитывая список символов актива 'AA', 'BA'\cat, 'DD', and'ETR', можно использовать setAssetList с:
p = PortfolioCVaR;
p = setAssetList(p, { 'AA', 'BA', 'CAT', 'DD', 'ETR' });
disp(p.AssetList)'AA' 'BA' 'CAT' 'DD' 'ETR'
setAssetList также позволяет вам ввести символы непосредственно как список, разделенный запятыми, не создавая массив ячеек из символьных векторов. Например, учитывая список символов активов 'AA', 'BA'\cat, 'DD', и 'ETR'Использование setAssetList:
p = PortfolioCVaR; p = setAssetList(p, 'AA', 'BA', 'CAT', 'DD', 'ETR'); disp(p.AssetList)
'AA' 'BA' 'CAT' 'DD' 'ETR'
setAssetList имеет много дополнительных функций, чтобы создать списки идентификаторов актива. Если вы используете setAssetList с только PortfolioCVaR объект, это создает список активов по умолчанию согласно имени, заданному в скрытой общественной собственности defaultforAssetList (который является 'Asset' по умолчанию). Количество созданных имен актива зависит от количества активов в свойстве NumAssets. Если NumAssets не установлен, затем NumAssets принят, чтобы быть 1.
Например, если PortfolioCVaR объект p создается с NumAssets= 5 , затем этот фрагмент кода показывает поведение именования значения по умолчанию:
p = PortfolioCVaR('numassets',5);
p = setAssetList(p);
disp(p.AssetList)'Asset1' 'Asset2' 'Asset3' 'Asset4' 'Asset5'
defaultforAssetList к 'ETF', можно затем создать список по умолчанию для ETFs:p = PortfolioCVaR('numassets',5); p.defaultforAssetList = 'ETF'; p = setAssetList(p); disp(p.AssetList)
'ETF1' 'ETF2' 'ETF3' 'ETF4' 'ETF5'
Если NumAssets свойство уже установлено, и вы передаете в слишком многих или очень небольшом числе идентификаторов, PortfolioCVaR объект, и setAssetList функционируйте обрезают или заполняют список пронумерованными именами актива по умолчанию, которые используют имя, заданное в скрытой общественной собственности defaultforAssetList. Если список является усеченным или заполненным, предупреждающее сообщение указывает на несоответствие. Например, примите, что у вас есть PortfolioCVaR объект с пятью ETFs и вы только знаете первые три '921937835' CUSIPs, '922908769', и '922042775'. Используйте этот синтаксис, чтобы создать список активов, который заполняет остающиеся идентификаторы актива пронумерованным 'UnknownCUSIP' заполнители:
p = PortfolioCVaR('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 PortfolioCVaR.setAssetList at 118
'921937835' '922908769' '922042775' 'UnknownCUSIP4' 'UnknownCUSIP5'
В качестве альтернативы предположите, что вы имеете слишком много идентификаторов и нуждаетесь только в первых четырех активах. Этот пример иллюстрирует усечение списка активов с помощью PortfolioCVaR объект:
p = PortfolioCVaR('numassets',4); p = PortfolioCVaR(p, 'assetlist', { 'AGG', 'EEM', 'MDY', 'SPY', 'VEU' }); disp(p.AssetList)
Warning: AssetList has 1 too many identifiers. Using first 4 assets.
> In PortfolioCVaR.checkarguments at 399
In PortfolioCVaR.PortfolioCVaR>PortfolioCVaR.PortfolioCVaR at 195
'AGG' 'EEM' 'MDY' 'SPY'Скрытая общественная собственность uppercaseAssetList булев флаг должен задать, преобразовать ли имена актива к прописным буквам. Значение по умолчанию для uppercaseAssetList false. В этом примере показано, как использовать uppercaseAssetList отметьте, чтобы обеспечить идентификаторы, чтобы быть прописными буквами:
p = PortfolioCVaR;
p.uppercaseAssetList = true;
p = setAssetList(p, { 'aa', 'ba', 'cat', 'dd', 'etr' });
disp(p.AssetList)
'AA' 'BA' 'CAT' 'DD' 'ETR'
checkFeasibility | estimateBounds | PortfolioCVaR | setAssetList | setInitPort