Часто вас могут заинтересовать портфели конечных точек для эффективной границы. Предположим, что вы хотите определить область значений возвратов от минимума до максимума, чтобы уточнить поиск портфеля с определенной целевой отдачей. Используйте estimateFrontierLimits
функция для получения портфелей конечных точек:
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 = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt = estimateFrontierLimits(p); disp(pwgt)
0.8646 0.0000 0.0470 0.0000 0.0414 0.0000 0.0470 1.0000
Примечание
Конечные точки эффективной границы зависят от сценариев в PortfolioCVaR
объект. Если вы измените Сценарии, вы, вероятно, получите различные конечные точки.
Начиная с начального портфеля, estimateFrontierLimits
также возвращает покупки и продажи, чтобы получить от начального портфеля к портфелям конечных точек на эффективной границе. Для примера, учитывая начальный портфель в pwgt0
, вы можете получить покупки и продажи:
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 = PortfolioCVaR; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); p = setProbabilityLevel(p, 0.95); pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = setInitPort(p, pwgt0); [pwgt, pbuy, psell] = estimateFrontierLimits(p); display(pwgt) display(pbuy) display(psell)
pwgt = 0.8624 0.0000 0.0513 0.0000 0.0452 0.0000 0.0411 1.0000 pbuy = 0.5624 0 0 0 0 0 0 0.9000 psell = 0 0.3000 0.2487 0.3000 0.1548 0.2000 0.0589 0
0
.
estimateFrontier
| estimateFrontierByReturn
| estimateFrontierByRisk
| estimateFrontierByRisk
| estimateFrontierLimits
| estimatePortReturn
| estimatePortRisk
| PortfolioCVaR
| setSolver