exponenta event banner

plotFrontier

График эффективной границы

Описание

пример

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

пример

[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       

При наличии CCVaR 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 имя отображается в качестве названия печати. В противном случае сюжет помечается как «Эффективный рубеж».

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

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

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

Примечание

  • Если объект портфеля имеет имя в Name имя отображается в качестве названия печати. В противном случае сюжет помечается как «Эффективный рубеж».

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

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

Совет

Для построения эффективной границы можно также использовать точечную нотацию.

[prsk, pret] = obj.plotFrontier;

Представлен в R2011a