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

一、简介

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

这里以白酒为例,相信玩过基金的人都知道,白酒这个基金上过几次热搜,在基金排行榜也是无人不知,所以选择了白酒为例(最重要的是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 = 161725``size = 365``url = "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可以分析几个月,近一年,近几年的基金数据。

读者福利:如果大家对Python感兴趣,这套python学习资料一定对你有用

对于0基础小白入门:

如果你是零基础小白,想快速入门Python是可以考虑的。

一方面是学习时间相对较短,学习内容更全面更集中。
二方面是可以根据这些资料规划好学习计划和方向。

包括:Python激活码+安装包、Python web开发,Python爬虫,Python数据分析,人工智能、机器学习、Python量化交易等习教程。带你从零基础系统性的学好Python!

零基础Python学习资源介绍

① Python所有方向的学习路线图,清楚各个方向要学什么东西

② 600多节Python课程视频,涵盖必备基础、爬虫和数据分析

③ 100多个Python实战案例,含50个超大型项目详解,学习不再是只会理论

④ 20款主流手游迫解 爬虫手游逆行迫解教程包

⑤ 爬虫与反爬虫攻防教程包,含15个大型网站迫解

⑥ 爬虫APP逆向实战教程包,含45项绝密技术详解

⑦ 超300本Python电子好书,从入门到高阶应有尽有

⑧ 华为出品独家Python漫画教程,手机也能学习

⑨ 历年互联网企业Python面试真题,复习时非常方便

在这里插入图片描述

👉Python学习路线汇总👈

Python所有方向的技术点做的整理,形成各个领域的知识点汇总,它的用处就在于,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。(全套教程文末领取哈)
在这里插入图片描述

👉Python必备开发工具👈

温馨提示:篇幅有限,已打包文件夹,获取方式在:文末

👉Python学习视频600合集👈

观看零基础学习视频,看视频学习是最快捷也是最有效果的方式,跟着视频中老师的思路,从基础到深入,还是很容易入门的。

👉实战案例👈

光学理论是没用的,要学会跟着一起敲,要动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。

在这里插入图片描述

👉100道Python练习题👈

检查学习结果。

👉面试刷题👈

在这里插入图片描述

在这里插入图片描述

资料领取

这份完整版的Python全套学习资料已经上传网盘,朋友们如果需要可以点击下方微信卡片免费领取 ↓↓↓【保证100%免费】

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值