exponenta event banner

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

Для получения эффективных портфелей, которые имеют целевые портфельные риски, 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.

См. также

| | | | | | | | |

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

Подробнее

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