资产组合有效边界python代码
时间: 2023-07-28 08:02:57 浏览: 104
资产组合有效边界是指在所给定的风险水平下,能够获取到的最大预期收益的集合。在Python中,可以使用投资组合优化库,如cvxopt,来计算资产组合的有效边界。
首先,我们需要引入相应的库:
```python
import numpy as np
from cvxopt import matrix, solvers
```
接下来,我们定义资产组合的预期收益率和协方差矩阵:
```python
# 预期收益率
returns = np.array([0.05, 0.10, 0.08])
# 协方差矩阵
cov_matrix = np.array([[0.02, 0.01, 0.005],
[0.01, 0.03, 0.02],
[0.005, 0.02, 0.04]])
```
然后,我们定义求解有效边界的函数:
```python
def efficient_frontier(returns, cov_matrix, risk):
n = len(returns)
P = matrix(cov_matrix)
q = matrix(np.zeros(n))
G = matrix(-np.eye(n))
h = matrix(np.zeros(n))
A = matrix(np.vstack((returns, np.ones(n))))
b = matrix([risk, 1.])
sol = solvers.qp(P, q, G, h, A, b)
weights = np.array(sol['x']).flatten()
return weights
```
最后,我们可以通过调用上述函数来计算在给定风险水平下的最大预期收益:
```python
risk = 0.1
weights = efficient_frontier(returns, cov_matrix, risk)
print("在风险水平为{}下,最大的预期收益为:{}".format(risk, np.dot(weights, returns)))
print("分配给各资产的权重为:{}".format(weights))
```
通过以上代码,我们可以计算资产组合的有效边界,并且得到在给定风险水平下的最大预期收益以及各资产的权重分配。
阅读全文