Функция 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);
Свойство 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);
Portfolio
| estimatePortMoments
| estimatePortReturn
| plotFrontier