frontcon
Миграция к объекту портфеляfrontcon
Без Выходных аргументовВ этом примере показано, как переместить frontcon
без выходных аргументов объекту Portfolio.
Основной frontcon
функциональность представлена как:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; frontcon(ExpReturn, ExpCovariance, NumPorts);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис без выходных аргументов объекту Portfolio:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); plotFrontier(p, NumPorts);
Объект Portfolio пишет в окно текущей фигуры, а не создайте новое окно каждый раз, когда график сгенерирован.
frontcon
с Выходными аргументамиВ этом примере показано, как переместить frontcon
с выходными аргументами объекту Portfolio.
Основной frontcon
функциональность представлена как:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; [PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ExpCovariance, NumPorts); display(PortWts);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис с выходными аргументами:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); PortWts = estimateFrontier(p, NumPorts); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); display(PortWts);
PortWts = 0.2103 0.1744 0.1386 0.1027 0.0668 0.0309 0 0 0 0 0.2746 0.2657 0.2567 0.2477 0.2387 0.2298 0.2168 0.1791 0.0557 0 0.1157 0.1296 0.1436 0.1575 0.1714 0.1854 0.1993 0.2133 0.2183 0 0.1594 0.2193 0.2791 0.3390 0.3988 0.4587 0.5209 0.5985 0.7260 1.0000 0.2400 0.2110 0.1821 0.1532 0.1242 0.0953 0.0629 0.0091 0 0
Объект Portfolio возвращает PortWts
с портфелями, спускающимися по столбцам, не через строки. Портфельные риски и возвраты находятся все еще в формате столбца.
frontcon
поскольку цель возвращается в области значений эффективного портфеля, возвращаетсяВ этом примере показано, как переместить frontcon
цель возвращается в области значений эффективного портфеля, возвращается к объекту Portfolio.
frontcon
может получить портфели с определенными запланированными уровнями возврата, но требует, чтобы целенаправленные возвраты находились в пределах области значений эффективных возвратов. Указатели на объект Портфеля это путем выбора портфелей в концах границы эффективности.
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ];
ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022;
0.0092, 0.0380, 0.0035, 0.0197, 0.0028;
0.0039, 0.0035, 0.0997, 0.0100, 0.0070;
0.0070, 0.0197, 0.0100, 0.0461, 0.0050;
0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ];
NumPorts = 10;
TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09 ];
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ExpCovariance, [], TargetReturn);
disp(' Efficient Target');
disp([PortReturn, TargetReturn]);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис для цели возвращается в области значений эффективного портфеля, возвращается к объекту Portfolio:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ];
ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022;
0.0092, 0.0380, 0.0035, 0.0197, 0.0028;
0.0039, 0.0035, 0.0997, 0.0100, 0.0070;
0.0070, 0.0197, 0.0100, 0.0461, 0.0050;
0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ];
NumPorts = 10;
TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09 ];
p = Portfolio;
p = setAssetMoments(p, ExpReturn, ExpCovariance);
p = setDefaultConstraints(p);
PortWts = estimateFrontierByReturn(p, TargetReturn);
[PortRisk, PortReturn] = estimatePortMoments(p, PortWts);
disp(' Efficient Target');
disp([PortReturn, TargetReturn]);
Efficient Target 0.0500 0.0500 0.0600 0.0600 0.0700 0.0700 0.0800 0.0800 0.0900 0.0900
frontcon
поскольку цель возвращается, внешняя область значений эффективного портфеля возвращаетсяВ этом примере показано, как переместить frontcon
цель возвращается за пределами области значений эффективного портфеля, возвращается к объекту Portfolio.
То, когда целевой возврат находится вне области значений эффективного портфеля, возвращается, frontcon
генерирует ошибку. Указатели на объект Портфеля это эффективно путем выбора портфелей в концах границы эффективности.
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ];
ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022;
0.0092, 0.0380, 0.0035, 0.0197, 0.0028;
0.0039, 0.0035, 0.0997, 0.0100, 0.0070;
0.0070, 0.0197, 0.0100, 0.0461, 0.0050;
0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ];
NumPorts = 10;
TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09; 0.10 ];
[PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ExpCovariance, [], TargetReturn);
disp(' Efficient Target');
disp([PortReturn, TargetReturn]);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис для цели возвращается за пределами области значений эффективного портфеля, возвращается к объекту Portfolio:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ];
ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022;
0.0092, 0.0380, 0.0035, 0.0197, 0.0028;
0.0039, 0.0035, 0.0997, 0.0100, 0.0070;
0.0070, 0.0197, 0.0100, 0.0461, 0.0050;
0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ];
NumPorts = 10;
TargetReturn = [ 0.05; 0.06; 0.07; 0.08; 0.09; 0.10 ];
p = Portfolio;
p = setAssetMoments(p, ExpReturn, ExpCovariance);
p = setDefaultConstraints(p);
PortWts = estimateFrontierByReturn(p, TargetReturn);
[PortRisk, PortReturn] = estimatePortMoments(p, PortWts);
disp(' Efficient Target');
disp([PortReturn, TargetReturn]);
Warning: One or more target return values are outside the feasible range [ 0.0427391, 0.0934 ]. Will return portfolios associated with endpoints of the range for these values. > In Portfolio/estimateFrontierByReturn (line 106) Efficient Target 0.0500 0.0500 0.0600 0.0600 0.0700 0.0700 0.0800 0.0800 0.0900 0.0900 0.0934 0.1000
frontcon
Синтаксис при использовании границВ этом примере показано, как переместить frontcon
синтаксис для AssetBounds
к объекту Portfolio.
Используйте frontcon
с входной спецификацией для AssetBounds
это содержит нижние и верхние границы на весе, выделенном каждому активу в портфеле:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; AssetBounds = [ 0.1, 0.1, 0.1, 0.1, 0.1; 0.5, 0.5, 0.5, 0.5, 0.5 ]; [PortRisk, PortReturn, PortWts] = frontcon(ExpReturn, ExpCovariance, NumPorts, [], AssetBounds); disp([PortRisk, PortReturn]);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис с помощью AssetBounds
к объекту Portfolio:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; AssetBounds = [ 0.1, 0.1, 0.1, 0.1, 0.1; 0.5, 0.5, 0.5, 0.5, 0.5 ]; LowerBound = AssetBounds(1,:); UpperBound = AssetBounds(2,:); p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); p = setBounds(p, LowerBound, UpperBound); PortWts = estimateFrontier(p, NumPorts); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); disp([PortRisk, PortReturn]);
0.1288 0.0427 0.1291 0.0457 0.1299 0.0487 0.1313 0.0516 0.1332 0.0546 0.1356 0.0576 0.1385 0.0605 0.1419 0.0635 0.1461 0.0665 0.1519 0.0694
frontcon
Синтаксис при использовании группВ этом примере показано, как переместить frontcon
синтаксис для Groups
и GroupBounds
к объекту Portfolio.
Используйте frontcon
с входной спецификацией для Groups
(группы актива или классы.) и GroupBounds
(нижние и верхние границы общих масс всех активов в группе). Рассмотрите три группы: Активы 2, 3, и 4 могут составить до 80% портфеля, Активы 1 и 2 могут составить до 70% портфеля, и Активы 3, 4, и 5 могут составить до 90% портфеля.
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ];
ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022;
0.0092, 0.0380, 0.0035, 0.0197, 0.0028;
0.0039, 0.0035, 0.0997, 0.0100, 0.0070;
0.0070, 0.0197, 0.0100, 0.0461, 0.0050;
0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ];
NumPorts = 10;
Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ];
GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ];
[PortRisk, PortReturn, PortWgts] = frontcon(ExpReturn, ExpCovariance, NumPorts, [], [], ...
Groups, GroupBounds);
disp([PortRisk, PortReturn]);
Undefined function or variable 'frontcon'.
Переместить frontcon
синтаксис с помощью Groups
и GroupBounds
к объекту Portfolio:
ExpReturn = [ 0.0054; 0.0531; 0.0779; 0.0934; 0.0130 ]; ExpCovariance = [ 0.0569, 0.0092, 0.0039, 0.0070, 0.0022; 0.0092, 0.0380, 0.0035, 0.0197, 0.0028; 0.0039, 0.0035, 0.0997, 0.0100, 0.0070; 0.0070, 0.0197, 0.0100, 0.0461, 0.0050; 0.0022, 0.0028, 0.0070, 0.0050, 0.0573 ]; NumPorts = 10; Groups = [ 0 1 1 1 0; 1 1 0 0 0; 0 0 1 1 1 ]; GroupBounds = [ 0, 0.8; 0, 0.7; 0, 0.9 ]; LowerGroup = GroupBounds(:,1); UpperGroup = GroupBounds(:,2); p = Portfolio; p = setAssetMoments(p, ExpReturn, ExpCovariance); p = setDefaultConstraints(p); p = setGroups(p, Groups, LowerGroup, UpperGroup); PortWts = estimateFrontier(p, NumPorts); [PortRisk, PortReturn] = estimatePortMoments(p, PortWts); disp([PortRisk, PortReturn]);
0.1288 0.0427 0.1292 0.0465 0.1306 0.0503 0.1328 0.0540 0.1358 0.0578 0.1395 0.0615 0.1440 0.0653 0.1504 0.0690 0.1590 0.0728 0.1806 0.0766
addInequality
| estimateFrontier
| estimateFrontierByReturn
| estimatePortMoments
| pcalims
| pcgcomp
| pcglims
| portcons
| Portfolio
| portopt
| setAssetMoments
| setBounds
| setDefaultConstraints
| setGroups
| setInequality