python - 寻找投资组合收益的协方差
问题描述
我创建了一个包含 5 只股票的投资组合,我想找到整个投资组合的年回报率和波动率。这是我的代码:
df1 = pd.read_csv("C:\stock_1.csv")
df2 = pd.read_csv("C:\stock_2.csv")
df3 = pd.read_csv("C:\stock_3.csv")
df4 = pd.read_csv("C:\stock_4.csv")
df5 = pd.read_csv("C:\stock_5.csv")
frames = [df1,df2,df3,df4,df5]
data = pd.concat(frames,axis=0)
print(data)
data.to_csv("C:\final.csv")
data_new = data['Close Price']
data_new.sort_index(inplace=True)
returns = data_new.pct_change()
mean_daily_returns = returns.mean()
cov_matrix = returns.cov()
weights = np.asarray([0.2,0.2,0.2,0.2,0.2])
portfolio_return = round(np.sum(mean_daily_returns * weights) * 252,2)
portfolio_std_dev = round(np.sqrt(np.dot(weights.T,np.dot(cov_matrix, weights))) * np.sqrt(252),2)
print(portfolio_return)
print(portfolio_std_dev)
我收到的错误是:
cov_matrix = returns.cov()
TypeError: cov() missing 1 required positional argument: 'other'
解决方案
在这行代码中:
cov_matrix = returns.cov()
你想计算 a 的协方差pandas.Series
。根据 pandas文档,您需要指定other
用于计算协方差的参数。基本上你需要一个与之比较的其他系列'Close Price'
。
推荐阅读
- javascript - 在服务器上提交数据后本地存储不起作用
- angular - Angular PrimeNG Autocomplete如何传递对象的ID值
- azure - 与实体框架的连接在本地工作,在 Azure 中工作,但现在我得到“无效的对象名称......”
- django - Django 模板上的 VueJS v-for
- java - 如何从包含子类的父类数组转换回父类
- python - python中的多处理(硒)
- typescript - 属性在类型中是可选的,但在类型中是必需的
- database - 订单完成时的网络警报
- swiftui - 如何重用视图并为每个视图拥有单独的唯一对象实例
- python - Python:无法摆脱称为守护线程的while循环