金融分析与风险管理——投资组合收益率、波动率计算

论坛 期权论坛 期权     
期权匿名问答   2022-3-12 14:42   21348   3
1 投资组合的预期收益率

假设由N只股票构成一个投资组合,各只股票的预期收益率分别为,则投资组合的预期收益率计算如下:


简单收益率计算

复利收益率计算
由简单收益率计算复利收益率的公式如下:

其中,t是持有期,T是需计算的复利期。
连续收益率计算

通常情况下,年化收益率可通过日收益或者月收益率计算得到,其计算公式如下:

在股票的日收益计算中,我们通常使用连续收益率(对数收益率)进行计算,因为该收益率考虑了连续的时间价值。
2 投资组合的波动率

在计算投资组合的波动率之前,通常需要先计算每只股票收益率之间的协方差与相关系数,以两只股票为例进行说明:

由N只股票构成的投资组合,其收益率方差计算表达式如下:


波动率(标准方差)近似遵循平方根法则,可以通过日收益波动率进行计算,公式如下:

本文通过一个案例来说明如何计算投资组合的年化收益率、年化波动率,该投资组合有 5 个不同的资产构成,投资组的权重配比如下表:
资产名称
上海机场
宝钢股份
海通证券
工商银行
中国石油
权重
0.15
0.2
0.5
0.05
0.1

案例中投资组合完整的数据可以通过百度网盘(https://pan.baidu.com/share/init?surl=TAMCC9st1vtJhCWty-Xgug,提取码:tday)获取。
案例中的日收益率使用对数收益率进行计算,Python程序如下:
data = pd.read_excel(r'C:\Users\Administrator\Desktop\构建投资组合的五只股票数据.xlsx',header = 0,index_col = 0)#归一化处理并画收盘价的走势图(data/data.iloc[0]).plot(figsize=(8,6))plt.legend()plt.grid('True')# 对数收益率走势图R = np.log(data/data.shift(1)) #计算日对数收益率R = R.dropna() #删除缺失值R.describe() #日收益率情况查看#直方图R.hist(bins=40)plt.grid('True')





#年化收益率:日收益转化R_mean = R.mean()*252#计算年化协方差R_cov = R.cov()*252#计算相关系数R_corr = R.corr()#计算年化标准差R_std = R.std()*np.sqrt(252)#投资组合的预期年化收益weights = np.array([0.15,0.2,0.5,0.05,0.1])# R_port = np.sum(weights*R_mean) #向量乘法计算R_port = np.dot(weights,R_mean) #数组计算# weights.shape# R_mean.shapevol_port = np.sqrt(np.dot(weights,np.dot(R_cov,weights.T)))print('投资组合的年化预期收益率:',round(R_port,4))print('投资组合的年化收益波动率:',round(vol_port,4))# 投资组合的年化预期收益率: -0.0394# 投资组合的年化收益波动率: 0.2128
使用设定的权重计算的投资组合的年化收益率为-3.94%,年化收益波动率为21.28%。
分享到 :
0 人收藏

3 个回复

倒序浏览
2#
期权匿名回答  16级独孤 | 2022-3-12 14:43:03 发帖IP地址来自 北京
转发了
3#
期权匿名回答  16级独孤 | 2022-3-12 14:43:31 发帖IP地址来自 福建
转发了
4#
期权匿名回答  16级独孤 | 2022-3-12 14:44:22 发帖IP地址来自 北京
转发了
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

积分:400157
帖子:80032
精华:0
期权论坛 期权论坛
发布
内容

下载期权论坛手机APP