我有个老叔很喜欢买基金,因为不想被割韭菜,所以啥群都没进,全部自己精挑细选。
看着他的一个本子密密麻麻地写了一大堆东西,全是基金的数据分析,一大把年纪了挺不容易的,于是就决定帮他一把。
在跟他详谈了买基金的一些情况之后(因为我是不懂这个的),按照他的要求,我用Python直接给他选出来他想买的好基金。
这几天他特意到我家来感谢,还特意提了2瓶酒,因为在我给他筛选的基金名单中,他选中后买的基金已经赚了,抽出了本金还剩一些还放在里面养着。
如果你身边也有喜欢买基金或者股票之类的朋友,你也可以用这个方式给他们提供一些技术支持。
一、目标
目的就是从天天基金网选出当下符合条件的前20名基金名单,具体的筛选条件我会在下面的步骤中讲清楚。
二、开发环境
-
Python3
-
Pycharm
-
常用的库
三、步骤
1. 获取基金排名信息,使用四四三三法则筛选排名靠前的基金
天天基金网上有基金的排名,可以用Python爬虫程序进行抓取和筛选。四四三三法则即挑选出3年/2年/1年的排名在前四分之一,6个月/3个月的排名在前三分之一的基金。
- 下面是爬虫抓取的URL(只抓取混合基金)
- URL参数释义:
sd 和 ed 是起始和结束日期,分别对应要考察的期间
pi 对应的是页数,pn 对应的是每页的记录数
返回值如下:
Tips:以上内容实际只需要datas后面的值,这个例子里可以看到最近1年共有5053支基金。那么排名四分之一就是在25%*5053=1263支基金。(返回数据已经按照从高到低进行了排序,抽取前n支基金即可。)
- 用Python代码处理上述信息
这样就把数据抽出了,当然,只是部分,需要循环把数据补充完整。
dataframe 内的数据是这样的。
2. 获取网上的基金的基本信息和夏普比率,筛选出夏普比率高的基金。
通过四四三三法则挑选出排名靠前的基金共有171个,需要继续进行筛选。目标是从171支基金里选出20支基金,规则是资金规模超过1亿的高夏普比率的基金。
同样从天天基金网获取资金规模和获取夏普比率。URL如下:
http://fund.eastmoney.com/f10/006279.html
http://fund.eastmoney.com/f10/tsdata_006279.html
- Python程序处理
然后我们来查看打印 dataframe 数据(部分信息截图)
- 查看打印 dataframe 数据
- 数据拼接
把上述两个dataframe拼接:
把3年/2年/1年/6个月/3个月的排名乘上权重(0.3/0.25/0.2/0.15/0.1)计算综合排名并排序。取前50条数据。
取排名前20
导出为csv格式文件(类似Excel的文件)
经过以上步骤就成功挑选出了最好的排名前20的基金名单,再此祝各位不再被噶韭菜,基金一路红红红~!
结语
提醒以下大家,这只是比人工去分析和判断省时省力以及精准一些,得到数据之后得有专业的知识去分析才可能得到答案。
我自己也很喜欢Python,收藏了很多技术干货,可以共享给喜欢我文章的朋友们,干货内容包括:
点击文末的名片可以抱走