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
| plotFrontier
| estimatePortStd