首页 code
基金七天免手续费筛选
发布时间:2021年05月22日 评论数:抢沙发 阅读数:25409
支付宝看直播 每天有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
版权声明:若无注明,本文皆为“”原创,转载请保留文章出处。
相关文章