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