exponenta event banner

Построение графика эффективной границы для объекта MAD

plotFrontier функция создает график эффективной границы для данной задачи оптимизации портфеля. Эта функция принимает несколько типов входных данных и генерирует график с опциональной возможностью вывода оценок портфельных рисков и доходности по эффективной границе. plotFrontier имеет четыре различных способа его использования. В дополнение к графику эффективной границы, если у вас есть начальный портфель в InitPort собственность, plotFrontier на том же графике также отображается соотношение доходности и риска исходного портфеля. Если у вас есть хорошо поставленная проблема оптимизации портфеля, настроенная в PortfolioMAD объект и вы используете plotFrontier, вы получите график эффективной границы с количеством портфелей по умолчанию на границе (номер по умолчанию 10 и поддерживается в скрытом свойстве defaultNumPorts). Этот пример иллюстрирует типичное использование plotFrontier для создания нового графика:

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)

Name появляется в качестве названия эффективного граничного графика, если задать его в PortfolioMAD объект. Без явного названия название на сюжете будет «Эффективный рубеж». Если требуется получить определенное количество портфелей на эффективной границе, используйте plotFrontier с нужным количеством портфелей. Предположим, что у вас есть PortfolioMAD объект из предыдущего примера, и вы хотите построить 20 портфелей вдоль эффективной границы и получить 20 значений риска и доходности для каждого портфеля:

[prsk, pret] = plotFrontier(p, 20);
display([pret, prsk])
ans =

    0.0049    0.0176
    0.0054    0.0179
    0.0058    0.0189
    0.0063    0.0205
    0.0068    0.0225
    0.0073    0.0248
    0.0078    0.0274
    0.0083    0.0302
    0.0088    0.0331
    0.0093    0.0361
    0.0098    0.0392
    0.0103    0.0423
    0.0108    0.0457
    0.0112    0.0496
    0.0117    0.0539
    0.0122    0.0586
    0.0127    0.0635
    0.0132    0.0687
    0.0137    0.0744
    0.0142    0.0806

Печать существующих эффективных портфелей

Если у Вас уже есть эффективные портфели от какой-либо из функций «estimateFrontier» (см. Оценку Эффективные Границы для Объекта PortfolioMAD), передайте их в plotFrontier непосредственно для построения эффективной границы:

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

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];

p = PortfolioMAD('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0);

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

pwgt = estimateFrontier(p, 20);
plotFrontier(p, pwgt)

Планирование существующих эффективных рисков и доходности портфеля

Если у вас уже есть эффективные портфельные риски и доходность, вы можете использовать интерфейс для plotFrontier передать их в plotFrontier для получения графика эффективной границы:

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

AssetScenarios = mvnrnd(m, C, 20000);

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];

p = PortfolioMAD('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0);

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

pwgt = estimateFrontier(p);

pret= estimatePortReturn(p, pwgt)
prsk = estimatePortRisk(p, pwgt)

plotFrontier(p, prsk, pret)
pret =

    0.0590
    0.0723
    0.0857
    0.0991
    0.1124
    0.1258
    0.1391
    0.1525
    0.1658
    0.1792


prsk =

    0.0615
    0.0664
    0.0795
    0.0976
    0.1184
    0.1408
    0.1663
    0.1992
    0.2368
    0.2787

См. также

| | |

Связанные примеры

Подробнее