这篇文章是上一篇的补充
以中国石油股票为例,代码601857
1.获取从2018年5月1日到2018年5月4日的数据
import tushare as ts
data=ts.get_hist_data('601857',start='2018-05-01',end='2018-05-04')
print(data)
还有两个函数
ts.get_h_data #该函数只返回开盘价(open)、最高价(high)、收盘价(close)、最低价(low)、成交量(volume)、成交金额(amount)六列
ts.get_k_data #这个函数获取数据的速度很明显要快很多,而且可以返回每一只股票从上市开始到当前交易日的所有日线数据
结果如下
open high close low volume price_change p_change ma5 \
date
2018-05-04 7.67 7.71 7.70 7.65 198814.75 0.00 0.00 7.644
2018-05-03 7.61 7.72 7.70 7.57 329403.06 0.09 1.18 7.630
2018-05-02 7.65 7.66 7.61 7.56 232936.98 -0.04 -0.52 7.632
ma10 ma20 v_ma5 v_ma10 v_ma20 turnover
date
2018-05-04 7.654 7.617 256535.02 279011.03 329645.21 0.01
2018-05-03 7.647 7.615 256410.19 288602.43 336304.65 0.02
2018-05-02 7.630 7.612 267643.88 277844.68 335077.15 0.01
2.此外还有
ts.get_hist_data('601857', ktype='W') #获取周k线数据
ts.get_hist_data('601857', ktype='M') #获取月k线数据
ts.get_hist_data('601857', ktype='5') #获取5分钟k线数据
ts.get_hist_data('601857', ktype='15') #获取15分钟k线数据
ts.get_hist_data('601857', ktype='30') #获取30分钟k线数据
ts.get_hist_data('601857', 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线数据
ts.get_today_all()#获取实时行情数据
ts.get_tick_data()#获取历史分笔数据,获取当前分笔数据用ts.get_today_ticks()
3.数据的存储
mysql的安装与连接花费了很长时间,对于一个新手来说很有挫败感
from sqlalchemy import create_engine
import tushare as ts
df = ts.get_tick_data('601857', date='2018-05-04')
engine = create_engine('mysql://user:[email protected]/db_name?charset=utf8')
#存入数据库
df.to_sql('tick_data',engine)
#追加数据到现有表
#df.to_sql('tick_data',engine,if_exists='append')
另外在mysql中创建一个空的表,表名t_user,int为整数类型,date是日期类型,decimal可以设置精度
create table t_user(
id int auto_increment primary key,
date date not null ,
open decimal(3,2) not null,
high decimal(3,2)not null,
close decimal(3,2)not null,
low decimal(3,2)not null,
volume decimal(9,1)not null,
amount decimal(9,1)not null
);