tushare提供方法,方便获取某只股票的历史交易数据
方法名称:get_hist_data
1。获取某只股票全部交易数据
代码语言:javascript复制import tushare as ts
ts.get_hist_data('600848') #一次性获取全部日k线数据
输出结果:
是一个DataFrame结构的数据,index就是交易日期,也就是每个交易日 共有15列;说明如下:
date:日期 —index列 open:开盘价 high:最高价 close:收盘价 low:最低价 volume:成交量 price_change:价格变动 p_change:涨跌幅 ma5:5日均价 ma10:10日均价 ma20:20日均价 v_ma5:5日均量 v_ma10:10日均量 v_ma20:20日均量 turnover:换手率[注:指数无此项]
可以自主选择交易范围,即交易日期可以自由设置 例如这样:
代码语言:javascript复制df=ts.get_hist_data('601857',start='2016-06-15',end='2017-11-06')
接下来如果不想要那么多列,可以自由选择列表,即是对DataFrame数据结构的一个操作, 例如这样:
代码语言:javascript复制dd=df[['open','high','low','close']]
得到子项 open high low close date 2018-04-20 42.93 43.65 41.71 41.89 2018-04-19 41.88 43.18 41.37 42.96 2018-04-18 42.82 43.24 41.00 41.89 2018-04-17 43.74 43.95 42.29 42.79 2018-04-16 42.80 44.70 42.59 43.72 2018-04-13 43.61 44.25 42.28 42.55 2018-04-12 43.72 44.65 43.38 43.61 2018-04-11 43.04 44.45 42.75 43.72 2018-04-10 41.98 43.24 41.26 43.10 2018-04-09 41.70 43.00 41.08 42.00 2018-04-04 42.52 43.47 41.69 42.48
接下来顺道说下,对交易数据的排序动作:
上面得到的dd,获取的数据顺序,从日期上来看,是倒序的,就是越晚的交易数据,越在前面 你可以换,逆序排列下:
代码语言:javascript复制dd1=dd .sort_index()
接下来对数据的处理有:
如:将df数据结构转换为一维数据结构:
代码语言:javascript复制dd2=dd1.values.flatten()
得到个格式,就是将上面排序之后的数据,从最后一个向最前一个,全部放在一维数组里面: [ 40.2 41.99 40.2 40.85 40.35 42.22 40.25 42.08 42.52 43.47 41.69 42.48 41.7 43. 41.08 42. 41.98 43.24 41.26 43.1 43.04 44.45 42.75 43.72 43.72 44.65 43.38 43.61 43.61 44.25 42.28 42.55 42.8 44.7 42.59 43.72 43.74 43.95 42.29 42.79 42.82 43.24 41. 41.89 41.88 43.18 41.37 42.96 42.93 43.65 41.71 41.89]
这步操作实际对交易流水的行为就是:从交易开始日期到交易结束日期的数据,根据选择的特征,例如:开盘价,最高价,最低价,收盘价;四个一节段,平接在一起,存放在一个一维数组里面;
可以继续将上面的数组进行逆序,获取的结果将是从收盘当日往前推若干个日期的交易数据:
代码语言:javascript复制g1=dd2[::-1]
结果就是这样的: [ 41.89 41.71 43.65 42.93 42.96 41.37 43.18 41.88 41.89 41. 43.24 42.82 42.79 42.29 43.95 43.74 43.72 42.59 44.7 42.8 42.55 42.28 44.25 43.61 43.61 43.38 44.65 43.72 43.72 42.75 44.45 43.04 43.1 41.26 43.24 41.98 42. 41.08 43. 41.7 42.48 41.69 43.47 42.52 42.08 40.25 42.22 40.35 40.85 40.2 41.99 40.2 ]