使用pandas筛选优质基金

程序说明:

1、从同花顺i问财筛选出符合要求的基金列表(条件是股票类或混合类,成立超过1年,规模超过10亿元)
2、计算每个基金近30天,120天,250天的收益率
3、分别取出近30天收益率1.5的前100名,近120天收益率1.2的前100名,近250天收益率前100名,并计算成立以来收益率的标准差
4、求以上3个前100名的交集,即近30天收益1.5,120天收益1.2,250天的收益率均排名前100的基金
5、输出交集中的基金,并显示标准差和综合得分,综合得分公式:(s[‘last30’]*1.5+s[‘last120’]*1.2+s[‘last250’])/s[‘收益率离散度’]
6、综合得分意义:近期收益权重大于远期收益,离散度越低,得分越高
以下是全部源码
# coding:utf-8

import re
import requests
from bs4 import BeautifulSoup
import pandas as pd
import random
import numpy as np
import time
import json
import logging

# 从同花顺i问财筛选出符合要求的基金列表(条件是股票类或混合类,成立超过1年,规模超过10亿元),注意网站保存出的格式可能是xml,要另存一次
funds_list_file = "./file/2020-11-07-1.xls"
# 沪深300历史收益数据,从网易财经获取
hs300_file = "./file/399300.xls"
# 用于存储全部符合要求的基金历史收益数据,包含列:代码、日期、收益率
funds_data_file = "./file/funds_data.csv"
# 用于存储每个基金每天对比沪深300当日收益率的情况,包含列:代码、日期、win(0|1)
compare_with_hs300_file = "./file/win_funds_sort.csv"
# 用于存储每个基金对比沪深300全历史胜率,包含列:代码、日期、胜率(0~1)
funds_win_rate_file ="./file/win_rate.csv"
# 用于存储近30天,120天,250天的收益率均排名前100的基金,包含列:代码、近30日收益率、近120天收益率、近250日收益率
last_rate_top_file = "./file/last_rate_top.csv"


'''
以下代码功能说明:
1、从同花顺网站中,爬取基金历史交易数据,页面示例http://fund.10jqka.com.cn/511660/historynet.html#historynet
2、从网页源码中发现历史数据存储在json中
3、格式化处理json数据,将每个基金的数据放到同一个xls中
'''
def GetFundsData():
    # 通过下面的方式进行简单配置输出方式与日志级别
    logging.basicConfig(filename='logger.log',format='%(asctime)s - %(pathname)s[line:%(lineno)d] - %(levelname)s: %(message)s',
                        level=logging.DEBUG,filemode='a')
    # logging.debug('debug message')
    # logging.info('info message')
    logging.warning('warn message')
    logging.error('error message')
    logging.critical('critical message')
    # 定义一些user_agent header,留到后面用,多备几个提高成功率
    user_agent = ["Mozilla/5.0 (Windows NT 10.0; WOW64)", 'Mozilla/5.0 (Windows NT 6.3; WOW64)',
                'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.11 (KHTML, like Gecko) Chrome/23.0.1271.64 Safari/537.11',
                'Mozilla/5.0 (Windows NT 6.3; WOW64; Trident/7.0; rv:11.0) like Gecko',
                'Mozilla/5.0 (Windows NT 5.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/28.0.1500.95 Safari/537.36',
                'Mozilla/5.0 (Windows NT 6.1; WOW64; Trident/7.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; .NET4.0C; rv:11.0) like Gecko)',
                'Mozilla/5.0 (Windows; U; Windows NT 5.2) Gecko/2008070208 Firefox/3.0.1',
                'Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070309 Firefox/2.0.0.3',
                'Mozilla/5.0 (Windows; U; Windows NT 5.1) Gecko/20070803 Firefox/1.5.0.12',
                'Opera/9.27 (Windows NT 5.2; U; zh-cn)',
                'Mozilla/5.0 (Macintosh; PPC Mac OS X; U; en) Opera 8.0',
                'Opera/8.0 (Macintosh; PPC Mac OS X; U; en)',
                'Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.8.1.12) Gecko/20080219 Firefox/2.0.0.12 Navigator/9.0.0.6',
                'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Win64; x64; Trident/4.0)',
                'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1; Trident/4.0)',
                'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E)',
                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Maxthon/4.0.6.2000 Chrome/26.0.1410.43 Safari/537.1 ',
                'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; SLCC2; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729; Media Center PC 6.0; InfoPath.2; .NET4.0C; .NET4.0E; QQBrowser/7.3.9825.400)',
                'Mozilla/5.0 (Windows NT 6.1; WOW64; rv:21.0) Gecko/20100101 Firefox/21.0 ',
                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/537.1 (KHTML, like Gecko) Chrome/21.0.1180.92 Safari/537.1 LBBROWSER',
                'Mozilla/5.0 (compatible; MSIE 10.0; Windows NT 6.1; WOW64; Trident/6.0; BIDUBrowser 2.x)',
                'Mozilla/5.0 (Windows NT 6.1; WOW64) AppleWebKit/536.11 (KHTML, like Gecko) Chrome/20.0.1132.11 TaoBrowser/3.0 Safari/536.11']

    funds = pd.read_excel(</
  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值