plotFrontier
функция создает график эффективной границы для заданной задачи оптимизации портфеля. Эта функция принимает несколько типов входов и генерирует график с дополнительной возможностью вывода оценок для портфельных рисков и возвратов вдоль эффективной границы. plotFrontier
имеет четыре различных способа, которые можно использовать. В дополнение к графику эффективной границы, если у вас есть начальный портфель в InitPort
свойство, plotFrontier
также отображает возврат от риска начального портфеля на том же графике. Если у вас есть хорошо поставленная задача оптимизации портфеля, настроенная в Portfolio
объект и вы используете plotFrontier
, вы получаете график эффективной границы с количеством портфелей по умолчанию на границе (число по умолчанию 10
и поддерживается в скрытом свойстве defaultNumPorts
). Этот пример иллюстрирует типичное использование plotFrontier
чтобы создать новый график:
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 ]; pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = Portfolio('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0); p = setAssetMoments(p, m, C); p = setDefaultConstraints(p); plotFrontier(p)
The Name
свойство появляется как заголовок эффективного пограничного графика, если вы задаете его в Portfolio
объект. Без явного имени заголовка на график будет «Эффективная граница». Если вы хотите получить определенное количество портфелей вдоль эффективной границы, используйте plotFrontier
с количеством портфелей, которые вы хотите. Предположим, что у вас есть Portfolio
объект из предыдущего примера, и вы хотите построить 20 портфелей вдоль эффективной границы и получить 20 значений риска и возврата для каждого портфеля:
[prsk, pret] = plotFrontier(p, 20); display([pret, prsk])
ans = 0.0590 0.0769 0.0654 0.0784 0.0718 0.0825 0.0781 0.0890 0.0845 0.0973 0.0909 0.1071 0.0972 0.1179 0.1036 0.1296 0.1100 0.1418 0.1163 0.1545 0.1227 0.1676 0.1291 0.1810 0.1354 0.1955 0.1418 0.2128 0.1482 0.2323 0.1545 0.2535 0.1609 0.2760 0.1673 0.2995 0.1736 0.3239 0.1800 0.3500
Если у вас уже есть эффективные портфели из любой функции «estimateFrontier» (см. «Оценка эффективных портфелей для всего эффективного рубежа для объекта портфеля»), передайте их в plotFrontier
непосредственно для построения эффективной границы:
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 ]; pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = Portfolio('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0); p = setAssetMoments(p, m, C); p = setDefaultConstraints(p); pwgt = estimateFrontier(p, 20); plotFrontier(p, pwgt)
Если у вас уже есть эффективные риски портфеля и возвратов, вы можете использовать интерфейс для plotFrontier
чтобы передать их в plotFrontier
для получения графика эффективной границы:
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 ]; pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = Portfolio('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0); p = setAssetMoments(p, m, C); p = setDefaultConstraints(p); [prsk, pret] = estimatePortMoments(p, p.estimateFrontier(20)); plotFrontier(p, prsk, pret)
estimatePortMoments
| estimatePortReturn
| plotFrontier
| Portfolio