Python基金数据实战分析:偏债混合基金篇

如何从众多的基金中选择适合自己的

时代不同了。随着各类基金规模的不断扩大,一方面基金看重的股票往往基本面较为优质,另一方面其资金优势也可采用“抱团”战法。于是,与其参考基金选股做一名股民,不如直接选基金购买做一名基民。那么,如何从众多的基金中选择适合自己的呢?本篇尝试用Python爬取基金数据,找出其中收益较稳定(年化收益率8%)的偏债混合基金。

需求场景

通常,家庭主管财政的老头老太,投资风格都较保守,喜欢投资“稳赚不赔”的存款和相关理财产品。但是,“稳赚不赔”的背后也是有代价的:年收益率只有4%上下。因此,建议拿出一部分资金,尝试一些“低风险”的品种------偏债混合基金。

从基金网站获取基金代码

根据前人的经验及其相关文章和代码,天天基金网是一个很不错的网站。其中,获取基金代码可以通过这个JS接口:
‘http://fund.eastmoney.com/js/fundcode_search.js’

相关Python代码如下:

import pandas as pd
import requests
import time
import execjs
# import os
import matplotlib.pyplot as plt

# os.environ["EXECJS_RUNTIME"] = "JScript"
plt.rcParams['font.sans-serif']='SimHei'
plt.rcParams['axes.unicode_minus']=False

url = 'http://fund.eastmoney.com/js/fundcode_search.js'
content = requests.get(url)
jsContent = execjs.compile(content.text)
rawData = jsContent.eval('r')

jjcode=[]
jjcodeHHC = [] #混合C基金另存以备后用
jjname=[]
jjtype=[]

for code in rawData:
    if len(code) > 2:
        jjcode.append(code[0])
        jjname.append(code[2])
        jjtype.append(code[3])
        #建议各类基金分类保存,固收/货币型基金与股指/股票型基金差异太大
        name = code[2]
        if code[3] == '混合型' and name[-1] == 'C':
            jjcodeHHC.append(code[0])

jjinfo=pd.DataFrame({
   '代码':jjcode, '名称':jjname, '类型':jjtype})

# 写入到本地文件,注意:如用EXCEL打开CSV文件,会发现基金代码没有前置0
# 这只是EXCEL的缺省显示问题,用NOTEPAD打开CSV可知文件本身正常
jjinfo.to_csv('./data/jjcode.csv', encoding='utf_8_sig', index=False)

jjinfo.head()

显示:
代码 名称 类型
0 000001 华夏成长混合 混合型
1 000002 华夏成长混合(后端) 混合型
2 000003 中海可转债债券A 债券型
3 000004 中海可转债债券C 债券型
4 000005 嘉实增强信用定期债券 定开债券

注:如果上述代码运行之后,报错:execjs UnicodeDecodeError: ‘gbk’ codec can’t decode byte,那么最可能的原因是您另安装了nodejs,而execjs选择nodejs去执行js有兼容性的问题。解决方法是增加:os.environ[“EXECJS_RUNTIME”] = “JScript”,即把上面代码里os语句的#号去掉。

先整体看一下基金情况

# 按照类型进行分组
分组数量=jjinfo.groupby('类型').agg(基金数量=('类型','count')).\
sort_values(by='基金数量',ascending=False).reset_index('类型')
# 图表展示
plt.style.use('ggplot')
fig=plt.figure(figsize=(20,8))
plt.xticks(fontsize=12)
plt.yticks(fontsize=12)
plt.bar(x='类型',height='基金数量',data=分组数量)
fo
  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值