python对股市进行数据分析-tushare篇
数据准备
TuShare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据来源方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,TuShare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。
股市数据的获取
这里用到的tushare的get_hist_data函数来获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据,主要用法如下:
ts.get_hist_data('300032') #一次性获取全部日k线数据ts.get_hist_data('300032',start='2019-01-01',end='2019-06-18') #指定时间区间ts.get_hist_data('300032',ktype='W') #获取周k线数据ts.get_hist_data('300032',ktype='M') #获取月k线数据ts.get_hist_data('300032',ktype='5') #获取5分钟k线数据ts.get_hist_data('300032',ktype='15') #获取15分钟k线数据ts.get_hist_data('300032',ktype='30') #获取30分钟k线数据ts.get_hist_data('300032',ktype='60') #获取60分钟k线数据ts.get_hist_data('sh')#获取上证指数k线数据,其它参数与个股一致,下同ts.get_hist_data('sz')#获取深圳成指k线数据ts.get_hist_data('hs300')#获取沪深300指数k线数据ts.get_hist_data('sz50')#获取上证50指数k线数据ts.get_hist_data('zxb')#获取中小板指数k线数据ts.get_hist_data('cyb')#获取创业板指数k线数据
数据的显示
import tushare as tsdata = ts.get_hist_data('300032',start='2019-01-01',end='2019-12-31')data = data.sort_index(ascending=True)data[:10]
股市数据处理及可视化
1. 添加所需的函数库
import matplotlib.pyplot as pltimport datetimeimport mpl_finance as mpfimport pandas as pd%matplotlib inline%pylab inline
2. 收盘价的走势图
import matplotlib.pyplot as pltimport datetimeimport mpl_finance as mpfimport pandas as pd%matplotlib inline%pylab inlinedatelist = []closelist = []for dates,row in data.iterrows(): date_time = datetime.datetime.strptime(dates,'%Y-%m-%d') t = date2num(date_time) close = row[3] datelist.append(t) closelist.append(close)fig,ax = plt.subplots(figsize=(10,4))fig.subplots_adjust(bottom=0.2)ax.xaxis_date()plt.yticks()plt.xticks(rotation=30)plt.plot(datelist,closelist)
3. 最高价和最低价的走势图
fig = plt.gcf()with pd.plotting.plot_params.use('x_compat',True): data.high.plot(color='r',figsize=(10,4),grid='on') data.low.plot(color='b',figsize=(10,4),grid='on')
4. K线图绘制
每一天的数据至少有四个变量(开盘价,最高价,最低价,收盘价),通过画四条不同的线来描述这四个变量的可视化方法就是我们常说的K线图。本文利用mpl_finance中的candlestick_ohlc函数进行绘制。
fig = plt.gcf()with pd.plotting.plot_params.use('x_compat',True): data.high.plot(color='r',figsize=(10,4),grid='on') data.low.plot(color='b',figsize=(10,4),grid='on')stickdata_list = []for dates,row in data.iterrows(): date_time = datetime.datetime.strptime(dates,'%Y-%m-%d') t = date2num(date_time) open = row[0] high = row[1] low = row[2] close= row[3] datas = (t,open,high,low,close) stickdata_list.append(datas)fig,ax = plt.subplots(figsize=(10,4))fig.subplots_adjust(bottom=0.2)ax.xaxis_date()plt.xticks(rotation=45)plt.yticks()mpf.candlestick_ohlc(ax,stickdata_list,width=1.5,colorup='r',colordown='g')plt.show()
赞 (0)