PortfolioCVaR объект предназначен для оптимизации портфеля CVaR. Portfolio объект предназначен для оптимизации портфеля средних отклонений. Иногда может потребоваться изучить проблемы оптимизации портфеля в соответствии с различными комбинациями возвратов и прокси-серверов рисков. Типичным примером является необходимость оптимизации портфеля CVaR, а затем работа с моментами возврата портфеля. Предположим, что вы настроили проблему оптимизации портфеля CVaR с помощью:
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 = PortfolioCVaR; 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); p = setProbabilityLevel(p, 0.9);
Для работы с той же проблемой в структуре средних отклонений можно использовать сценарии из PortfolioCVaR объект для настройки Portfolio объект так, что p содержит проблему оптимизации CVaR и 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.0665 0.0585
0.0787 0.0716
0.0910 0.0848
0.1033 0.0979
0.1155 0.1111
0.1278 0.1243
0.1401 0.1374
0.1523 0.1506
0.1646 0.1637
0.1769 0.1769
ans =
0.0797 0.0774
0.0912 0.0835
0.1095 0.0995
0.1317 0.1217
0.1563 0.1472
0.1823 0.1746
0.2135 0.2059
0.2534 0.2472
0.2985 0.2951
0.3499 0.3499Для получения сопоставимых результатов можно использовать доходность или риски от оптимизации одного портфеля в качестве целевой доходности или рисков для оптимизации другого портфеля.
qwgt = estimateFrontierByReturn(q, pret); qret = estimatePortReturn(q, qwgt); qstd = estimatePortStd(q, qwgt); [pret, qret] [pstd, qstd]
ans =
0.0665 0.0665
0.0787 0.0787
0.0910 0.0910
0.1033 0.1033
0.1155 0.1155
0.1278 0.1278
0.1401 0.1401
0.1523 0.1523
0.1646 0.1646
0.1769 0.1769
ans =
0.0797 0.0797
0.0912 0.0912
0.1095 0.1095
0.1317 0.1317
0.1563 0.1563
0.1823 0.1823
0.2135 0.2135
0.2534 0.2534
0.2985 0.2985
0.3499 0.3499