社区所有版块导航
Python
python开源   Django   Python   DjangoApp   pycharm  
DATA
docker   Elasticsearch  
aigc
aigc   chatgpt  
WEB开发
linux   MongoDB   Redis   DATABASE   NGINX   其他Web框架   web工具   zookeeper   tornado   NoSql   Bootstrap   js   peewee   Git   bottle   IE   MQ   Jquery  
机器学习
机器学习算法  
Python88.com
反馈   公告   社区推广  
产品
短视频  
印度
印度  
Py学习  »  Python

基金反买,别墅靠海?每年买倒数前十基金,能赚这么多?Python量化分析告诉你答案【附代码】

经管之家 • 1 年前 • 302 次点击  

这是邢不行第 83 期量化小讲堂的分享

作者 | 邢不行、密斯锌硒




每年年末基金排名出炉时,相信很多人都会盯着排名前几的明星基金,对排名倒数的却嗤之以鼻。


毕竟在大家的心中,基金排名越高,后续表现自然越好。排名倒数的基金自然就会被基金公司淘汰


但事实确实如此吗?


如果我说每年买排名后十基金的收益远超前十的明星基金,你会觉得我在胡言乱语吗?


先不着急反驳,接下来我会用Python量化基金排名,用数据告诉你应该怎么看每年的基金排名。



01

前情提要


在之前的这篇文章中,我们讲解了:每年都买排名前十的明星基金,并持有接下来的一年,长期来看是赚是赔。


点击图片查看文章


最终得到的结论如下图所示。


它展示了每年前十基金在次年相对于代表大盘的沪深300指数的收益。


每年前十基金次年相对收益率


比如2012年为17%,即2012年排名前十的基金在2013年的平均收益(9%),相对于当年沪深300指数涨幅(-8%)的超额收益是17%(17%=9%-(-8%))。


乍一看这个收益很不错。但再看2008年至今所有年份的收益,就会发现事实并非如此。


08年前十基金在次年跑输了大盘64%,13年到16年的前十基金也是连续折戟,跑输大盘。总体来看,每年排名前十的基金,在次年相对于大盘的胜率并不占优。


前十基金次年连续跑输大盘


我们还构建了一个投资组合:假设在2009年用1元买入沪深300指数,经过十几年的辗转反侧,你会拥有2.54元,也就是下图中的黄色曲线,说实话收益并不高。



但如果用这1元每年买入上年排名前十的明星基金并持有一年,就会如图中蓝色曲线所示,最终变为2.12元,甚至还不如大盘。


这个结果就是提醒大家:在明星基金最火爆的时候,不应该挤着、抢着、着急着去买入,应该主动的避开。追高明星基金其实也是很多新入场的小白亏钱的一个重要原因。


更多关于明星基金的详细内容大家可以看我这篇文章:

每年都买排名前十的明星基金,长期是赚是赔?Python告诉你答案【邢不行】


文章结尾我们还提到了其他购买基金的思路:



比较出人意料的是,众多思路中呼声最高的竟然是排名后十的基金在次年的表现。


为了满足大家的好奇心,我就去跑了一下数据,看了一下结果,然后我就陷入了沉思。。。


那么结果到底如何呢?下文我们就来进行详细的讲解。



02

数据获取


想知道后十名基金的表现,我们先要获取所有基金的相关数据。


大家可以选择天天基金网这样的财经网站,上面有较全的基金收益数据。美中不足的是,数据无法直接下载用于分析。


如果你会编程的话,可以尝试写个爬虫,从网站上爬取基金数据到Excel使用。


天天基金网址:fund.eastmoney.com


我从付费数据库中提取了基金数据,相对而言基金名单更加完整,数据准确率也更高


这份数据包含了历年所有主动偏股型基金,并去除当年刚上市基金。


打开后如图所示:第一列是基金的编码;第二列是历任基金经理的姓名和任职时间;第三列是2008年到2021年基金每年的收益率



数据包含了2008年到2021年所有的偏股型基金,总计3216只,非常全面。


如果你需要这份数据的话,可以扫描下方二维码或加我微信xbx783,我直接发给你。



03

基金统计


有了数据之后,就可以开始做基金的分析统计了。


1

后十基金经理统计

历年后十基金经理


首先我们非常不大好意思的,列出了历年排名倒数十名的基金经理。


部分基金经理的名字会重复出现,这说明当年他旗下同时有几只基金排名靠后。


对照这份名单,我们再来看每年排名后十基金的收益率。


此表与上图经理排名表一一对应


不得不说这些基金跌的非常多


这个时候如果去买入它们,我会因为担心明年继续下跌而打退堂鼓,毕竟谁都怕这些基金第二年会直接清盘


2

基金清盘情况

为此我特地查验了这些产品的存续情况,结果出乎我的意料


除了2019年有1只排名后十的基金在2020年清盘外,这些所谓岌岌可危的基金在次年清盘的数量基本为0


后十基金次年清盘情况


并且退一万步说,就算买入的基金清盘了,也会把所有的资产变现再分给你,而不是像股票退市一样血本无归。



基金清盘细节



至此我们就可以确保排名后十的基金很少会在第二年清盘。这样也大大提高了我们买入的放心程度


那既然后十基金基本不会清盘,那么它们的基金经理又会何去何从呢?


3

基金经理变更

带着这样的疑问,我整理出了排名后十的基金经理变更的数据。


如下图所示,统计了后十基金当年或次年的人员更替情况。


基金经理变动


比如2011年排名后十的基金中有6只在当年就直接变更了基金经理。


12年排名后十的基金在13年也有7只发生了换人操盘的情况。


这也说明了倒数前十的基金更换基金经理的比例往往非常高。足以可见行业的残酷,排名一旦靠后,基金经理就会被降职为保洁。


但反过来想,作为投资者我们应该感到庆幸


因为一个拉胯的基金经理或基金会影响整个公司的口碑。此时基金公司就会有非常大的压力和动力去更换基金经理


而往往临危受命的基金经理是比较优秀的,能够托底基金业绩,对投资者负责


了解完这些基金的基础信息后,接下来我们来看一下后十名基金次年的排名表现。



04

次年排名表现


1

举例说明

我们先把基金按照2008年的收益率从低到高排列并取前十。



然后计算出2008后十基金在2009年的排名。


如下图所示,08年排名倒数第一的基金在09年依然排名靠后。但倒数第二、第三的基金在09年就非常争气的名列前茅


2008年后十基金次年排名情况


接着我们计算出后十基金在2009年的平均排名是83位,在270只基金中排名31%(83÷270=31%),看起来还不错。


2

次年排名情况

得到2008年的数据后,我们可以用同样的方法,得到09年至今后十基金的次年排名百分比


虽然EXCEL也能完成这一步,但相对繁琐,我们可以用Python编程来计算结果。




如果你需要数据和代码的话,可以扫描下方二维码或加我微信xbx783,都是可以免费发你的。



程序的计算结果如图所示。


比如2012年排名后十的基金在2013年的平均排名是46%。


表现最佳的是18年,后十基金在次年的平均排名甚至高达24%


后十基金次年排名百分比


当然也有一些年份表现堪忧。比如2011年的后十基金在次年的排名是70%,2019年是77%,2020年是78%。



表现堪忧的年份


但是总体来看,这么多年下来平均排名在50%左右。可以看出排名后十的基金次年的进步非常明显。


后十基金次年表现平均排名


当然,仅看排名还不够直接,我们再来看后十基金次年的收益情况如何。



05

次年收益情况


1

举例说明

同样我们以2008年为例。


先取出08年排名后十的基金,计算其09年的平均收益率为77%。



我们同样借助Python代码来计算其他年份后十基金的次年收益情况。



如果你需要数据和代码的话,可以扫描下方二维码或加我微信xbx783,都是可以免费发你的。



计算结果如图所示。


如2012年的17%,就表示2012年排名后十的基金在2013年的平均收益率是17%。



后十基金次年收益情况


遍览全图,你可以看到在过去的13年中只有4年排名后十的基金在次年是亏钱的。


其他年份都略有盈利,并且有些年份收益颇丰,如2008年、2014年和2018年。


后十基金次年收益情况


当然我们都知道,评价基金的好坏不能只看它的绝对收益,还要看它相对于大盘的相对收益


2

后十基金次年相对收益

所谓相对收益就是用基金收益与同期大盘涨跌幅比较,也就是俗称的跑赢或跑输大盘多少


比如2008年的后十基金在2009年涨了77%,表面上看起来很是优秀。但当年代表大盘的沪深300指数涨了93%,也就是说它在09年跑输了大盘16%(77%-93%=16%)


相对收益率计算


我们统计出每年后十基金在次年的相对收益情况,具体结果如图所示:

当年后十基金次年相对收益率统计


可以看到表现最差的是2013年的后十基金,在次年跑输大盘22%。表现最好的2014年则跑赢大盘41%。


总体来说在过去的13年当中有5年跑输大盘,7年跑赢大盘,看起来还不错。


基于以上的统计结果,我们甚至可以尝试构建一个交易策略,来看一下每年排名后十的基金,它的长期表现会如何。



06

每年买后十基金会怎样?


假设我们初始有1元,每年年初均仓买入去年排名后十的基金,持有一年后全部卖出,根据新排名买入新的后十基金,如此循环往复


最后计算持有后十基金这些年的累计收益率



鉴于这个策略的计算比较复杂,我们依然用Python编程来实现。



如果你需要数据和代码的话,可以扫描下方二维码或加我微信xbx783,都是可以免费发你的。



代码运行结果如下图所示:


回测结果


蓝色曲线是我们每年购买后十基金最终得到的回报,它从初始的1元变成现在的4.56元。


橙色曲线是沪深300指数的走势图,大概翻了2.54倍。


所以我们惊讶的发现,后十基金组合居然大幅跑赢了代表大盘的沪深300指数。


而再看绿色曲线代表的前十基金组合,甚至都没有跑过大盘


所以下次每年基金年度排名出来的时候,先别急着吃倒数后十基金的瓜,也不要一直盯着名列前茅的那些大佬们。


毕竟从历史数据来看,排名后十的基金在次年表现比排名前十的更加优异



07

基金排名深入研究


针对以上的研究,可能会有人觉得只看前十名和后十名的话样本数量太少,会有一定的偶然性。


下面我们就通过一个比较学术的统计分析,来进一步验证相关结论。


1

分组回测

我们每年根据基金的收益从高到低进行排序,分为五组


将收益最高的20%的基金分为第一组,收益排名在20% - 40%的为第二组,依次类推。


分组后我们把每组基金当做一个投资组合,在次年年初买入相应的全部基金并持有一年,如此循环往复。


最终结果如下图所示:



基金排名分组回测(2009-2021)


以80% - 100%为例,即假设用1元从2009年开始,每年年初均仓买入去年排名80% -100%的基金,持有一年后调仓,最终会得到4.72元。


同理,图中的每一根柱子都衡量了它对应排名的基金长期的综合表现


观察数据我们能发现一个很有意思的现象:除了60% - 80%外的其他基金组合,排名越靠后收益越高。


同期沪深300指数从1变成了2.54


比如80% - 100%的基金组合收益为4.72,是收益最高的分组;前20%的基金分组收益却是最低的,为4.02。


据此我们就可以初步得到一个总体性的结论:



另外,分组统计中还有一个有趣的结论,有发现的同学可以扫描下方二维码或加我微信xbx783交流。



2

原因追溯

如果更深入探究的话,其实当年排名靠后的基金次年表现优秀也是有相应理论支撑的。


比较重要的一个原因是市场风格会不断转换。比如去年蓝筹股表现不错,今年则可能是中小盘股崛起。基金经理很难在市场风格的突变中连续踩对赛道,但同样不会一直踩错赛道。


另外排名靠后的基金普遍规模会缩减,反而有利于基金经理的操作。


而前面也提过,当旗下某个基金表现较差的时候,整个基金公司会有动力和压力换上更优秀的基金经理来托底




其他原因就不一一列举了。你知道的话,可以扫描下方二维码或加我微信xbx783交流。




08

后记


至此,我们就用两篇文章完整的了解了基金当年排名是如何影响次年表现的


除此以外,还有很多方向值得我们研究。


比如说从基金经理角度出发,只看过去一年的收益排名是否客观,延长到3年或5年又会如何。


或者我们也可以观察不同规模下排名前十的基金次年表现如何。




上述的这些问题,都是很不错的探究基金的方向。大家拿到数据和代码后可以自己把玩一番,选择感兴趣的角度进行研究,用Python编程来验证。也可以加我微信xbx783与我一起讨论。


如果本期文章超过100点赞,我们很快就再写一篇文章来讲解更多选基金的好思路。


归根到底一句话,我们用数据说话。


联系作者




往期文章推荐

A股永远3000点?量化指数增强策略,轻松多涨10倍!附代码

每年都买排名前十的明星基金,长期是赚是赔?Python告诉你答案

从零编写60%+胜率的短线择时信号!零基础python量化投资代码详解

神秘指标一出现,市场立马就变天 | 用Python计算成交量集中度(附代码)


Python社区是高质量的Python/Django开发社区
本文地址:http://www.python88.com/topic/153133
 
302 次点击