plotFrontier

Постройте границу эффективности

Синтаксис

[prsk,pret] = plotFrontier(obj)
[prsk,pret] = plotFrontier(obj,NumPorts)
[prsk,pret] = plotFrontier(obj,PortWeights)
[prsk,pret] = plotFrontier(obj,PortRisk,PortReturn)

Описание

пример

[prsk,pret] = plotFrontier(obj) оценивает границу эффективности с количеством по умолчанию 10 портфелей на границе и строит соответствующую границу эффективности для Portfolio, PortfolioCVaR или объектов PortfolioMAD. Для получения дополнительной информации на соответствующих рабочих процессах при использовании этих различных объектов, смотрите Рабочий процесс Объекта Портфеля, Рабочий процесс Объекта PortfolioCVaR и Рабочий процесс Объекта PortfolioMAD.

пример

[prsk,pret] = plotFrontier(obj,NumPorts) оценивает границу эффективности с конкретным количеством портфели на границе и строит соответствующую границу эффективности. Количество портфелей задано NumPorts.

пример

[prsk,pret] = plotFrontier(obj,PortWeights) оценочный эффективный портфель рискует и возвращается с PortWeights и строит границу эффективности с теми портфелями. Этот синтаксис принимает, что вы обеспечиваете допустимые веса эффективного портфеля, как введено. PortWeights является NumAsset-by-NumPorts матрица.

пример

[prsk,pret] = plotFrontier(obj,PortRisk,PortReturn) строит границу эффективности с данными рисками и возвращается. Этот синтаксис принимает, что вы обеспечиваете, допустимые входные параметры для эффективного портфеля рискует и возвращается. PortRisk и PortReturn являются векторами с тем же размером.

Примечание

plotFrontier обрабатывает несколько форматов ввода, как описано выше. Учитывая вселенную актива с активами NumAssets и границу эффективности с портфелями NumPorts, помните, что весами портфеля является NumAsset-by-NumPorts матрицы и что портфельные риски и возвраты являются вектор-столбцами NumPorts.

Примеры

свернуть все

Учитывая портфель p, постройте границу эффективности.

load CAPMuniverse

p = Portfolio('AssetList',Assets(1:12));
p = estimateAssetMoments(p, Data(:,1:12),'missingdata',true);
p = setDefaultConstraints(p);
plotFrontier(p);

Создайте объект Portfolio для 12 запасов на основе CAPMuniverse.mat.

load CAPMuniverse
p0 = Portfolio('AssetList',Assets(1:12));
p0 = estimateAssetMoments(p0, Data(:,1:12),'missingdata',true);
p0 = setDefaultConstraints(p0);

Используйте setMinMaxNumAssets, чтобы задать максимальное количество 3 активов.

pWithMaxNumAssets = setMinMaxNumAssets(p0, [], 3);

Используйте setBounds, чтобы задать нижнюю и верхнюю границу и BoundType 'Conditional'.

pWithConditionalBound = setBounds(p0, 0.1, 0.5,'BoundType', 'Conditional');

Используйте plotFrontier, чтобы сравнить различные объекты портфеля.

figure;
plotFrontier(p0); hold on; 
plotFrontier(pWithMaxNumAssets); hold on; 
plotFrontier(pWithConditionalBound); hold off;
legend('p0', 'with Max 3 assets invested', ' with each asset weight 0 or [0.1, 0.5]', 'location', 'best');

Задайте целевой возврат и используйте estimateFrontierByReturn, чтобы сравнить три объекта портфеля.

targetRetn = 2.0e-3;
pwgt0 = estimateFrontierByReturn(p0, targetRetn);
pwgtWithMaxNumAssets = estimateFrontierByReturn(pWithMaxNumAssets, targetRetn);
pwgtConditionalBound = estimateFrontierByReturn(pWithConditionalBound, targetRetn);

Следующая таблица показывает итоговое выделение для заданного целевого возврата среди трех объектов портфеля. Вы видите, что маленьких положений в 'AAPL' и 'HPQ' избегают в pwgtConditionalBound, и только три актива инвестируют в pwgtWithMaxNumAssets.

result = table(p0.AssetList',pwgt0,pwgtWithMaxNumAssets,pwgtConditionalBound)
result=12×4 table
     Var1      pwgt0      pwgtWithMaxNumAssets    pwgtConditionalBound
    ______    ________    ____________________    ____________________

    'AAPL'    0.076791                0                 0.10002       
    'AMZN'           0                0                       0       
    'CSCO'           0                0                       0       
    'DELL'           0                0                       0       
    'EBAY'           0                0                       0       
    'GOOG'     0.44841          0.47297                 0.44254       
    'HPQ'     0.022406                0                       0       
    'IBM'      0.31139          0.34763                 0.31591       
    'INTC'           0                0                       0       
    'MSFT'     0.14101           0.1794                 0.14153       
    'ORCL'           0                0                       0       
    'YHOO'           0                0                       0       

Учитывая PortfolioCVaR p, постройте границу эффективности.

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioCVaR;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.95);

plotFrontier(p);

Учитывая PortfolioMAD p, постройте границу эффективности.

m = [ 0.05; 0.1; 0.12; 0.18 ];
C = [ 0.0064 0.00408 0.00192 0; 
    0.00408 0.0289 0.0204 0.0119;
    0.00192 0.0204 0.0576 0.0336;
    0 0.0119 0.0336 0.1225 ];
m = m/12;
C = C/12;

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioMAD;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);

plotFrontier(p);

Входные параметры

свернуть все

Объект для портфеля, заданное использование Portfolio, PortfolioCVaR или объект PortfolioMAD. Для получения дополнительной информации о создании объекта портфеля смотрите

Типы данных: object

Число точек, чтобы получить на границе эффективности, заданной как скалярное целое число.

Примечание

Если никакое значение не задано для NumPorts, значение по умолчанию получено из скрытого свойства defaultNumPorts (значением по умолчанию является 10). Если NumPorts = 1, эта функция возвращает портфель, заданный скрытым свойством defaultFrontierLimit (текущим значением по умолчанию является 'min').

Типы данных: double

Стандартные отклонения портфеля возвращаются для каждого портфеля, заданного как вектор.

Примечание

PortRisk и PortReturn должны быть векторами с тем же размером.

Типы данных: double

Средство портфеля возвращается для каждого портфеля, заданного как вектор.

Примечание

PortRisk и PortReturn должны быть векторами с тем же размером.

Типы данных: double

Оптимальные портфели на границе эффективности, заданной как NumAsset-by-NumPorts матрица.

Типы данных: double

Выходные аргументы

свернуть все

Предполагаемые риски эффективного портфеля (стандартное отклонение возвратов, возвращенных как вектор для Portfolio, PortfolioCVaR или входного объекта PortfolioMAD (obj).

Примечание

  • Если объект портфеля имеет имя в свойстве Name, имя отображено как заголовок графика. В противном случае график маркирован "Efficient Frontier".

  • Если объект портфеля имеет начальный портфель в свойстве InitPort, начальный портфель построен и маркирован.

  • Если портфельные риски и возвраты являются входными параметрами, убедитесь, что риски на первом месте в вызывающей последовательности. Кроме того, если портфельные риски и возвраты не сортируются в порядке возрастания, этот метод выполняет вид. На выводе возвращены отсортированные моменты.

Предполагаемый эффективный портфель возвращается, возвращенный как вектор для Portfolio, PortfolioCVaR или входного объекта PortfolioMAD (obj).

Примечание

  • Если объект портфеля имеет имя в свойстве Name, имя отображено как заголовок графика. В противном случае график маркирован "Efficient Frontier".

  • Если объект портфеля имеет начальный портфель в свойстве InitPort, начальный портфель построен и маркирован.

  • Если портфельные риски и возвраты являются входными параметрами, убедитесь, что риски на первом месте в вызывающей последовательности. Кроме того, если портфельные риски и возвраты не сортируются в порядке возрастания, этот метод выполняет вид. На выводе возвращены отсортированные моменты.

Советы

Можно также использовать запись через точку, чтобы построить границу эффективности.

[prsk, pret] = obj.plotFrontier;

Введенный в R2011a

Для просмотра документации необходимо авторизоваться на сайте