首页 code
基金七天免手续费筛选
发布时间:2021年05月22日 评论数:抢沙发 阅读数:25394
支付宝看直播 每天有1k-3,1w-20红包,债基不能用,只能用于股票型和混合型。
偶然发现一些混合偏债型也可以用红包,于是想找找债券占比高,股票占比低的混合偏债基。
手动在天天基金网上找,效率太低。
看到往上有人写了个爬虫,从天天基金网上筛选7天免手续费的基金的,于是稍作修改,满足我的筛选需求。
import pandas as pd import requests import execjs # import os # os.environ["EXECJS_RUNTIME"] = "JScript" url = 'http://fund.eastmoney.com/js/fundcode_search.js' content = requests.get(url) jsContent = execjs.compile(content.text) rawData = jsContent.eval('r') jjcode=[] jjname=[] jjtype=[] # 忽略:债券型、债券指数、货币型、定开、QDII、FOF等 # 保留:股票型、股票指数、混合型、联接基金的C类基金; for code in rawData: if len(code) > 2: name = code[2] type = code[3] if name[-1] == 'C': #if type == '股票型' or type == '股票指数' or type == '混合型' or type == '联接基金' or type[:4] == 'QDII': if type == '股票指数' or type == '联接基金': jjcode.append(code[0]) jjname.append(code[2]) jjtype.append(code[3]) # 满7天赎回费率为零 feeString = '<td>大于等于7天</td><td>0.00%</td>' # 基金状态,基金规模,运作费用 openString = '开放申购' amtString = '亿元' yearString = '(每年)' def getUrl(fscode): head = 'http://fundf10.eastmoney.com/jjfl_' tail = '.html' return head+fscode+tail # 根据基金代码查询费率信息 def getFee(fscode): content = requests.get(getUrl(fscode)) fees = '' result = feeString in content.text if result == True: result = openString in content.text if result == True: nPos = content.text.find(amtString) if nPos > 5: sTemp = content.text[nPos-5 : nPos] fAmount = float(sTemp) if fAmount < 0.5 and sTemp[:2] == ' 0': result = False else: nPos = content.text.find(yearString) if nPos > 0 and content.text[nPos-1] == '%': # 管理费率 fees = fees + content.text[nPos-5 : nPos] + ' ' nPos = content.text.find(yearString, nPos+1) if nPos > 0 and content.text[nPos-1] == '%': # 托管费率 fees = fees + content.text[nPos-5 : nPos] + ' ' nPos = content.text.find(yearString, nPos+1) if nPos > 0 and content.text[nPos-1] == '%': # 销售服务费率 fees = fees + content.text[nPos-5 : nPos] else: result = False return result, fees jj7code=[] jj7name=[] jj7type=[] jj7fees=[] k = 0 j = len(jjcode) for i in range(j): code = jjcode[i] result, fees = getFee(code) if result == True: k += 1 jj7code.append(jjcode[i]) jj7name.append(jjname[i]) jj7type.append(jjtype[i]) jj7fees.append(fees) if i % 100 == 0: print("totals : {}\tfound : {}\tprocessing : {}".format(j, k, i+1)) jjinfo=pd.DataFrame({'代码':jj7code, '名称':jj7name, '类型':jj7type, '费率':jj7fees}) # 写入到本地文件 # 注意:如用EXCEL打开CSV文件,会发现基金代码没有前置0。这是EXCEL的问题,用NOTEPAD打开CSV可知文件本身正常 jjinfo.to_csv('./data/jj7.csv', encoding='utf_8_sig', index=False) jjinfo.head() # ———————————————— # 版权声明:本文为CSDN博主「范牧天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 # 原文链接:https://blog.csdn.net/fanmin2000/article/details/116030602
按需求修改后如下:
import pandas as pd import requests import execjs # import os # os.environ["EXECJS_RUNTIME"] = "JScript" url = 'http://fund.eastmoney.com/js/fundcode_search.js' content = requests.get(url) jsContent = execjs.compile(content.text) rawData = jsContent.eval('r') jjcode=[] jjname=[] jjtype=[] # 所有类别: # 股票型 股票指数 联接基金 QDII QDII-指数 # 混合型 混合-FOF # 债券型 债券指数 定开债券 # 货币型 理财型 for code in rawData: if len(code) > 2: name = code[2] type = code[3] if True:#name[-1] == 'C': if type == '混合型': jjcode.append(code[0]) jjname.append(code[2]) jjtype.append(code[3]) # 满7 / 30天赎回费率 feeString = '<td>大于等于7天</td><td>0.00%</td>' fee30String = '<td>大于等于30天</td><td>0.00%</td>' # 基金状态,基金规模,运作费用 openString = '开放申购' amtString = '亿元' yearString = '(每年)' def getUrl(fscode): head = 'http://fundf10.eastmoney.com/jjfl_' tail = '.html' return head+fscode+tail def getUrlZCPZ(fscode): head = 'http://fundf10.eastmoney.com/zcpz_' tail = '.html' return head+fscode+tail zqzjb = '债券占净比' # 查询资产配置比例 def getZCPZ(fscode): content2 = requests.get(getUrlZCPZ(fscode)) nPos2 = content2.text.find(zqzjb) if nPos2 == -1: result = False else: # 股票占比 class=tor nPosa = content2.text.find("tor",nPos2) nPosb = content2.text.find("</td>",nPosa+1) sTemp = content2.text[nPosa+5 : nPosb] if sTemp == "---": gpzb = 0 else: gpzb = float(sTemp[0:-1]) # 债券占比 class=tor nPosa = content2.text.find("tor",nPosa+1) nPosb = content2.text.find("</td>",nPosa+1) sTemp = content2.text[nPosa+5 : nPosb] if sTemp == "---": zqzb = 0 else: zqzb = float(sTemp[0:-1]) # 股票<5% 债券>90% if gpzb < 5 and zqzb > 90: result = True else: result = False return result # 根据基金代码查询费率信息 def getFee(fscode): content = requests.get(getUrl(fscode)) fees = '' result = fee30String in content.text if result == True: # 开放申购 # result = openString in content.text # if result == True: nPos = content.text.find(amtString) if nPos > 5: # 资产规模 # sTemp = content.text[nPos-5 : nPos] # fAmount = float(sTemp) # if fAmount < 0.5 and sTemp[:2] == ' 0': # result = False # else: # 资产配置占比 result = getZCPZ(fscode) if result == True: nPos = content.text.find(yearString) if nPos > 0 and content.text[nPos-1] == '%': # 管理费率 fees = fees + content.text[nPos-5 : nPos] + ' ' nPos = content.text.find(yearString, nPos+1) if nPos > 0 and content.text[nPos-1] == '%': # 托管费率 fees = fees + content.text[nPos-5 : nPos] + ' ' nPos = content.text.find(yearString, nPos+1) if nPos > 0 and content.text[nPos-1] == '%': # 销售服务费率 fees = fees + content.text[nPos-5 : nPos] else: result = False return result, fees jj7code=[] jj7name=[] jj7type=[] jj7fees=[] k = 0 j = len(jjcode) for i in range(j): code = jjcode[i] result, fees = getFee(code) if result == True: k += 1 jj7code.append(jjcode[i]) jj7name.append(jjname[i]) jj7type.append(jjtype[i]) jj7fees.append(fees) if i % 100 == 0: print("totals : {}\tfound : {}\tprocessing : {}".format(j, k, i+1)) jjinfo=pd.DataFrame({'代码':jj7code, '名称':jj7name, '类型':jj7type, '费率':jj7fees}) # 写入到本地文件 # 注意:如用EXCEL打开CSV文件,会发现基金代码没有前置0。这是EXCEL的问题,用NOTEPAD打开CSV可知文件本身正常 jjinfo.to_csv('~/123.csv', encoding='utf_8_sig', index=False) jjinfo.head() # 版权声明:本文为CSDN博主「范牧天」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。 # 原文链接:https://blog.csdn.net/fanmin2000/article/details/116030602
经过筛选,在7天免手续费的基金里没有符合要求的混合偏债基,
在30天免手续费里找到以下,债券占比高达97%,没有股票占比:
003412 鹏华弘康灵活配置混合C 总费率 0.8% / 年 债券97%
001775 鹏华弘泰灵活配置混合C 总费率 1.05% / 年 债券98%
002322 银华汇利灵活配置混合C 总费率 1.05% / 年 债券93% 股票4%
----------------------------------
发现了更好的,支付宝里的 指数-债券型,红包可用,直播红包1w-20,七天卖千一手续费10块,红包年化五个点。
006728 博时中债3-5年进出口行指数C
007486 博时中债3-5年国开行指数C
007847 华富中债0-5年中高等级信用债收益平衡指数C
006474 招商中债1-5年进出口行指数C
本文作者:admin
文章标题: 基金七天免手续费筛选
本文地址:http://jiang.shuang.he.cn/blog/?post=45
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
本文地址:http://jiang.shuang.he.cn/blog/?post=45
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
相关文章