这个例子计算了由三种不同资产(INTC、XON和RD)组成的投资组合的有效边界,给定一个约束列表。INTC、XON、RD的预期收益分别为:
ExpReturn = [0.1 0.2 0.15];
协方差矩阵是
expcovariance = [0.005 -0.010 0.004;-0.010 0.040 -0.002;0.004 -0.002 0.023];
约束1
允许短暂销售在任何资产中最多10%的投资组合价值,但将任何一个资产的投资限制为投资组合价值的110%。
约束2
考虑两个不同的行业,技术和能源,下表显示了每种资产所属的行业。
资产 |
INTC. |
XON. |
rd. |
行业 |
技术 |
能源 |
能源 |
将能源领域的投资限制在投资组合价值的80%,将科技领域的投资限制在70%。
要解决这个问题,使用投资组合
,传入一个资产约束列表。考虑沿着有效边界的8种不同的投资组合:
NumPorts = 8;
要引入约束1中指定的资产绑定约束,请创建矩阵AssetBounds
,每个列代表资产。上行表示下限,下划线表示上限。由于每个资产的界限都是相同的,因为由于标量扩展,只需要一对界限。
[-0.1, 1.1];
约束2必须分为两部分输入,第一部分定义组,第二部分定义每个组的约束。根据上面的信息,你可以建立一个矩阵1
沙0.
s表示特定资产是否属于一个组。每列代表一个资产,每行代表一个组。此示例有两组:技术组和能量组。创建矩阵团体
如下。
组= [0 1 1;1 0 0];
这群群
矩阵允许您为每个组指定上限和下限。这个矩阵中的每一行代表一个组。第一列表示对每个组的最小分配,第二列表示对每个组的最大分配。由于在能源部门的投资被限制在投资组合价值的80%,而在技术部门的投资被限制在70%,所以创造了群群
矩阵使用这个信息。
= [0 0.80;]0 0.70);
现在使用投资组合
获得沿着高效前沿计算的八个投资组合中的每一个的风险,返回和权重的向量和阵列。添加预算约束以确保投资组合权重给1。
p =组合('assetmean',expreturn,'Assetcovar', ExpCovariance);p = setBounds(p, AssetBounds(1), AssetBounds(2));p = setBudget(p, 1,1);p = setgroups(p,组,组,组(:,1),组(:,2));porttwts = estimateFrontier(p, NumPorts);[PortRisk, PortReturn] = estimatePortMoments(p, porttwts);PortrackStrosturn Portwts.
PortReturn = 0.1279 0.1361 0.1442 0.1524 0.1605 0.1687 0.1768 0.1850 PortWts = 0.7000 0.6031 0.4864 0.3696 0.2000 0.2000 0.2582 0.3244 0.3708 0.4172 0.4636 0.5738 0.7369 0.9000 0.0418 0.0725 0.1428 0.2132 0.2262 0.0631 -0.1000
输出表示为投资组合的风险和回报的列。组合权重被确定为矩阵中相应的列向量。
而投资组合
对象允许您输入与组和各个资产的最小值和最大值相关的固定的一组约束,您通常需要在查找最佳风险组合时指定更大和更常规的约束。投资组合
通过接受任意约束,还解决了这种需要。
本例要求指定不同组的最小和最大投资。
最大和最小组暴露
团体 |
最小曝光 |
最大风险敞口 |
---|---|---|
北美 |
0.30 |
0.75 |
欧洲 |
0.10 |
0.55 |
拉美 |
0.20 |
0.50 |
亚洲 |
0.50 |
0.50 |
亚洲的最低和最高风险敞口是相同的。这意味着你需要一个固定的曝光组。
还要假设投资组合由三个不同的基金组成。基金和团体之间的对应关系如下表所示。
组成员
团体 |
基金1 |
基金2 |
基金3 |
---|---|---|---|
北美 |
X |
X |
|
欧洲 |
X |
||
拉美 |
X |
||
亚洲 |
X |
X |
使用这两个表中的信息,构建所表示约束的数学表示。假设表示投资组合中每种资产的风险敞口的权重向量被称为WTS = [W1 W2 W3]
。
具体来说
1。 |
W.1 +W.2 |
≥ |
0.30 |
2。 |
W.1 +W.2 |
≤. |
0.75 |
3。 |
W.3. |
≥ |
0.10 |
4。 |
W.3. |
≤. |
0.55 |
5。 |
W.1 |
≥ |
0.20 |
6。 |
W.1 |
≤. |
0.50 |
7。 |
W.2 +W.3. |
= |
0.50 |
由于您必须代表表格中的信息a * wts <= b
将方程1,3,5乘以-1。将等式7转化为两个不等式:W.2 +W.3≥0.50和W.2 +W.3≤0.50。(这两个不等式的交叉点是平等本身。)因此
1。 |
- w1 -W.2 |
≤. |
-0.30 |
2。 |
W.1 +W.2 |
≤. |
0.75 |
3。 |
- w3. |
≤. |
-0.10 |
4。 |
W.3. |
≤. |
0.55 |
5。 |
- w1 |
≤. |
-0.20 |
6。 |
W.1 |
≤. |
0.50 |
7。 |
- w2 -W.3. |
≤. |
-0.50 |
8。 |
W.2 +W.3. |
≤. |
0.50 |
将这些方程带入矩阵表示法
A = [-1 -1 0;1 1 0;0 0 1;0 0 1;1 0 0;1 0 0;0 1 1;b = [-0.30;0.75;-0.10; 0.55; -0.20; 0.50; -0.50; 0.50]
解决这个组合问题的一种方法是明确地使用setInequality
功能:
p =组合('assetmean',expreturn,'Assetcovar', ExpCovariance);p = setBounds(p, AssetBounds(1), AssetBounds(2));p = setBudget(p, 1,1);p = set不等式(p, A, b);porttwts = estimateFrontier(p, NumPorts);[PortRisk, PortReturn] = estimatePortMoments(p, porttwts);PortrackStrosturn Portwts.
PortRisk = 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 PortReturn = 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 PortWts = 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
setInequality
函数与使用相同集团
函数的下一个示例(指定组约束).
上面的例子(线性约束方程式)定义约束矩阵,该约束矩阵指定一组典型方案。它定义了一组资产,指定每个组中的总分配的上限和下限,它将一个组的总分配设置为固定值。像这些的约束是常见的。投资组合
对象使您能够简化这些和其他公共投资组合需求的约束矩阵的创建。
解决投资组合问题的另一种方法是使用投资组合
对象来定义:
一种团体
矩阵,表示属于每个组的资产。
一种GroupMin
向量,表示每个组的最小界限。
一种groupmax
向量,表示每个组的最大范围。
基于桌子组成员,建立团体
矩阵,每一行表示一个组,每列表示一个资产。
组= [1 1 0;0 0 1;1 0 0;0 1 1];
桌子最大和最小组暴露有需要建立的信息吗GroupMin
和groupmax
。
Groupmin = [0.30 0.10 0.20 0.50];Groupmax = [0.75 0.55 0.50 0.50];
现在使用投资组合
和setInequality
函数获取表示沿着有效边界计算的投资组合的风险、回报和权重的向量和数组。
p =组合('assetmean',expreturn,'Assetcovar', ExpCovariance);p = setBounds(p, AssetBounds(1), AssetBounds(2));p = setBudget(p, 1,1);p = setGroups(p, Group, GroupMin, GroupMax);porttwts = estimateFrontier(p, NumPorts);[PortRisk, PortReturn] = estimatePortMoments(p, porttwts);PortrackStrosturn Portwts.
PortRisk = 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 0.0586 PortReturn = 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 0.1375 PortWts = 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.5000 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500 0.2500
在这种情况下,约束仅允许一个最佳的产品组合。由于请求八个投资组合,所有八个投资组合都是一样的。请注意,使用此产品组合问题的解决方案集团
函数与使用相同setInequality
函数(线性约束方程式).
投资组合
|estismsfrontier.
|estibalportmoments.
|集团
|setInequality