600字范文,内容丰富有趣,生活中的好帮手!
600字范文 > 金融分析与风险管理——投资组合的绩效评估

金融分析与风险管理——投资组合的绩效评估

时间:2020-04-23 12:18:31

相关推荐

金融分析与风险管理——投资组合的绩效评估

金融分析与风险管理——投资组合的绩效评估

1 夏普比率2 索提诺比率3 特雷诺比率4 信息比率

1 夏普比率

夏普比率是指在某一时间段内,投资组合每承担一单位风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

SR=E(Rp)−RfσpSR = \frac{E(R_p)-R_f}{\sigma_p}SR=σp​E(Rp​)−Rf​​

其中,RfR_fRf​是无风险收益率,E(Rp)E(R_p)E(Rp​)是投资组合的期望收益率,σp\sigma_pσp​是投资组合收益的波动率。

本文以国内公募基金为例来说明如何计算基金产品的夏普比率,该数据集共有 4 个基金产品构成,案例中完整的数据可以通过百度网盘获取,提取码:jayy。

案例中的日收益率使用对数收益率进行计算,无风险收益率选择银行一年存款基准利率1.5%,Python程序如下:

import pandas as pdimport numpy as npfund = pd.read_excel(r'C:\Users\Administrator\Desktop\四只开放式股票型基金的净值.xlsx',header = 0,index_col = 0)# 夏普比率def SR(Rp,Rf,Vp):return (Rp - Rf)/VpR_fund = np.log(fund/fund.shift(1)) #基金的日对数收益率R_fund = R_fund.dropna()R_mean = R_fund.mean()*252 #计算全部3年的平均年化收益率sigma = R_fund.std()*np.sqrt(252) #计算全部3年的平均年化收益波动率R_f = 0.015 #无风险利率SR_3years = SR(R_mean,R_f,sigma)print('-平均3年的夏普比率:\n',SR_3years)

2 索提诺比率

所提诺比率是指投资组合每承担一单位下行风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

SOR=E(Rp)−RfσLpσLp=1NL∑[min(Rp,0)2]SOR = \frac{E(R_p)-R_f}{\sigma_Lp} \\[10pt] \sigma_{Lp} = \sqrt{\frac{1}{N_L}\sum[min(R_p,0)^2]} SOR=σL​pE(Rp​)−Rf​​σLp​=NL​1​∑[min(Rp​,0)2]​

其中,RfR_fRf​是无风险收益率,E(Rp)E(R_p)E(Rp​)是投资组合的期望收益率,NLN_LNL​是发生亏损的样本量,σLp\sigma_LpσL​p是投资组合收益的下偏标准差,所谓下偏标准差是只考虑亏损而不考虑盈利的标准差,隐含条件就是投资组合的上涨是符合投资者的需求而不应计入风险调整。

本文仍然使用上述案例进行说明,其Python的程序如下:

#索提诺比率def SOR(Rp,Rf,Vp):return (Rp - Rf)/VpVp_lower = np.zeros_like(R_mean)for i in range(len(Vp_lower)):#生产收益率为负的时间序列R_neg = R_fund.iloc[:,i][R_fund.iloc[:,i] < 0] #年化下行收益标准差Vp_lower[i] = np.sqrt(252)*np.sqrt(np.sum(R_neg**2)/len(R_neg))print(R_fund.columns[i]+'收益下行标准差:',Vp_lower[i])SOR_3years = SOR(R_mean,R_f,Vp_lower)print('-平均3年的索提诺比率:\n',SOR_3years)

3 特雷诺比率

特雷诺比率是指投资组合每承担一单位系统风险所带来的的风险溢价,值越大表示收益越好,其表达式如下:

TR=E(Rp)−RfβpTR = \frac{E(R_p)-R_f}{\beta_p}TR=βp​E(Rp​)−Rf​​

其中,RfR_fRf​是无风险收益率,E(Rp)E(R_p)E(Rp​)是投资组合的期望收益率,βp\beta_pβp​是投资组合的系统性风险,当投资组合的非系统性风险已被分散,只需考虑系统性风险时,特雷诺比率相对比较合适。

本文以沪深300指数3016-的数据及上述4只基金的数据为例来说明如何计算特雷诺比率,案例中沪深300指数完整的数据可以通过百度网盘获取,提取码:763e。

本文仍然使用上述案例中的无风险收益率进行计算,其中市场投资组合使用沪深300指数进行代替,通过线性回归计算4只基金产品的β\betaβ值,其Python的程序如下:

import statsmodels.api as smHS300 = pd.read_excel(r'C:\Users\Administrator\Desktop\沪深300指数.xlsx',header = 0,index_col = 0)#计算日收益率R_HS300 = np.log(HS300/HS300.shift(1))R_HS300 = R_HS300.dropna()# 特雷诺比率def TR(Rp,Rf,beta):return (Rp - Rf)/betabetas = np.zeros_like(R_mean)cons = np.zeros_like(R_mean)X = R_HS300X_addcons = sm.add_constant(X)for i in range(len(R_mean)):#获取基金产品时间序列Y = R_fund.iloc[:,i]#使用线性回归计算beta值model = sm.OLS(endog=Y,exog=X_addcons)result = model.fit()cons[i] = result.params[0]betas[i] = result.params[1]print(R_fund.columns[i] + 'beta = ',betas[i])TR_3years = TR(R_mean,R_f,betas)print('-平均3年的特雷诺比率:\n',TR_3years)

4 信息比率

跟踪误差是指投资组合的收益率与基准组合收益率之间差异的标准差,反映投资组合的主动管理风险。要计算跟踪误差,首先需要计算跟踪偏离度,跟踪偏离度是指投资组合收益率与基准组合收益率之间的差异,其计算公式如下:

TD=E(RP)−E(RB)TE=1N−1∑(TDi−E(TD))2TD = E(R_P)-E(R_B) \\[10pt] TE = \sqrt{\frac{1}{N-1}\sum(TD_i-E(TD))^2} TD=E(RP​)−E(RB​)TE=N−11​∑(TDi​−E(TD))2​

其中,E(RP)E(R_P)E(RP​)是投资组合的期望收益率,E(RB)E(R_B)E(RB​)是基准组合的期望收益率,KaTeX parse error: Undefined control sequence: \TD at position 1: \̲T̲D̲是投资组合的跟踪偏离度,KaTeX parse error: Undefined control sequence: \TE at position 1: \̲T̲E̲是投资组合的跟踪误差。

信息比率是指投资组合每承担一单位主动管理风险所带来的的超额收益,值越大表示收益越好,其表达式如下:

IR=TDTE=E(RP)−E(RB)TEIR = \frac{TD}{TE} = \frac{E(R_P)-E(R_B)}{TE}IR=TETD​=TEE(RP​)−E(RB​)​

本文仍然使用上述案例中的无风险收益率进行计算,其中基准组合使用沪深300指数进行代替,其Python的程序如下:

# 信息比率def IR(Rp,Rb,te):return (Rp - Rb)/teTE_fund = np.zeros_like(R_mean)for i in range(len(R_mean)):TD = np.array(R_fund.iloc[:,i]) - np.array(R_HS300.iloc[:,0])TE_fund[i] = TD.std()*np.sqrt(252)print(R_fund.columns[i] + '跟踪误差',TE_fund[i])R_mean_HS300 = np.array(R_HS300.mean()*252)IR_3years = IR(R_mean,R_mean_HS300,TE_fund)print('-平均3年的信息比率:\n',IR_3years)

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。