首页 > 解决方案 > 寻找投资组合收益的协方差

问题描述

我创建了一个包含 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'

标签: pythonpandasmatrixcovarianceportfolio

解决方案


在这行代码中:

cov_matrix = returns.cov()

你想计算 a 的协方差pandas.Series。根据 pandas文档,您需要指定other用于计算协方差的参数。基本上你需要一个与之比较的其他系列'Close Price'


推荐阅读