-
【邢不行|量化小讲堂系列44-实战篇】历年排名前10的基金,在第2年表现如何?Python告诉你答案
邢不行Python量化 / 2019-03-28 18:09 发布
引言:
邢不行的系列帖子“量化小讲堂”,通过实际案例教初学者使用python进行量化投资,了解行业研究方向,希望能对大家有帮助。
【历史文章汇总】请点击此处
历年排名前10的基金,在第2年表现如何?Python告诉你答案
这是邢不行第44 期量化小讲堂的分享
作者:xingbuxing0807
许多人购买基金,都喜欢买历史业绩好的,包括基金在销售的时候,也喜欢拿历史业绩作为资本。因为大家都默认历史业绩好就代表基金经理有能力,以后也能持续盈利。
但事实真的是这样吗?一切以数据说话,本文使用Python对基金每月数据进行分析,来解答这个问题:明星基金的业绩到底能不能持续?
我们从Wind获取了从2006年至今的所有股票型公募基金和偏股混合型公募基金的每月收益数据,总共覆盖了2360支基金。然后,使用月度收益计算出这些基金每年的收益,得到如下图的一张表格:
其中第一列是基金代码,第二列是基金名称。后面的每一列都是这支基金在当年的收益。所以每一行,都代表一支基金的逐年收益序列。
在数据的初步处理中,还会遇到一些问题。例如,一支基金在年中才发行,当年的运营时间不满一年,收益不能和其它基金直接比较,这一年的数据我们会直接删除,从第二年开始的数据才正式加入。
在几千支基金中,如果一支基金在今年的收益排名前十,那毫无疑问,它应该属于今年的明星基金了,各家基金都会对此大为宣传。那我们就来看一看,每年最优秀的这十只基金,在下一年的表现会怎样?
要评价一支基金在某一年的表现,不能只看它的绝对收益。比如,一支基金某年的收益率是10%,虽然赚了钱,但当年大盘都涨了20%,所以它的表现其实是很差劲的;或者,今年一支基金的收益是 -5%,但是这年大盘跌了10%,那虽然基金亏钱了,但它跑赢了市场,业绩还是不错的。
基金收益 - 基准指数收益,这就是所谓的超额收益。这是衡量基金当年收益的主要标准,本文中我们选择万得全A指数作为基金业绩的基准。
据此,我们通过编写Python程序,很容易得出,每年超额收益排名前10的基金,在下一年超额收益的平均值,具体结果见下图。Python代码和数据可以私信我询问(:xingbuxing0807),
由图中可见,2006年排名前十的基金,在2007年竟然跑输全A指数超过 50%。2008年、2013年、2016年排名前10的基金,到下一年平均都跑输了指数。
我们选择一年来仔细看,例如2014年超额收益最高的这几支基金:
它们在2015年无一能够跑赢指数。
我们甚至可以构建一个投资组合,每年都买入超额收益前十的基金,持有一年,年末调仓,换新的超额收益前十基金。
为了评价这个投资组合,我们还需要一个基准组合:单纯买入万得全A指数,并且每年都把赚到的钱重新买入。
那我们构造的投资组合能不能战胜这个基准呢?
上图的数据证明,每年买入去年超额收益最高的十支基金,持有一年,最终收益和单纯买入万得全A差不多,并没有战胜基准,这还没有扣除换仓基金需要的不菲手续费。
看来优秀基金的业绩其实不可持续,下一年的表现大多数非常平庸。
有人可能要说,光看第二年的超额收益,还是不够全面,会不会是第二年所有的基金的超额收益都很差呢?
那就不看具体的收益,来看收益排名。我们用Python程序找出每年超额收益前10的基金,然后计算它们的在下一年平均超额收益,并且把这个平均的超额收益放在下一年所有基金里进行排名,得到了下图中的排名百分比:
图中的百分比代表了基金排名的分位数。例如2014年的91.39%,那说明2014年排名前10的基金,在2015年在所有基金业绩排名中,排在了第91.39%,是相当差的成绩。
从图中可知,有将近一半的年份,明星基金在下一年的表现都不好,平均排在后50%。
所以,从排名角度来看,前10明星基金的业绩也是不大可持续。如果买入今年表现好的基金,明年未必能赚钱,甚至很有可能是亏钱的。
通过数据分析我们发现,当年排名前十基金,在第二年的表现并不一定优秀。
当然,本文简单的研究有不严谨的地方。例如,在对基金进行排名的时候,没有进行分类。因为有些基金是专注于个别行业的,比如医药、消费品等,也有些基金专注于风格,比如成长、价值。将这些基金全部混在一起排名,有待商榷。
不过,本文和量化小讲堂系列文章,主要目的还是以各类案例来展示如何使用Python处理金融数据。并且文中的主要观点,不要迷信那些历史收益好的基金,也是正确的投资观念。
另外,文中构建的投资组合是过去一年排名前10的基金。敏感都同学就会想到,会不会一年的时间太短,是否过去3年、5年、7年会更好呢?
或者只选前10是否合适?能不能只选第一名?或者选择前100名?
甚至数据证明前10名没效果,那后10名有效吗?
以上的想法,大家有兴趣都可以自己鼓捣鼓捣。本文用到的代码如下图,具体数据和代码文本可以私信我询问,没加的可以加:xingbuxing0807
关于量化的任何问题,或者想要了解其他内容,可以交流。