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-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);

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.

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

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-by- NumPorts матрица.

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

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

свернуть все

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

Примечание

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

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

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

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

Примечание

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

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

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

Совет

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

[prsk, pret] = obj.plotFrontier;

Введенный в R2011a