В то время как оценка эффективных портфелей вдоль всей границы для объекта PortfolioMAD была сосредоточена на оценке эффективных портфелей, этот раздел фокусируется на оценке эффективных границ. Для получения информации о рабочем процессе при использовании PortfolioMAD объекты, см. раздел Рабочий процесс объекта PortfolioMAD.
Учитывая любое портфолио и, в частности, эффективные портфели, функции estimatePortReturn и estimatePortRisk предоставить оценки возврата (или прокси возврата), риска (или прокси риска). Каждая функция имеет один и тот же синтаксис входа, но с различными комбинациями выходов. Предположим, что у вас есть эта следующая задача оптимизации портфеля, которая дала вам набор портфелей вдоль эффективной границы в pwgt:
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); pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = setInitPort(p, pwgt0); pwgt = estimateFrontier(p)
pwgt =
Columns 1 through 8
0.8954 0.7264 0.5573 0.3877 0.2176 0.0495 0.0000 0
0.0310 0.1239 0.2154 0.3081 0.4028 0.4924 0.4069 0.2386
0.0409 0.0524 0.0660 0.0792 0.0907 0.1047 0.1054 0.1132
0.0328 0.0973 0.1613 0.2250 0.2890 0.3534 0.4877 0.6482
Columns 9 through 10
0 0.0000
0.0694 0.0000
0.1221 0.0000
0.8084 1.0000Примечание
Помните, что прокси риска для оптимизации портфеля MAD является средним абсолютным отклонением.
Заданные pwgt0 и pwgt, используйте функции оценки портфельных рисков и возвратов для получения рисков и доходности для вашего начального портфеля и портфелей на эффективной границе:
prsk0 = estimatePortRisk(p, pwgt0); pret0 = estimatePortReturn(p, pwgt0); prsk = estimatePortRisk(p, pwgt); pret = estimatePortReturn(p, pwgt); display(prsk0) display(pret0) display(prsk) display(pret)
prsk0 =
0.0256
pret0 =
0.0072
prsk =
0.0178
0.0193
0.0233
0.0286
0.0348
0.0414
0.0489
0.0584
0.0692
0.0809
pret =
0.0047
0.0059
0.0072
0.0084
0.0096
0.0108
0.0120
0.0133
0.0145
0.0157The PortfolioMAD объект имеет функцию вычисления стандартных отклонений возвратов портфеля, estimatePortStd. Эта функция работает с любыми портфелями, не обязательно эффективными портфелями. Например, в следующем примере получаются пять портфелей (pwgt) на эффективной границе, а также имеет начальный портфель в pwgt0. Вычисляются различные статистики портфеля, включая возврат, риск и стандартное отклонение. Перечисленные оценки относятся к исходному портфелю в первой строке, за которым следуют оценки для каждого из пяти эффективных портфелей в последующих строках.
m = [ 0.0042; 0.0083; 0.01; 0.15 ];
C = [ 0.005333 0.00034 0.00016 0;
0.00034 0.002408 0.0017 0.000992;
0.00016 0.0017 0.0048 0.0028;
0 0.000992 0.0028 0.010208 ];
pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];
p = PortfolioMAD('initport', pwgt0);
p = simulateNormalScenariosByMoments(p, m, C, 20000);
p = setDefaultConstraints(p);
pwgt = estimateFrontier(p, 5);
pret = estimatePortReturn(p, [pwgt0, pwgt]);
prsk = estimatePortRisk(p, [pwgt0, pwgt]);
pstd = estimatePortStd(p, [pwgt0, pwgt]);
[pret, prsk, pstd]ans =
0.0212 0.0305 0.0381
0.0187 0.0326 0.0407
0.0514 0.0369 0.0462
0.0841 0.0484 0.0607
0.1168 0.0637 0.0796
0.1495 0.0807 0.1009estimatePortReturn | estimatePortStd | plotFrontier | PortfolioMAD