plotFrontier

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

Описание

пример

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

пример

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

пример

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

пример

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

Примечание

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

Примеры

свернуть все

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

load CAPMuniverse

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

Figure contains an axes. The axes with title \bfEfficient Frontier contains an object of type line.

Создайте 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');

Figure contains an axes. The axes with title \bfEfficient Frontier contains 3 objects of type line. These objects represent p0, with Max 3 assets invested, with each asset weight 0 or [0.1, 0.5].

Задайте целевой возврат и используйте 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.1       
    {'AMZN'}           0                0                       0       
    {'CSCO'}           0                0                       0       
    {'DELL'}           0                0                       0       
    {'EBAY'}           0                0                       0       
    {'GOOG'}     0.44841          0.47297                 0.44255       
    {'HPQ' }    0.022406                0                       0       
    {'IBM' }     0.31139          0.34762                 0.31592       
    {'INTC'}           0                0                       0       
    {'MSFT'}     0.14101          0.17941                 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);

Figure contains an axes. The axes with title \bfEfficient Frontier contains an object of type line.

Учитывая 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);

Figure contains an axes. The axes with title \bfEfficient Frontier contains an object of type line.

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

свернуть все

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

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

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

Примечание

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

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

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

Примечание

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

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

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

Примечание

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

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

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

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

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

свернуть все

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

Примечание

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

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

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

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

Примечание

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

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

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

Советы

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

[prsk, pret] = obj.plotFrontier;

Введенный в R2011a