在过去的2018年这一年时间里,股票市场的表现可谓是令广大股民心力交瘁,股价一路走低。不少股民们也是因此对股票丧失了信心,纷纷撤出市场。
但是仍然有一部分股民们仍然坚守着信念,继续奋战在持续走低的股票市场——终于,在2019年开春之后,中国的股票市场迎来了开门红,告别了数年低迷的熊市,一度突破3000大点,2019年牛市真的要来临了吗?
先放一张股神巴菲特镇楼,希望2019年牛市继续保持态势,我只想看到红涨、红涨、红涨。。。
也是出于好奇,为了对当前的股市场进行一探究竟,小编通过Python爬取了2018年度到目前的股票历史数据,大展身手进行一波数据可视化操作,结合数据和市场分析2019年A股牛市的走势和行情。
以下就来分享一些我的分析及可视化过程。
工具介绍(Python+FineBI)
对于股票相关数据,想必对于Python大家应该都比较熟悉了,网站爬数据神器。由于小编还算有些Python基础,从东方财经网和网易财经爬取相关股票的历史数据这并不是难事。
但是数据可视化分析方面,虽然Python有numpy、pandas、matplotlib等第三方库来辅助进行数据处理和数据可视化,或者也可以借助echart等图表开源接口,但是通过各类代码进行图表属性设置等方面还是比较繁琐的,而且只能生成静态的图表,无法进行动态和深入的多维分析,主要生成我想要的可视化分析报告比较麻烦。
经过一番研究和对比,决定用BI可视化分析工具FineBI来进行可视化分析,对爬取到的相关数据进行可视化分析展示。
上手简单,拖拽字段即出图表,有点像升级版的数据透视表,强烈推荐!!
Python股票数据爬取
由于需要相关的历史数据,经过对比东方财经网和网易财经网的相关网站页面,网易财经网对于我收集相关历史数据更加方便。
这边直接贴出来网易财经网获取股票历史数据的接口:
http://quotes.money.163.com/service/chddata.html?code=[code]&start=[yyyyMMdd]&end=[yyyyMMdd]&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP
接口中有三个核心参数,code表示股票编码,start表示开始时间,end表示结束时间,用python自动填充即可,调用起来非常方便。
通过Python调用网易财经的股票数据接口,获取上海/深圳A、B股近期成交量前10的共40家股票的历史数据,包含相关股票的开收盘情况、跌涨数据、换手率、成交数据、总市值、流通市值等关键数据指标。
直接贴出来代码:
import urllib.request import re import glob import time # 上海、深圳A/B股票,近期成交量前40支股票代码 allCodelist=[ '601099','601258','600010','600050','601668','601288','600604','600157','601519','600030',#上海A股 '900902','900941','900948','900938','900947','900932','900907','900906','900903','900919',#上海B股 '000725','300059','002131','300116','002195','002526','002477','000536','300104','000793',#深圳A股 '200725','200160','200018','200037','200488','200168','200468','200058','200012','200625' #深圳B股 ] for code in allCodelist: print('正在获取%s股票数据...' % code) if (code[0] == '6' or code[0]=='9'):#A股 url = 'http://quotes.money.163.com/service/chddata.html?code=0' + code + \ '&start=20180101&end=20190228&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP' print(url) else:#B股 url = 'http://quotes.money.163.com/service/chddata.html?code=1' + code + \ '&start=20180101&end=20190228&fields=TCLOSE;HIGH;LOW;TOPEN;LCLOSE;CHG;PCHG;TURNOVER;VOTURNOVER;VATURNOVER;TCAP;MCAP' print(url) urllib.request.urlretrieve(url, 'd:\\股票\\' + code + '.csv')#需要提前新建好D盘的“股票”目录,将数据写入csv文件 csvx_list = glob.glob('d:\\股票\\*.csv') print('总共发现%s个CSV文件' % len(csvx_list)) time.sleep(2) print('正在处理............') for i in csvx_list: fr = open(i, 'r').read() with open('csv_to_csv.csv', 'a') as f:#合并csv文件 f.write(fr) print('写入完毕!')
Pyhton完美运行,爬取时间不到15秒~
成功获取到上海/深圳A、B股近期成交量前10的共40家股票,2018年1月1日到2019年2月28日的所有历史交易数据。
相关股票数据excel文件也给大家双手奉上,方便大家分析使用。
FineBI数据可视化
关于FineBI,前面已经简单介绍过,它的特点就是操作简单上手快,无须任何代码,直接在浏览器端通过FineBI工具的鼠标拖拽和点击操作即可生成色彩绚丽的可视化图表效果。
下面我们可以通过FineBI官网获取软件激活码,下载并按照向导安装好软件:
出现这个界面就代表已经安装成功。接下来我们就可以开始在FineBI中将之前爬取到的数据进行可视化。
FineBI的操作很简单,但还是建议上手前看一下他的帮助文档或基础视频,会有邮件告知学习资料。
把数据表上传导入到FineBI中,然后就可以在仪表板中进行相关数据的可视化分析了。
经过大概半个小时的操作,我这边将相关股票的开收盘情况、跌涨数据、换手率、成交数据、总市值、流通市值等关键数据指标制作成了一个数据可视化报告,方便从多个维度观察和分析股票的各个指标。
数据可视化分析结果
1.从股票的日线走势可以看出,自2018年以来,股票市场处于一路震荡走低的大趋势,2018年10月份出现触底,2018年11月份又一波小的上涨行情,但是随后12月份又迅速回调。到2019年1月份,开始出现小幅上涨,2月份春节之后,股票市场迅速拉升,一路飘红,换手率也是一路飙升。今年年初经过小幅调整后,立即放量拉升,2月份呈现“价量齐升”的态势,颇有一番从过往低迷熊市转向高昂牛市的势头。
2.通过FineBI联动对比分析深圳、上海A/B股的市场情况可以看出,A股的市场行情总体提升较B股明显,A股占据主体成交量。
3.分析股票的移动平均线,5日、10日、30日、60日均线呈发散向上趋势,在股市术语来说这个叫做”金叉“,这些都是牛市可能来临的信号。
4.未来趋势预测方面,采用FineBI的时序预测法,按周开盘价、周成交量预测未来走势,根据预测结果未来5周仍然势态良好,进入3月份后,大盘行情持续走高,截止目前(3月6日),沪市A股已站上3100点,深市A股已站上9700点。
近期股市总结
自2015年以来,长久的股市低迷状态被2019年开春之后的市场所打破,政策红利持续释放以及券商业绩需要改善。从近期来看,券商行情有望持续推进,阻力A股持续倒逼推进,从数据体现来看也就是涨幅、交易量、换手率君大幅攀升。2月中旬各股呈”金叉“态势,随后开启急速攀升模式。
从股票热点来看,最大的热点可能是金融板块,周末大篇幅的政策也随之出台,可以重点关注。另外,创业板块、证券板块或许也都将有不俗表现。大消费,蓝筹股可以重点跟踪,对于中长期股民来说更为利好,擅长长线投资者可以重点关注其市场走势。
整体来看,上股/深股两市放量创新高说明市场运行还是相对健康的,对于近期或出现的关口震荡休整也属于正常现象。在国家政策的大力引导之下,特别是沪指未来应该具备突破3000点大关的能力,未来总体股票市场行情看好。
再来分享一张一个小伙伴制作的FineBI数据可视化作品~欢迎大家多多交流。
后要说的是,无论现有的股票市场趋势如何,作为散民的大多数投资群体,都应当持续关注最新市场行情,了解最新动向。毕竟股市有风险,入市需谨慎!
对可视化感兴趣的同学,不妨拿了数据,自己尝试分析!