PortfolioMAD объект предназначен для оптимизации портфеля MAD. PortfolioCVaR объект предназначен для оптимизации портфеля CVaR. Portfolio объект предназначен для оптимизации портфеля средних отклонений. Иногда может потребоваться изучить проблемы оптимизации портфеля в соответствии с различными комбинациями возвратов и прокси-серверов рисков. Обычным примером является то, что требуется оптимизация портфеля MAD, а затем работа с моментами возврата портфеля. Предположим, что вы настроили проблему оптимизации портфеля MAD с помощью:
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 ]; pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = PortfolioMAD; p = setAssetList(p, 'Bonds','Large-Cap Equities','Small-Cap Equities','Emerging Equities'); p = setInitPort(p, pwgt0); p = simulateNormalScenariosByMoments(p, m, C, 20000); p = setDefaultConstraints(p);
Для работы с той же проблемой в структуре средних отклонений можно использовать сценарии из PortfolioMAD объект для настройки объекта Portfolio таким образом, чтобы p содержит задачу оптимизации MAD и q содержит задачу оптимизации средней дисперсии, основанную на тех же данных.
q = Portfolio('AssetList', p.AssetList);
q = estimateAssetMoments(q, p.getScenarios);
q = setDefaultConstraints(q);
pwgt = estimateFrontier(p);
qwgt = estimateFrontier(q);
Поскольку каждый объект имеет свой прокси-сервер риска, невозможно сравнивать результаты бок о бок. Для получения средств и стандартных отклонений доходности портфеля можно использовать функции, связанные с каждым объектом, для получения:
pret = estimatePortReturn(p, pwgt); pstd = estimatePortStd(p, pwgt); qret = estimatePortReturn(q, qwgt); qstd = estimatePortStd(q, qwgt); [pret, qret] [pstd, qstd]
ans =
0.0592 0.0590
0.0730 0.0728
0.0868 0.0867
0.1006 0.1005
0.1145 0.1143
0.1283 0.1282
0.1421 0.1420
0.1559 0.1558
0.1697 0.1697
0.1835 0.1835
ans =
0.0767 0.0767
0.0829 0.0828
0.0989 0.0987
0.1208 0.1206
0.1461 0.1459
0.1732 0.1730
0.2042 0.2040
0.2453 0.2452
0.2929 0.2928
0.3458 0.3458Для получения сопоставимых результатов можно использовать доходность или риски от оптимизации одного портфеля в качестве целевой доходности или рисков для оптимизации другого портфеля.
qwgt = estimateFrontierByReturn(q, pret); qret = estimatePortReturn(q, qwgt); qstd = estimatePortStd(q, qwgt); [pret, qret] [pstd, qstd]
ans =
0.0592 0.0592
0.0730 0.0730
0.0868 0.0868
0.1006 0.1006
0.1145 0.1145
0.1283 0.1283
0.1421 0.1421
0.1559 0.1559
0.1697 0.1697
0.1835 0.1835
ans =
0.0767 0.0767
0.0829 0.0829
0.0989 0.0989
0.1208 0.1208
0.1461 0.1461
0.1732 0.1732
0.2042 0.2042
0.2453 0.2453
0.2929 0.2929
0.3458 0.3458