基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些基金评价指标(含代码)_基金年化波动率计算公式

 免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或可靠性不作任何保证。同时,文中提及的基金仅作为举例使用,不构成推荐;文中所有观点均不构成任何投资建议。请读者仔细阅读本声明,若读者阅读此文章,默认知晓此声明。

目录

1. 数据预处理

2. 收益指标

2.1  累计收益

2.2  年化收益率

3. 风险指标

3.1  年化波动率

3.2  最大回撤

4. 风险调整指标

4.1  夏普比率

4.2  卡玛比率

4.3  索提诺比率

5. 总结

1.完整代码

2. 指标评价

   本文主要介绍几个常用的基金业绩评价指标:收益指标–累计收益,年化收益率;风险指标–年化波动率,最大回撤;风险调整指标–夏普比率,卡马比率,索提诺比率。对于每一个指标,通过名词解释,计算公式,代码实现,数值评价四个部分进行展开,希望能给大家一些启发或帮助。

1. 数据预处理

     使用akshare开源api,获取任意一只公募基金的历史累计净值(使用累计净值而不是单位净值,避免因为分红导致基金的收益率序列出现异常)。

import akshare as ak
import pandas as pd

test_data = ak.fund_etf_fund_info_em('510500')
new_data = test_data.loc[:,['净值日期','累计净值']] 

以5100500基金为例,得到的数据格式如下:

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

在上述数据的基础上, 仅筛选净值日期和累计净值作为我们的数据源,对应new_data。

2. 收益指标

2.1  累计收益

名词解释:基金成立和运营以来所有收益的累计求和。

计算公式:由于基金的初始累计为1,所以:累计收益=最新的累计净值-1

代码实现

new_data = new_data.sort_values(['净值日期'], ascending = True)  # 先做日期的升序排列
sum_return = new_data['累计净值'].values[-1] - 1

     值得注意的是,我们需要先对数据源进行排序(无论是升序还是降序),目的是避免出错。最终我们得到的 sum_return的值为0.9739。

数值评价

     累计收益作为评价基金业绩的一个简易指标,其值理论上越高越好。但是由于每只基金存续的时间不一样,因此不能单以累计收益来评价基金的收益好坏,还是需要结合时间区间,这也就是接下来要说的年化收益率。例如,我们计算的sum_return的值为0.9739,也就是94%左右,单看这个值,收益还是非常高的,接近翻倍了,不过如果结合时间区间(2013至今接近10年时间),该基金的累计收益相对显得就不是那么突出了。

     对于该数据,我们通常也可使用累计净值替代。对于投资者而言,买入时的累计净值与最新的累计净值一比较,就大概可以推算出持有收益;在基金的数据初筛时,我们也可以选择该指标作为初筛条件(累计净值作为原始数据,无需进一步处理,可以节约时间和步骤),例如筛选条件为‘累计净值>=2的基金,纳入初筛池’,目的在于寻找成立以来收益翻倍的基金名单。

2.2  年化收益率

名词解释:把当前收益率换算成年收益率来计算。

计算公式:【区间收益率/区间天数*365】

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

代码实现

nav_T = new_data['累计净值'].values[-1]
nav_0 = new_data['累计净值'].values[0]
day = (pd.to_datetime(new_data['净值日期'].values[-1]) - pd.to_datetime\
    (new_data['净值日期'].values[0])).days
annual_return = (nav_T - nav_0)/nav_0 * 365/day

new_data在计算累计收益时就已经排过序,这里就不再重复。 如果day是按交易计算的,那么对应的365可以切换成252。

数值评价

     年化收益率作为衡量基金收益的相对指标,其值越大越好。但是需要注意的是,如果day的值太小(比如低于182,约半年时间)就会导致年化收益率的参考价值变弱,day值最好是超过365也就是一个完整年度,此时年化收益率具有较高的说服率。举一个例子:某基金在一周内(7天)的收益率是5%,按照折算,该基金的7日年化收益率达到260.71%,显然这个数据是非常不合理的。

     通过计算,我们得到的年化收益率值约为9.1%(需要注意的是,年化收益率是单利计算,其值一般会高于复利计算)。从值本身大小来看,9.1%是相对偏弱的,不过考虑到其测算时间超过十年,9.1%的收益就显得比较难得了。也就是说,我们在看收益指标时,不仅要考虑其值的大小(获取收益的能力),还要考虑测算的时间区间(收益持续的能力)。

3. 风险指标

3.1  年化波动率

名词解释:标的资产价格在一段时间内的平均波动程度折算为年度。

计算公式:【收益率序列标准差*数据频率对应取值**0.5)】

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

代码实现

new_data['return'] = new_data['累计净值'].pct_change().fillna(0)
annual_volatility = new_data['return'].std() * np.sqrt(252)

由于是日度频率的数据,frequency的取值为252。

数值评价

     年化波动率是评价基金风险的一个重要指标,一般来说其值越小,基金面临的风险越小,同时也意味着预期收益也会越低(当然,这一点并不绝对)。我们可以通过年化波动率的值对基金类型进行简单的一个识别:

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

    通过计算,得到的年化波动率约为24%,说明该基金为高波动类型,符合其作为指数基金的风险类型。和年化收益率一样,除了关注年化波动率的值,我们还需要关注测算的时间区间。区间越短,其有效性越差。

3.2  最大回撤

名词解释:测算区间周期内任一历史时点往后推,净值走到最低点时的收益率下跌幅度的最大值。

计算公式:【取  (逐一净值-逐一净值累计最大值)/净值累计最大值  序列中的最小值】

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

代码实现

nav_list = new_data['累计净值']
draw_down = abs(((nav_list - nav_list.cummax()) / nav_list.cummax()).min())

对最大回撤的值取了绝对值,这里是基于最大回撤测算是向下的损失(取不取绝对值都可以,看自身的习惯)。

数值评价

     最大回撤是评价基金风险的一个辅助指标,可以理解为历史上任意时点买入基金后,可能产生的最大亏损。因此,其绝对值越大,基金存在的风险越高。最大回撤评价的是基金经理对于下行风险的把控能力,可以间接表现基金经理或者基金的风险风格。

     通过测算,该基金的最大回撤约为63%,已经超过腰斩(50%),说明该基金的风险非常高。最大回撤也受到时间区间的影响,只是受影响程度会低于年化收益率和年化波动率。

4. 风险调整指标

4.1  夏普比率

名词解释:投资组合每承受一单位的风险,对应给组合带来的超额收益(相对无风险利率)。

计算公式:【(年化收益率-无风险利率)/年化波动率】

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

代码实现

rf = 0.03
sharpe_ratio = (annual_return - rf) / annual_volatility

 这里的无风险利率假设值为3%。

数值评价

     夏普比率作为基金业绩评价最有效的指标之一,日常使用的频率非常高。因为夏普比率同时考虑了风险和收益,因此对于不同类型,不同风格的基金,其夏普比率值依然具有可比性。对于夏普比率的值,评价如下:

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

     通过测算,基金的夏普比率为0.24,说明基金每承担一单位的风险,仅能获得0.24单位的超额收益,整体表现比较一般。在使用夏普比率时,需要注意:对比的基金应该尽量保持测算的时间区间一致。无风险利率的取值其实不重要,只要测算时使用的值相同即可。

4.2  卡玛比率

名词解释:投资组合每承受一单位的回撤,对应给组合带来的收益。

计算公式:【年化收益率/最大回撤的绝对值】

代码实现

kama_ratio = annual_return / draw_down

 之前计算最大回撤的时候,已经取了绝对值,所以此处直接计算。

数值评价

    卡玛比率作为基金绩效评价的一个重要指标,含义类似于基金自身的“盈亏比”。因此卡马比率的分界理论值为1:1以上整体表现良好,1以下整体表现较差。通过测算,该基金的卡玛比率值约为0.14,表现的相对较差。

4.3  索提诺比率

名词解释:投资组合每承受一单位的下行风险,对应给组合带来的超额收益(相对无风险利率)。

计算公式:【(年化收益率-无风险利率)/年化下行波动率】

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

代码实现

down_data = new_data.loc[new_data['return']<0]
down_volatility = down_data['return'].std() * np.sqrt(252)
sotino_ratio = (annual_return - rf) / down_volatility

无风险利率还是用的之前的3%。

数值评价

    索提诺比率本身是在夏普比率的基础上进行改进,因为净值上涨带来的波动对于基金本身是有利的,因此索提诺比率在考虑波动风险的时候考虑净值下跌时候所产生的波动。经过测算,该基金的索提诺比例为0.28,相对夏普比率略高一点,整体来说表现的还是不好。

    在使用索提诺比率时,我们结合夏普比率,互相比对,效果会更好。假如一只基金一段时间内基本都是上涨,下跌很少,此时索提诺比率的值就会很高,甚至远高于夏普比率。从波动率角度看,这只基金本身是存在较高风险的,但是根据索提诺比率的值,并没有体现出这种风险。这一点我们需要格外注意。

5. 总结

1.完整代码

import akshare as ak
import pandas as pd
import numpy as np
def store(value): # 保存值为百分数
      return format(value,'.2%')

def get_fund_performance(code):
      # 获取基金绩效评价指标
      # code:str,基金代码
      # 数据清洗
      test_data = ak.fund_etf_fund_info_em(code)
      new_data = test_data.loc[:,['净值日期','累计净值']]

      # 累计收益
      new_data = new_data.sort_values(['净值日期'], ascending = True)  # 先做日期的升序排列
      sum_return = new_data['累计净值'].values[-1] - 1

      # 年化收益率
      nav_T = new_data['累计净值'].values[-1]
      nav_0 = new_data['累计净值'].values[0]
      day = (pd.to_datetime(new_data['净值日期'].values[-1]) - pd.to_datetime\
            (new_data['净值日期'].values[0])).days
      annual_return = (nav_T - nav_0)/nav_0 * 365/day

      # 年化波动率
      new_data['return'] = new_data['累计净值'].pct_change().fillna(0)
      annual_volatility = new_data['return'].std() * np.sqrt(252)

      # 最大回撤
      nav_list = new_data['累计净值']
      draw_down = abs(((nav_list - nav_list.cummax()) / nav_list.cummax()).min())

      # 夏普比率
      rf = 0.03
      sharpe_ratio = (annual_return - rf) / annual_volatility

      # 卡玛比率
      kama_ratio = annual_return / draw_down

      # 索提诺比率
      down_data = new_data.loc[new_data['return']<0]
      down_volatility = down_data['return'].std() * np.sqrt(252)
      sotino_ratio = (annual_return - rf) / down_volatility

      out_df = pd.DataFrame({'代码':[code],'累计净值':[round(nav_T,4)],'年化收益率':[store(annual_return)],
      '年化波动率':[store(annual_volatility)],'最大回撤':[store(draw_down)],
     '夏普比率':[round(sharpe_ratio,2)],'卡玛比率':[round(kama_ratio,2)],'索提诺比率':[round(sotino_ratio,2)]})
      return out_df

if __name__ == '__main__':
      code = '510500'
      result = get_fund_performance(code)

运行结果如下:

基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些

     以上是关于基金绩效评价指标的举例,所用的公式并不没有标准答案,只是基于一个合理的角度。同时,现在的金融数据库empyrical可以直接获取相应的指标,大家有兴趣的可以自行搜索。

2. 指标评价

  前文对各个指标已经做了相关评价,本节主要对该方法的由缺点及注意事项进行阐述。

优点:

1.从定性角度,提出了基金绩效评价的合理方法论。

2.各个指标具有较强的底层逻辑,同时计算方法上较为简便。

3.计算所需数据容易获取,且数据较为完整。

缺点:

1.计算基于历史数据,不同的区间得到的结果存在差异。

2.计算的结果代表过去的表现,不能代表未来的表现。

3.各指标值没有固定的基准点,因此对同一个数值可能有不同的解读。

注意事项:

1.指标的计算没有标准的计算公式,只要所有测算的基金使用相同的计算公式即可,但需要注意时间区间尽可能统一。

2.单个指标的评价意义较低,应该首先结合多个指标进行评价,再根据较为关注的指标来评价。

3.该方法只是对于基金过去的表现作出基础性的定性评价,不可过度依赖。

4.该方法不具备预测基金未来表现的功能。

本次分享到此结束,若有疑问欢迎留言交流。

 免责声明:本文由作者参考相关资料,并结合自身实践和思考独立完成,对全文内容的准确性、完整性或可靠性不作任何保证。同时,文中提及的基金仅作为举例使用,不构成推荐;文中所有观点均不构成任何投资建议。请读者仔细阅读本声明,若读者阅读此文章,默认知晓此声明。

今天的文章基金评价专题1:绩效指标是什么_绩效考核5大指标有哪些分享到此就结束了,感谢您的阅读。

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。
如需转载请保留出处:https://bianchenghao.cn/83163.html

(0)
编程小号编程小号

相关推荐

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注