不操千曲而后晓声,观千剑而后识器。这篇文章主要讲述基金这么赚钱!!编程实现基金从采集到分析通用模板!(白酒为例)相关的知识,希望能为你提供帮助。
一、简介玩过几个月的基金,所以今天闲着没事看能不能编程实现-从采集基金数据然后进行分析
这里以白酒为例,相信玩过基金的人都知道,白酒这个基金上过几次热搜,在基金排行榜也是无人不知,所以选择了白酒为例(最重要的是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 = https://www.songbingjia.com/android/i[/'value\']
print("date=" + str(date) + ",percentage=" + str(percentage) + ",value="https://www.songbingjia.com/android/+ str(value))
except:
pass
else:
f = m[1]
try:
date = i[/'date\']
percentage = i[\'percentage\']
value = https://www.songbingjia.com/android/i[/'value\']
print("date=" + str(date) + ",percentage=" + str(percentage) + ",value="https://www.songbingjia.com/android/+ 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=y2bar_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=y2bar_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、总结
- 以上的分析是以白酒为例(代号161725),通过改变代号可以通用分析其他的基金。
- 通过改变size可以分析几个月,近一年,近几年的基金数据。
推荐阅读
- 人工智能算法小白实战-你真的了解词向量吗()
- 如何识别并解决复杂的dcache问题
- Python对系统数据进行采集监控——psutil
- 20210611 word2vec 的代码实现
- 结合scipy.linalg在Python中使用线性系统
- oCPX简介——广告界的“无人驾驶”技术
- 人工智能下的音频还能这样玩!!!!
- 风控中英文术语手册(银行_消费金融信贷业务)_v4
- 统一预估引擎的设计与实现