python数据分析-线性回归选择基金

2,321 阅读3分钟

这是我参与11月更文挑战的第8天,活动详情查看:2021最后一次更文挑战

1、生存是文明的第一需要。2、文明不断增长和扩张,但宇宙中的物质总量基本保持不变。

1 前言

在前面的章节中我们牛刀小试,一直在使用python爬虫去抓取数据,然后把数据信息存放在数据库中,至此已经完成了基本的基本信息的处理,接下来就来处理高级一点儿的内容,今天就从基金的趋势分析开始。

2 基金趋势分析

基金的趋势,就是选择一些表现强势的基金,什么样的才是强势呢?那就是要稳定的,逐步的一路北上。通常情况下,基金都会沿着一条趋势线向上或者向下,基金的趋势形成比股票的趋势更加确定一些。 以下图为例,展示的是华夏中证新能源汽车ETF的走势情况,可以看到这个基金的走势基本上就是按照红色的趋势线。今天要做的就是使用数学-线性回归的方式来计算这个趋势的斜率以及趋势表的可靠性。

这里分析基金走势的模型采用线性回归,假定其走势符合 y=kx+b{ y = kx + b } , y 就是对应的收益率, x 为时间。k 值为斜率。现在要做的就是使用这组基金的数据计算这个k值,这样就可以使用这个k值进行基金的对比。

3 数据抓取与分析

3.1 基金数据抓取

抓取基金数据历史收益率的数据

# 抓取基金历史收益率数据连接
http://api.fund.eastmoney.com/pinzhong/LJSYLZS?fundCode=515030&indexcode=000300&type=y
# 参数说明
fundCode 为需要查询的基金代码
indexcode 基金对比基准数据,默认为沪深300(000300)
type 为数据查询的周期,m 一个月 q 3个月 hy 6个月 y 一年 try 3年 fiy 5年 sy 今年来 se 最大

在api接口返回的数据中,0 代表的是基金数据, 1 是同类基金的平均值,2 为沪深300的数据。 具体的实现代码见图:

3.2 数据分析

数据分析的方式使用 matplotlibsklearn.linear_model ,第一个是用于数据的图形展示,第二个是线性分析工具,用于计算基金的k值。有关线性分析的内容,有兴趣的可以去查询线性分析的计算细节。

如下图所示,为数据模型计算和图形展示的代码。 以新能源ETF数据为例,我们得到了 y= 0.3541x + b 的趋势线,这个线性模型的评分为0.741。其实这个评分已经相当高了,收益率越大,其波动越大,和线性规划的契合度就越低。

但是有没有例外呢,以天弘增利短债C(008647)为例,其评分相当高,看图形展示就可以知道,但是债券基金的k值比股票基金的k值比是相当的低,高风险,高回报,低风险,低回报。收益是对风险的补偿。

4 总结

在这一章中,介绍了使用线性规划的方式分析基金的趋势情况,并使用量化分析的方法进行基金的分析和筛选。最后可以使用这个方法对所以的基金进行分析,筛选出趋势性强的基金进行投资。