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

  • 1 投资组合的预期收益率
  • 2 投资组合的波动率

1 投资组合的预期收益率

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

E(Rp)=∑wiE(Ri)=[w1,w2,...,wN][E(R1),E(R2),...,E(RN)]T且满足:∑wi=1E(R_p) = \sum w_iE(R_i) = [w_1,w_2,...,w_N][E(R_1),E(R_2),...,E(R_N)]^T \\[10pt] 且满足:\sum w_i =1 E(Rp​)=∑wi​E(Ri​)=[w1​,w2​,...,wN​][E(R1​),E(R2​),...,E(RN​)]T且满足:∑wi​=1

简单收益率计算

rt=Pt+DtPt−1−1r_t = \frac{P_t+D_t}{P_{t-1}} - 1rt​=Pt−1​Pt​+Dt​​−1

复利收益率计算

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

Rc=(1+r1)(1+r2)....(1+rt)1tT−1R_c = {(1+r_1)(1+r_2)....(1+r_t)}^{\frac{1}{t}T}-1Rc​=(1+r1​)(1+r2​)....(1+rt​)t1​T−1

其中,t是持有期,T是需计算的复利期。

连续收益率计算

Rt=ln(Pt+DtPt−1)R_t = ln(\frac{P_t + D_t}{P_{t-1}})Rt​=ln(Pt−1​Pt​+Dt​​)

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

Ryear=rday∗252Ryear=rmonth∗12orRyear=Rday∗252Ryear=Rmonth∗12R_{year}=r_{day}*252 \\[10pt] R_{year}=r_{month}*12 \\[10pt] or \\[10pt] R_{year}=R_{day}*252 \\[10pt] R_{year}=R_{month}*12 \\[10pt] Ryear​=rday​∗252Ryear​=rmonth​∗12orRyear​=Rday​∗252Ryear​=Rmonth​∗12

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

2 投资组合的波动率

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

σp2=(w1σ1)2+(w2σ2)2+2w1w2Cov(R1,R2)=(w1σ1)2+(w2σ2)2+2w1w2ρ12σ1σ2两边开根号:σp=(w1σ1)2+(w2σ2)2+2w1w2Cov(R1,R2)=(w1σ1)2+(w2σ2)2+2w1w2ρ12σ1σ2其中:ρ12=Cov(R1,R2)σ1σ2\sigma^2_p = (w_1\sigma_1)^2 + (w_2\sigma_2)^2 +2w_1w_2Cov(R_1,R_2) \\[10pt] = (w_1\sigma_1)^2 + (w_2\sigma_2)^2 +2w_1w_2\rho_{12}\sigma_1\sigma_2 \\[10pt] 两边开根号:\\[10pt] \sigma_p = \sqrt{(w_1\sigma_1)^2 + (w_2\sigma_2)^2 +2w_1w_2Cov(R_1,R_2)} \\[10pt] = \sqrt{(w_1\sigma_1)^2 + (w_2\sigma_2)^2 +2w_1w_2\rho_{12}\sigma_1\sigma_2} \\[10pt] 其中:\rho_{12} = \frac{Cov(R_1,R_2)}{\sigma_1\sigma_2} σp2​=(w1​σ1​)2+(w2​σ2​)2+2w1​w2​Cov(R1​,R2​)=(w1​σ1​)2+(w2​σ2​)2+2w1​w2​ρ12​σ1​σ2​两边开根号:σp​=(w1​σ1​)2+(w2​σ2​)2+2w1​w2​Cov(R1​,R2​)​=(w1​σ1​)2+(w2​σ2​)2+2w1​w2​ρ12​σ1​σ2​​其中:ρ12​=σ1​σ2​Cov(R1​,R2​)​

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

σp2=∑∑wiwjCov(Ri,Rj)=∑∑wiwjρijσiσj=W∑WT∑=[σ12σ12⋯σ1nσ21σ22⋯σ2n⋮⋮⋱⋮σN1σN2⋯σN2]\sigma^2_p = \sum \sum w_iw_jCov(R_i,R_j) = \sum \sum w_iw_j\rho_{ij}\sigma_i\sigma_j=W\sum W^T \\[10pt] \sum = \begin{bmatrix} {\sigma^2_1}&{\sigma_{12}}&{\cdots}&{\sigma_{1n}}\\ {\sigma_{21}}&{\sigma^2_2}&{\cdots}&{\sigma_{2n}}\\ {\vdots}&{\vdots}&{\ddots}&{\vdots}\\ {\sigma_{N1}}&{\sigma_{N2}}&{\cdots}&{\sigma^2_N}\\ \end{bmatrix} σp2​=∑∑wi​wj​Cov(Ri​,Rj​)=∑∑wi​wj​ρij​σi​σj​=W∑WT∑=⎣⎢⎢⎢⎡​σ12​σ21​⋮σN1​​σ12​σ22​⋮σN2​​⋯⋯⋱⋯​σ1n​σ2n​⋮σN2​​⎦⎥⎥⎥⎤​

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

σmonth=22σdayσyear=252σday\sigma_{month} = \sqrt{22}\sigma_{day} \\[10pt] \sigma_{year} = \sqrt{252}\sigma_{day} \\[10pt] σmonth​=22​σday​σyear​=252​σday​

本文通过一个案例来说明如何计算投资组合的年化收益率、年化波动率,该投资组合有 5 个不同的资产构成,投资组的权重配比如下表:

资产名称 上海机场 宝钢股份 海通证券 工商银行 中国石油
权重 0.15 0.2 0.5 0.05 0.1

案例中投资组合完整的数据可以通过百度网盘获取,提取码: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.shape
vol_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%。

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

  1. 金融分析与风险管理——投资组合的有效前沿及资本市场线

    金融分析与风险管理--投资组合的有效前沿及资本市场线 1 投资组合的可行集 2 投资组合的有效前沿 3 资本市场线 1 投资组合的可行集 投资组合中的权重变量可以实现投资组合的预期收益率与收益波动率之 ...

  2. 金融分析与风险管理——资本资产定价模型

    金融分析与风险管理--资本资产定价模型 1 系统性风险与非系统性风险 2 资本资产定价模型 1 系统性风险与非系统性风险 在理论上,股票面临的风险可以抽象的划分为系统性风险与非系统性风险.系统性风险( ...

  3. 金融与python-基于Python的金融分析与风险管理

    金融科技时代已经到来,善于将金融理论与IT技术进行深度融合的人,将成为新时代独具竞争力的金融科技类人才.无论是打算在金融领域求职的新人,还是希望进一步提升个人能力的"职场老手",本 ...

  4. 金融分析与风险管理——风险价值(VaR)

    金融分析与风险管理--风险价值(VaR) 1. 风险价值(VaR)简述 1.1 Python可视化风险价值 2. VaR值的测度方法 2.1 方差-协方差法 2.2 历史模拟法 2.3 蒙特卡洛模拟法 ...

  5. 金融分析与风险管理——期权中的希腊字母

    金融分析与风险管理--期权中的希腊字母(Greeks) 1. 期权的Delta 2. 期权的Gamma 3. 期权的Theta 4. 期权的Vega 5. 期权的Rho 1. 期权的Delta 期权的 ...

  6. 金融分析与风险管理——期权类型及到期时的盈亏

    金融分析与风险管理--期权类型及到期时的盈亏 1. 期权简述 2. 看涨期权到期时的盈亏 3. 看跌期权到期时的盈亏 4.期权涨跌平价关系式 1. 期权简述 期权(option) 是一种金融合约,该合 ...

  7. sql移动加权计算利润_投资收益率、时间加权收益率、资金加权收益率-KlipC讲解三个衡量交易员收益率的计算方式和准确性...

    昨天,KlipC带给大家了一份详细的投资回报率计算的方式和区别.现在,我们要讲解的是简单投资收益率(ROI).时间加权收益率(TWR)和资金加权收益率(MWR)这三个收益率作为衡量收益的优势和劣势. ...

  8. 简单投资组合净值的计算

    简单投资组合净值的计算 项目说明 这是最近完成的一个项目.具体项目要求如下: 本来是要求使用 matlab 连接数据库完成的,但是后来改为用 matlab 读取本地数据完成. 项目的代码和结果 插一句 ...

  9. 股票几个指数周收益率和月收益率的计算

    在金融数据挖掘分析中经常会遇到不同时间维度的分析.本案例主要目的是介绍如何通过交易日历表和日交易数据,转化为统计的周交易数据和月交易数据,并实现周收益率和月收益率的计算.在本案例中,我们介绍了利用交易 ...

  10. 风险管理matlab,风险管理KMV模型Matlab计算—-实例分析 - Ariszheng

    风险管理KMV模型Matlab计算--实例分析 编写自己编写的 KMVOptSearch 添加两个KMV模型文档 2009-6-5 2009-8-14 程序内容将作为 金融数量分析的一节进行仔细讲解 ...

最新文章

  1. Visual Entity 下载列表(最新版为 2.0.0 ,已支持Visual Studio 2013)
  2. java js 转换_[Java教程]javascript 类型转换。
  3. 各版本lettuce spring集成流程(连接池、哨兵配置)
  4. android 图片分析,Android图片处理实例分析
  5. ElasticSearch的安装过程
  6. Interbase浴火重生:开源数据库Firebird更新到2.12
  7. 第十一届“认证杯”数学中国数学建模国际赛(小美赛) (2022 CERTIFICATE AUTHORITY CUP INTERNATIONAL MATHEMATICAL CONTEST IN MOD
  8. LearnOpenGL_study -- 平行光,点光源,聚光源
  9. ftp客户端安装,六款可以安装的ftp客户端
  10. 选票统计 SDUT
  11. 把EditPlus添加到右键快捷菜单
  12. Mapreduce统计
  13. 可怕,GPT-3论坛跟帖灌水一周无人发现!专挑热搜,秒秒钟长文
  14. 传奇称号添加教程,传奇称号系统
  15. 智能扫地机器人好用吗?行业排名TOP5扫地机器人推荐
  16. 高新技术企业研发项目立项介绍
  17. PSO算法(优化与探索四*DDPG与GAN)
  18. FLASH场景切换代码
  19. 算法设计--众数和重数问题(分治法)
  20. 2019录取通知书上线,别人家的通知书能3D立体,还会唱歌……

热门文章

  1. OP-TEE中的线程管理(四)
  2. 3d胆码计算机方法,3D选胆码方法公式汇总(近88期数据)
  3. python读文件的方法open,file,with open
  4. 「Wekan」- 看板工具 @20210403
  5. 1招提升Java单元测试ROI
  6. NACOS 2.0.3 集群客户端连接出现503 500异常处理 踩坑记录
  7. Github优质项目推荐(附国内Gitee地址)
  8. 多聚赖氨酸大鼠血清白蛋白纳米粒|微囊藻毒素小麦麦清白蛋白纳米粒|雌三醇乳清白蛋白纳米粒Estriol-whey protein
  9. 网站流量分析数据指标
  10. boost::bind 详解