失眠网,内容丰富有趣,生活中的好帮手!
失眠网 > 基于python 的股票行情查询系统开发(二)

基于python 的股票行情查询系统开发(二)

时间:2020-04-07 14:04:01

相关推荐

基于python 的股票行情查询系统开发(二)

基于python 的股市行情查询系统开发(二)

拖更的我终于回来了,这一周lz上班上的是心力憔悴啊,工作日都没什么时间继续开发,忙于各种蛋疼的事,进度缓慢呐。。。(插一句,这周股票回暖,牛市是不是又回来了?截止到lz目前,比特币也突破了60000刀!)

废话不多说了,书接上回,我们获取了股票名称和股票代码:

那么,我们就可以通过股票代码,使用爬虫进行历史的数据的获取啦。

getstockdata.py

import urllib.requestimport urllibimport requests as reimport datetime url = 'http://quotes./service/chddata.html?code=' #网易的历史行情数据apiurlend = 'fields=TCLOSE;HIGH;LOW;TOPEN;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP' #代表数据的最高价,最低价,开盘价,收盘价,涨跌幅等等path = "D:\\股票数据\\" #存取路径def get_todaydate(): #获取最新日期date = datetime.datetime.now().strftime('%Y%m%d')return datedef get_stockdata(): #获取date = get_todaydate()stock_list = sub.read_from_csv("D:\\投资\\stocklist.csv") #路径填写股票代码文件的路径 for stock in stock_list:stock_name = stock[0] #文件名称if '股票名称' in stock_name: #第一行我们不需要continueif "*" in stock_name:stock_name = stock_name.replace('*',"(星)") #windows文件不能以*开头命名,所以在下出此下策代替- - r = re.get(url+'0'+stock[1]+'&end='+date+urlend) #上证股票代码前加0开头 深证股票代码加1开头with open(path+stock_name+'.csv','w',newline='',encoding='utf-8') as csvfile:print('正在写入股票'+ stock_name) #写入文件csvfile.write(r.text)

好啦 ,我们执行以下,看看怎么样:

正在跑,开始写入文件了,看看对不对:

文件大小不是0kb,有数据了,打开看看数据完整不,这里我们点个中远海控的数据看看:

数据是有了,成交笔数测试了很久,好像目前是没有的。。。

上证目前有1700多只股票,数据一般要下一个多小时,目前我已经把数据打包上传资源了,链接在这上证A股历史股票数据.

好了,我们已经获取了上证A股历史数据了。那么就要用这些数据进行分析了,首先,导入pandas包,不用过多解释,强大的数据统计分析模块,可以快速地对数据进行分类分组等等。

首先,一个股票最基本的通过它的价格就应该得出他的均线,比如说5日线啊,10日线啊,30日,60日等等,这里我就举例上证指数来画均线。

首先,导入上证指数的数据,上证的代码为000001,同理获取数据。

drawplot.py

import requestsimport timeimport reimport csvimport pandas as pdfrom pylab import mplimport pilimport datetimeimport matplotlib.pyplot as pltimport numpy as np df = pd.read_csv('D:\\股票数据\\上证指数.csv',header=0,index_col=0)#index_col指定索引,默认我们选择是日期df1 = df.iloc[::-1] #由于数据是从大到小的,我们应该将其倒序,pandas中的dataframe支持数据的各类操作。df0 = df1[['收盘价']] #计算均线我们只需要收盘价stockcode = df.iloc[0,0] #获取股票名字和代码stockname = df.iloc[1,1]df_mean5 = df1.rolling(window=5).mean() #5日线 rolling方法计算出均值df_mean5 =df_mean5.rename(columns={'收盘价':'MA5'})df_mean10 = df1.rolling(window=10).mean() #10日线df_mean10 =df_mean10.rename(columns={'收盘价':'MA10'})df_mean20 = df1.rolling(window=20).mean()#20日线df_mean20 =df_mean20.rename(columns={'收盘价':'MA20'})df_mean60 = df1.rolling(window=60).mean()#60日线df_mean60 =df_mean60.rename(columns={'收盘价':'MA60'})print(df_mean5) # 输出5日均线数据

看看输出数据:

看看财经网站上的大盘日k线数据,验证一下

完全正确,成功!接下来我们进行收盘价的曲线描绘:

#concat表示拼接多个dataframedf_new = pd.concat([df1,df_mean10,df_mean20,df_mean60,df_mean240],axis=1) #axis=1表示按行进行拼接两个dataframedf_new.plot(kind = 'line',sharex = True,sharey = True,figsize=(50,8),title=stockcode+stockname,grid=True,fontsize=13)#pandas中plot进行画图 plt.show()

生成的图标如图:

额,由于是从1990到最新日期的大盘点数,比较密集,我们放大看一下左右的数据:

传说中的大牛市就呈现在我们面前啦!

(未完待续。。。)

如果觉得《基于python 的股票行情查询系统开发(二)》对你有帮助,请点赞、收藏,并留下你的观点哦!

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。