Часто вы можете быть заинтересованы в портфелях конечных точек для эффективной границы. Предположим, что требуется определить диапазон доходности от минимального до максимального для уточнения поиска портфеля с определенной целевой доходностью. Используйте 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 00.
estimateFrontier | estimateFrontierByReturn | estimateFrontierByRisk | estimateFrontierByRisk | estimateFrontierLimits | estimatePortReturn | estimatePortRisk | PortfolioCVaR | setSolver