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

Получить эффективные портфели, которые предназначались для портфельных рисков, estimateFrontierByRisk функция принимает один или несколько целевых портфельных рисков и получает эффективные портфели с заданными рисками. Предположим, что у вас есть вселенная четырех активов, где вы хотите получить эффективные портфели с целевыми портфельными рисками 12%, 14% и 16%.

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 ];
 
 p = Portfolio;
 p = setAssetMoments(p, m, C);
 p = setDefaultConstraints(p);
 pwgt = estimateFrontierByRisk(p, [0.12, 0.14, 0.16]);

 display(pwgt);
pwgt =

    0.3984    0.2659    0.1416
    0.3064    0.3791    0.4474
    0.0882    0.1010    0.1131
    0.2071    0.2540    0.2979

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

pwgt = estimateFrontierByRisk(p, 0.07)
Warning: One or more target risk values are outside the feasible range [ 0.0769288, 0.35 ].
	Will return portfolios associated with endpoints of the range for these values. 
> In Portfolio.estimateFrontierByRisk at 82 

pwgt =

    0.8891
    0.0369
    0.0404
    0.0336
Лучший способ избежать этой ситуации состоит в том, чтобы заключить в скобки ваши целевые портфельные риски с estimateFrontierLimits и estimatePortRisk (см. конечные точки получения границы эффективности и получения портфельных рисков, и возвращается).
prsk = estimatePortRisk(p, p.estimateFrontierLimits);

display(prsk);
prsk =

    0.0769
    0.3500
Этот результат показывает, что эффективные портфели имеют риски, которые лежат в диапазоне от 7,7% до 35%.

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

pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ];
p = setInitPort(p, pwgt0);
[pwgt, pbuy, psell] = estimateFrontierByRisk(p, [0.12, 0.14, 0.16]);

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

    0.3984    0.2659    0.1416
    0.3064    0.3791    0.4474
    0.0882    0.1010    0.1131
    0.2071    0.2540    0.2979


pbuy =

    0.0984         0         0
    0.0064    0.0791    0.1474
         0         0         0
    0.1071    0.1540    0.1979


psell =

         0    0.0341    0.1584
         0         0         0
    0.1118    0.0990    0.0869
         0         0         0
Если вы не задаете начальный портфель, веса покупки и продажи принимают, что вашим начальным портфелем является 0.

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

| | | | | | | | |

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

Больше о

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