Python爬取满7天赎回零费率基金:短线基金定投

前言:基金常识

1、A类基金与C类基金

基金有三部分费率:
1、申购费率
2、赎回费率
3、运作费率

其中,运作费率包括:管理费率(通常每年0.5%到1.5%)、托管费率(通常每年0.1%到0.25%)、销售服务费率(C类基金通常每年0.1%到1.0%,其它类基金通常为0)。运作费率是从基金资产中每日计提的(每日公告的基金净值已扣除,无需投资者在交易中另行支付)。

A类基金是为中长期持有设计的,C类基金是为短线持有设计的。由此,A类基金与C类基金在费率上的区别:

1、A类基金通常有申购费率;赎回费率多为:小于7天1.50%、7至29天0.5%到0.75%、30至364天0.5%、365至729天0.1%到0.25%、满730天0费率(有些A类基金分档较少,甚至类似C类基金满30天0费率)。

2、C类基金申购零费率;多数C类基金赎回费率为:小于7天1.50%、7至29天0.5%、满30天0费率,少数C类基金为:小于7天1.50%、满7天0费率。

3、由于C类基金每日净值会自动计提销售服务费率,因此同一支基金,C类基金净值低于A类基金净值(差异等于已计提的销售服务费)。

2、ETF、LOF、ETF联接基金、FOF

ETF的全称是“Exchange Traded Funds”,本身是指数基金(股指基金、债券指数基金、期货指数基金等等),所以中文翻译是“交易型开放式指数基金”。与普通指数基金的区别在于:ETF股指基金是满仓股票,投资者赎回ETF时拿到的也是一篮子股票(因此ETF是场内交易的:投资者需有股票账户或场内基金账户);而普通指数基金有10%的现金,赎回时取得现金。

LOF的全称是“Listed Open-ended Fund”,中文是“上市型开放式基金”。LOF基金的申赎与普通指数基金相同,都是用现金来和基金份额进行交换,可以场外交易;LOF基金与普通指数基金的区别在于:LOF基金既可以被动跟踪指数,也可以主动选择其中的股票,其走势与指数可以有一定的差异(等同于“增强指数基金”)。

ETF联接基金,是联接ETF进行申赎的基金。对于普通投资者而言,达到ETF的申购门槛比较困难,而且ETF的申赎也不方便。因此基金公司发行ETF的时候,会同时推出ETF联接基金(通常90%持有该ETF),亦即ETF基金的代理,其管理费和托管费和对应的ETF是一致的(不重复收取),此外,联接A有申购费率,联接C则计提销售服务费率。

FOF基金,是投资基金的基金,可以理解为一篮子基金。细节方面,为防止利益输送,证监会对其投资的基金种类和比例有一些规定。

一、满7天赎回零费率基金

只有C类基金适合短线操作,且忽略以下类型的基金:债券型、货币型等等。

然后爬取之后发现:
1、股票C基金里面,是不存在满7天赎回零费率的,不必爬取了;
2、混合C基金里面,虽然能搜出几个满7天赎回零费率基金,但要么不开放申购,要么规模较小可能清算关闭,因此也不必爬取了;
3、QDII基金里面有一些QDII-指数C基金是满7天赎回零费率的,但其申购时间会多一天,因此不太适合短线操作;
4、因此,最后只选择指数基金和联接基金。
注:天天基金网后来将指数基金与ETF联接基金合并为“指数型-股票”,以下代码改了过来,但图表和说明则不改了。

二、实战

1、爬取基金数据

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 == '联接基金':
            if type[:3] == '指数型':
                jjcode.append(code[0])
                jjname.append(code[2])
                jjtype.append(code[3])

# 满7天赎回费率为零
feeString = '<td>大于等于7天</td><td>0.00%</td>'

# 基金状态,基金规模,运作费用
openString = '开放申购'
openString2 = '限大额'
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 or openString2 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
  • 3
    点赞
  • 15
    收藏
    觉得还不错? 一键收藏
  • 4
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值