开始使用免费开始使用

施加权重约束

投资者经常会受到投资组合权重最大值的限制。这类约束其实可能带来好处。最大权重约束的优势在于,组合不会过度集中于某些资产。但也有劣势:相同的目标收益可能不再可达,或者只能以更高的波动率为代价。

回忆上一道练习,函数 portfolio.optim() 允许您通过 reshigh 参数设置权重约束。reshigh 需要为每个资产提供一个最大权重的向量。

本练习中,您将创建 3 个施加不同最大权重约束的组合。为完成本练习,了解 portfolio.optim() 的输出很重要。该函数返回一个包含 4 个部分的列表:(i)$pw:投资组合权重;(ii)$px:投资组合的总体收益;(iii)$pm:投资组合的期望收益;(iv)$ps:投资组合收益的标准差。

本练习是课程的一部分

R 中的投资组合分析入门

查看课程

练习说明

  • 使用 rep() 函数为 returns 中每个资产(列)创建 3 个最大权重向量。第一个向量的最大权重为 100%,第二个为 10%,第三个为 5%。分别命名为 max_weights1max_weights2max_weights3
  • 创建一个最大权重为 100% 的最优组合,命名为 opt1
  • 创建一个最大权重为 10% 的最优组合,命名为 opt2
  • 创建一个最大权重为 5% 的最优组合,命名为 opt3
  • 分别计算每个组合中权重大于 1% 的资产数量。访问权重时,在组合名称后使用 $pw
  • 打印您创建的 3 个组合的波动率(标准差 $ps)。

交互式实操练习

通过完成这段示例代码来试试这个练习。

# Create vectors of maximum weights
max_weights1 <- rep(1, ncol(returns))
max_weights2 <- ___
max_weights3 <- ___

# Create an optimum portfolio with max weights of 100%
opt1 <- portfolio.optim(___, reshigh = ___)

# Create an optimum portfolio with max weights of 10%


# Create an optimum portfolio with max weights of 5%


# Calculate how many assets have a weight that is greater than 1% for each portfolio
sum(opt1$pw > .01)
sum(___$pw > .01)
sum(___$pw > .01)

# Print portfolio volatilites 
opt1$ps
___$__
___$__

编辑并运行代码