Функция plotFrontier
создает график границы эффективности для данной задачи оптимизации портфеля. Эта функция принимает несколько типов входных параметров и генерирует график с дополнительной возможностью вывести оценки для портфельных рисков и возвращается вдоль границы эффективности. plotFrontier
имеет четыре различных способа, которыми он может использоваться. В дополнение к графику границы эффективности, если у вас есть начальный портфель в свойстве InitPort
, plotFrontier
также отображает возврат по сравнению с риском начального портфеля на том же графике. Если у вас есть хорошо изложенная задача оптимизации портфеля, настроенная в объекте PortfolioMAD, и вы используете 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 ]; m = m/12; C = C/12; AssetScenarios = mvnrnd(m, C, 20000); p = PortfolioMAD; p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); plotFrontier(p);
Свойство Name
появляется как заголовок графика границы эффективности, если вы устанавливаете его в объекте PortfolioMAD. Без явного имени заголовком на графике была бы “Граница эффективности”. Если вы хотите получить определенное количество портфелей вдоль границы эффективности, используйте plotFrontier
с количеством портфелей, которые вы хотите. Предположим, что у вас есть объект PortfolioMAD от предыдущего примера, и вы хотите построить 20 портфелей вдоль границы эффективности и получить 20 рисков и возвращаемые значения для каждого портфеля:
[prsk, pret] = plotFrontier(p, 20); display([pret, prsk]);
ans = 0.0049 0.0176 0.0054 0.0179 0.0058 0.0189 0.0063 0.0205 0.0068 0.0225 0.0073 0.0248 0.0078 0.0274 0.0083 0.0302 0.0088 0.0331 0.0093 0.0361 0.0098 0.0392 0.0103 0.0423 0.0108 0.0457 0.0112 0.0496 0.0117 0.0539 0.0122 0.0586 0.0127 0.0635 0.0132 0.0687 0.0137 0.0744 0.0142 0.0806
Если у вас уже есть эффективные портфели от какой-либо из функций "estimateFrontier" (см. Оценочные Границы эффективности для Объекта PortfolioMAD), передайте их в 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 ]; m = m/12; C = C/12; AssetScenarios = mvnrnd(m, C, 20000); pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = PortfolioMAD('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0); p = setScenarios(p, AssetScenarios); 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 ]; AssetScenarios = mvnrnd(m, C, 20000); pwgt0 = [ 0.3; 0.3; 0.2; 0.1 ]; p = PortfolioMAD('Name', 'Asset Allocation Portfolio', 'InitPort', pwgt0); p = setScenarios(p, AssetScenarios); p = setDefaultConstraints(p); pwgt = estimateFrontier(p); pret= estimatePortReturn(p, pwgt) prsk = estimatePortRisk(p, pwgt) plotFrontier(p, prsk, pret)
pret = 0.0590 0.0723 0.0857 0.0991 0.1124 0.1258 0.1391 0.1525 0.1658 0.1792 prsk = 0.0615 0.0664 0.0795 0.0976 0.1184 0.1408 0.1663 0.1992 0.2368 0.2787
PortfolioMAD
| estimatePortReturn
| estimatePortStd
| plotFrontier