python 画有效边界
Python是一种功能强大的编程语言,可以处理各种任务。其中之一就是绘制有效边界。有效边界指的是在给定的资源束缚下,可以实现最大化收益或最小化风险的点集,被称为投资组合。本文将介绍怎样使用Python绘制有效边界。
# 导入所需的库 import numpy as np import pandas as pd import matplotlib.pyplot as plt # 读取数据 data = pd.read_csv('data.csv') # 计算股票收益率的均值和协方差 returns = data.pct_change().mean() covariance = data.pct_change().cov() # 定义一个函数,用于计算投资组合收益率和风险 def portfolio_return(weights, returns): return np.sum(weights * returns) def portfolio_risk(weights, covariance): return np.sqrt(np.dot(weights.T, np.dot(covariance, weights))) # 生成随机权重,并计算对应的收益率和风险 def random_weights(n): weights = np.random.rand(n) weights /= np.sum(weights) return weights def get_portfolio(weights, returns, covariance): portfolio_return = portfolio_return(weights, returns) portfolio_risk = portfolio_risk(weights, covariance) return [portfolio_return, portfolio_risk] # 绘制有效边界图形 def get_efficient_frontier(returns, covariance, points): portfolios = [] for i in range(points): weights = random_weights(len(returns)) portfolios.append(get_portfolio(weights, returns, covariance)) portfolios = np.array(portfolios) plt.scatter(portfolios[:,1], portfolios[:,0], marker='o', s=10, alpha=0.3) plt.xlabel('Risk') plt.ylabel('Return') plt.show() get_efficient_frontier(returns, covariance, 5000)
在以上代码中,我们使用了numpy、pandas和matplotlib等库。其中,data.csv包括了我们所需的数据。通过pandas库中的pct_change()方法计算股票的收益率均值和协方差。然后,我们定义了计算投资组合收益率和风险的两个函数。随机生成权重,并通过get_portfolio()函数计算相应的投资组合收益率和风险。最后,我们绘制了有效边界图形,并使用5000个点进行摹拟,展现了区别收益率和风险的投资组合。
文章来源:丸子建站
文章标题:python 画有效边界
https://www.wanzijz.com/view/58698.html