酱香科技!用 Python 分析白酒类基金有多赚钱!

Python中文社区

共 4318字,需浏览 9分钟

 ·

2021-02-02 08:51


一、简介

玩过几个月的基金,所以今天闲着没事看能不能编程实现-从采集基金数据然后进行分析


这里以白酒为例,相信玩过基金的人都知道,白酒这个基金上过几次热搜,在基金排行榜也是无人不知,所以选择了白酒为例(最重要的是2021-1-25,白酒涨幅了6.35%,这个是什么概念!!就是你买一百元就赚6.35元)。


废话有点多,开始下一步。


二、采集基金


分析

首先是页面,这里选择了蛋卷基金网页去采集数据

https://danjuanapp.com/funding/161725?channel=1300100141

其中白酒基金的代号是:161725


通过F12查看数据包可以发现,这里网页是通过异步加载数据,那接下就好办了



可知访问链接是

https://danjuanapp.com/djapi/fund/nav/history/161725?size=200&page=1


放到浏览器访问,可以返回json数据,同时我们也发现,通过改变代号161725,size,可以获取不同基金的最新多少条数据

编程

首先通过requests请求数据,code是对应的基金代号,这里161725是白酒基金,size是对应的数据量

code = 161725size = 365url = "https://danjuanapp.com/djapi/fund/nav/history/"+str(code)+"?size="+str(size)+"&page=1"
headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 6.3; Win64; x64; rv:84.0) Gecko/20100101 Firefox/84.0', }res = requests.get(url, headers=headers)res.encoding = 'utf-8's = json.loads(res.text)


获取到数据后。按从以前到现在(倒叙)打印,并且按月分开

s = s['data']['items']f = ((s[len(s)-1]['date']).split("-"))[1]
for j in range(len(s)-1,-1,-1): i = s[j] m = (i['date'].split("-")) if m[1] == f: try: date = i['date'] percentage = i['percentage'] value = i['value'] print("date=" + str(date) + ",percentage=" + str(percentage) + ",value=" + str(value)) except: pass else: f = m[1] try: date = i['date'] percentage = i['percentage'] value = i['value'] print("date=" + str(date) + ",percentage=" + str(percentage) + ",value=" + str(value)) except: pass print("---------------")


结果如下:


三、可视化分析

1.月初和月末对比

def analysis1(x,y1,y2):    myfont = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simhei.ttf")    a=x    b_14=y1    b_15=y2
bar_width = 0.25 x_14 = list(range(len(a))) x_15 = list(i + bar_width for i in x_14)
# 设置图形大小 plt.figure(figsize=(20, 8), dpi=80) plt.bar(range(len(a)), b_14, width=bar_width, label="月初") plt.bar(x_15, b_15, width=bar_width, label="月末")
# 设置图例 plt.legend(prop=myfont) # plt.xlabel("月份",fontproperties=myfont) plt.ylabel("值",fontproperties=myfont) # 设置x轴刻度 plt.xticks(x_15, a, fontproperties=myfont) plt.savefig("./mutiy.png") plt.show()

效果图1

分析:

通过上面的条形图可知,最近几个月的月末值都大于月初值,说明这几个月都是属于盈利状态,尤其是2020-12月,盈利最大。而2020-8月是亏损最大的,从整体上来看,整年的月份整合下来,整体还是盈利的。

2.当月最高涨和最低跌

###2.当月最高涨、最低跌def analysis2(x,y1,y2):    myfont = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simhei.ttf")    a=x    b_14=y1    b_15=y2
bar_width = 0.25 x_14 = list(range(len(a))) x_15 = list(i + bar_width for i in x_14)
# 设置图形大小 plt.figure(figsize=(20, 8), dpi=80) plt.bar(range(len(a)), b_14, width=bar_width, label="当月最高涨") plt.bar(x_15, b_15, width=bar_width, label="当月最低跌")
# 设置图例 plt.legend(prop=myfont) # plt.xlabel("月份",fontproperties=myfont) plt.ylabel("值",fontproperties=myfont) # 设置x轴刻度 plt.xticks(x_15, a, fontproperties=myfont) plt.savefig("./mutiy.png") plt.show()

效果图2

分析:

其中的蓝线是当月涨最高的一次,橙色是当月跌最多的一次。在2020-7月跌的最狠,10月和12月涨的也是较多。

3.当月波动值(最高涨和最低跌之差)

###3.当月波动值(最高涨、最低跌之差)def analysis3(x,y1,y2):    myfont = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simhei.ttf")    a=x    y=[]    for i in range(0,len(y1)):        y.append(float(y1[i]-y2[i]))    # 设置图形大小    plt.figure(figsize=(20, 8), dpi=80)    plt.plot(a,y, label="波动差值")
# 设置图例 plt.legend(prop=myfont) plt.xlabel("月份", fontproperties=myfont) plt.ylabel("值", fontproperties=myfont) plt.savefig("./mutiy.png") plt.show()

效果图3

分析:

图中显示是当月的最高涨和最低跌之差,这里采用这些图,效果更佳明显。2019-7月是波动最小的一个月,2020-7月是波动最大的一个月,都是7月,哈哈哈,真巧。

4.月差值(月末减月初,该月是否盈亏)
###4.月差值(月末减月初,该月是否盈亏)def analysis4(x,y):    myfont = font_manager.FontProperties(fname="C:\\Windows\\Fonts\\simhei.ttf")
# 设置图形大小 plt.figure(figsize=(20, 8), dpi=80) plt.plot(x,y, label="月末-月初")
# 设置图例 plt.legend(prop=myfont) plt.xlabel("月份", fontproperties=myfont) plt.ylabel("值", fontproperties=myfont) plt.savefig("./mutiy.png") plt.show()

效果图4

分析:

当月的值大于0表示该月是盈利,小于0表示亏损。通过折线图来看,多数月份的值大于0,尤其是最近的几个月,更是远大于0。


好了,就分析这些吧,要去吃饭了,下次再说(偷懒!)

4、总结

  1. 以上的分析是以白酒为例(代号161725),通过改变代号可以通用分析其他的基金。

  2. 通过改变size可以分析几个月,近一年,近几年的基金数据。


更多阅读



2020 年最佳流行 Python 库 Top 10


2020 Python中文社区热门文章 Top 10


5分钟快速掌握 Python 定时任务框架

特别推荐




点击下方阅读原文加入社区会员

浏览 52
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报
评论
图片
表情
推荐
点赞
评论
收藏
分享

手机扫一扫分享

分享
举报