Получение эффективных портфелей для цели возвращается

Получить эффективные портфели, которые предназначались для портфеля, возвращается, estimateFrontierByReturn функция признает, что один или несколько предназначается для портфеля, возвращает и получает эффективные портфели с заданными возвратами. Например, примите, что у вас есть вселенная четырех активов, где вы хотите получить эффективные портфели с целевым портфелем, возвращается из 7%, 10% и 12%:

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 ];

AssetScenarios = mvnrnd(m, C, 20000);

p = PortfolioCVaR;
p = setScenarios(p, AssetScenarios);
p = setDefaultConstraints(p);
p = setProbabilityLevel(p, 0.95);

pwgt = estimateFrontierByReturn(p, [0.07,  0.10, .12]);
display(pwgt);
pwgt =

    0.7526    0.3773    0.1306
    0.1047    0.3079    0.4348
    0.0662    0.1097    0.1426
    0.0765    0.2051    0.2920

Иногда, можно запросить возврат, для которого не существует никакой эффективный портфель. На основе предыдущего примера предположите, что вы хотите портфель с 4%-м возвратом (который является возвратом первого актива). Портфель, который полностью инвестируют в первый актив, однако, неэффективен. estimateFrontierByReturn предупреждает, если ваша цель возвращается, вне области значений эффективного портфеля, возвращает и заменяет его на портфель конечной точки границы эффективности, самой близкой к вашему целевому возврату:

 pwgt = estimateFrontierByReturn(p, [0.04]);
Warning: One or more target return values are outside the feasible range [
0.066388, 0.178834 ].
	Will return portfolios associated with endpoints of the range for these values. 
> In PortfolioCVaR.estimateFrontierByReturn at 93 
Лучший способ избежать этой ситуации состоит в том, чтобы заключить в скобки ваш целевой портфель, возвращается с estimateFrontierLimits и estimatePortReturn (см. конечные точки получения границы эффективности и получения портфельных рисков CVaR, и возвращается).
pret = estimatePortReturn(p, p.estimateFrontierLimits);

display(pret);
pret =

    0.0664
    0.1788
Этот результат показывает, что эффективные портфели имеют, возвращает тот диапазон от 6,5% до 17,8%. Отметьте, ваши результаты для этих примеров могут отличаться из-за случайной генерации сценариев.

Если у вас есть начальный портфель, estimateFrontierByReturn также возвращает покупки и продажи, чтобы добраться от вашего начального портфеля до целевых портфелей на границе эффективности. Например, учитывая начальный портфель в pwgt0, получить покупки и продажи с целью возвращается из 7%, 10% и 12%:

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];
p = setInitPort(p, pwgt0);
[pwgt, pbuy, psell] = estimateFrontierByReturn(p, [0.07,  0.10, .12]);

display(pwgt);
display(pbuy);
display(psell);
pwgt =

    0.7526    0.3773    0.1306
    0.1047    0.3079    0.4348
    0.0662    0.1097    0.1426
    0.0765    0.2051    0.2920


pbuy =

    0.4526    0.0773         0
         0    0.0079    0.1348
         0         0         0
         0    0.1051    0.1920


psell =

         0         0    0.1694
    0.1953         0         0
    0.1338    0.0903    0.0574
    0.0235         0         0
Если у вас нет начального портфеля, веса покупки и продажи принимают, что вашим начальным портфелем является 0.

Смотрите также

| | | | | | | |

Связанные примеры

Больше о

Внешние веб-сайты