TuShare获取K线数据
Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。
Tushare从发布到现在,已经帮助很多用户在数据方面降低了工作压力,同时也得到很多用户的反馈,Tushare将一如既往的用免费和开源的形式分享出来,希望对有需求的人带来一些帮助。如果您觉得Tushare好用并有所收获,请通过微博、微信或者网站博客的方式分享出去,让更多的人了解和使用它,使它能在大家的使用过程中逐步得到改进和提升。Tushare还在不断的完善和优化,后期将逐步增加港股、期货、外汇和基金方面的数据,所以,您的支持和肯定才是Tushare坚持下去的动力
获取个股历史交易数据(包括均线数据),可以通过参数设置获取日k线、周k线、月k线,以及5分钟、15分钟、30分钟和60分钟k线数据。本接口只能获取近3年的日线数据,适合搭配均线数据进行选股和分析,如果需要全部历史数据,请调用下一个接口get_h_data()。
参数说明:
- code:股票代码,即6位数字代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板)
- start:开始日期,格式YYYY-MM-DD
- end:结束日期,格式YYYY-MM-DD
- ktype:数据类型,D=日k线 W=周 M=月 5=5分钟 15=15分钟 30=30分钟 60=60分钟,默认为D
- retry_count:当网络异常后重试次数,默认为3
- pause:重试时停顿秒数,默认为0
返回值说明:
- date:日期
- 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:换手率[注:指数无此项]
调用方法:
import tushare as ts ts.get_hist_data('600848') #一次性获取全部日k线数据
结果显示:
open high close low volume p_change ma5 \ date 2012-01-11 6.880 7.380 7.060 6.880 14129.96 2.62 7.060 2012-01-12 7.050 7.100 6.980 6.900 7895.19 -1.13 7.020 2012-01-13 6.950 7.000 6.700 6.690 6611.87 -4.01 6.913 2012-01-16 6.680 6.750 6.510 6.480 2941.63 -2.84 6.813 2012-01-17 6.660 6.880 6.860 6.460 8642.57 5.38 6.822 2012-01-18 7.000 7.300 6.890 6.880 13075.40 0.44 6.788 2012-01-19 6.690 6.950 6.890 6.680 6117.32 0.00 6.770 2012-01-20 6.870 7.080 7.010 6.870 6813.09 1.74 6.832 ma10 ma20 v_ma5 v_ma10 v_ma20 turnover date 2012-01-11 7.060 7.060 14129.96 14129.96 14129.96 0.48 2012-01-12 7.020 7.020 11012.58 11012.58 11012.58 0.27 2012-01-13 6.913 6.913 9545.67 9545.67 9545.67 0.23 2012-01-16 6.813 6.813 7894.66 7894.66 7894.66 0.10 2012-01-17 6.822 6.822 8044.24 8044.24 8044.24 0.30 2012-01-18 6.833 6.833 7833.33 8882.77 8882.77 0.45 2012-01-19 6.841 6.841 7477.76 8487.71 8487.71 0.21 2012-01-20 6.863 6.863 7518.00 8278.38 8278.38 0.23
设定历史数据的时间:
ts.get_hist_data('600848',start='2015-01-05',end='2015-01-09') open high close low volume p_change ma5 ma10 \ date 2015-01-05 11.160 11.390 11.260 10.890 46383.57 1.26 11.156 11.212 2015-01-06 11.130 11.660 11.610 11.030 59199.93 3.11 11.182 11.155 2015-01-07 11.580 11.990 11.920 11.480 86681.38 2.67 11.366 11.251 2015-01-08 11.700 11.920 11.670 11.640 56845.71 -2.10 11.516 11.349 2015-01-09 11.680 11.710 11.230 11.190 44851.56 -3.77 11.538 11.363 ma20 v_ma5 v_ma10 v_ma20 turnover date 2015-01-05 11.198 58648.75 68429.87 97141.81 1.59 2015-01-06 11.382 54854.38 63401.05 98686.98 2.03 2015-01-07 11.543 55049.74 61628.07 103010.58 2.97 2015-01-08 11.647 57268.99 61376.00 105823.50 1.95 2015-01-09 11.682 58792.43 60665.93 107924.27 1.54
其他:
ts.get_hist_data('600848', ktype='W') #获取周k线数据 ts.get_hist_data('600848', ktype='M') #获取月k线数据 ts.get_hist_data('600848', ktype='5') #获取5分钟k线数据 ts.get_hist_data('600848', ktype='15') #获取15分钟k线数据 ts.get_hist_data('600848', ktype='30') #获取30分钟k线数据 ts.get_hist_data('600848', 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线数据
复权数据
获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期,请参考以下方法:
df = ts.get_stock_basics() date = df.ix['600848']['timeToMarket'] #上市日期YYYYMMDD
本接口还提供大盘指数的全部历史数据,调用时,请务必设定index参数为True,由于大盘指数不存在复权的问题,故可以忽略autype参数。
ts.get_h_data('002337') #前复权 ts.get_h_data('002337', autype='hfq') #后复权 ts.get_h_data('002337', autype=None) #不复权 ts.get_h_data('002337', start='2015-01-01', end='2015-03-16') #两个日期之间的前复权数据 ts.get_h_data('399106', index=True) #深圳综合指数
参数说明:
- code:string,股票代码 e.g. 600848
- start:string,开始日期 format:YYYY-MM-DD 为空时取当前日期
- end:string,结束日期 format:YYYY-MM-DD 为空时取去年今日
- autype:string,复权类型,qfq-前复权 hfq-后复权 None-不复权,默认为qfq
- index:Boolean,是否是大盘指数,默认为False
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
返回值说明:
- date : 交易日期 (index)
- open : 开盘价
- high : 最高价
- close : 收盘价
- low : 最低价
- volume : 成交量
- amount : 成交金额
结果:
open high close low volume amount date 2015-03-16 13.27 13.45 13.39 13.00 81212976 1073862784 2015-03-13 13.04 13.38 13.37 13.00 40548836 532739744 2015-03-12 13.29 13.95 13.28 12.96 71505720 962979904 2015-03-11 13.35 13.48 13.15 13.00 59110248 780300736 2015-03-10 13.16 13.67 13.59 12.72 105753088 1393819776 2015-03-09 13.77 14.73 14.13 13.70 139091552 1994454656 2015-03-06 12.17 13.39 13.39 12.17 89486704 1167752960 2015-03-05 12.79 12.80 12.17 12.08 26040832 966927360 2015-03-04 13.96 13.96 13.30 12.58 26636174 1060270720 2015-03-03 12.17 13.10 13.10 12.05 19290366 733336768
实时行情
一次性获取当前交易所有股票的行情数据(如果是节假日,即为上一交易日,结果显示速度取决于网速)
import tushare as ts ts.get_today_all()
返回值说明:
- code:代码
- name:名称
- changepercent:涨跌幅
- trade:现价
- open:开盘价
- high:最高价
- low:最低价
- settlement:昨日收盘价
- volume:成交量
- turnoverratio:换手率
- amount:成交量
- per:市盈率
- pb:市净率
- mktcap:总市值
- nmc:流通市值
结果显示:
code name changepercent trade open high low settlement \ 0 002738 中矿资源 10.023 19.32 19.32 19.32 19.32 17.56 1 300410 正业科技 10.022 25.03 25.03 25.03 25.03 22.75 2 002736 国信证券 10.013 16.37 16.37 16.37 16.37 14.88 3 300412 迦南科技 10.010 31.54 31.54 31.54 31.54 28.67 4 300411 金盾股份 10.007 29.68 29.68 29.68 29.68 26.98 5 603636 南威软件 10.006 38.15 38.15 38.15 38.15 34.68 6 002664 信质电机 10.004 30.68 29.00 30.68 28.30 27.89 7 300367 东方网力 10.004 86.76 78.00 86.76 77.87 78.87 8 601299 中国北车 10.000 11.44 11.44 11.44 11.29 10.40 9 601880 大连港 10.000 5.72 5.34 5.72 5.22 5.20 volume turnoverratio 0 375100 1.25033 1 85800 0.57200 2 1058925 0.08824 3 69400 0.51791 4 252220 1.26110 5 1374630 5.49852 6 6448748 9.32700 7 2025030 6.88669 8 433453523 4.28056 9 323469835 9.61735
历史分笔
获取个股以往交易历史的分笔数据明细,通过分析分笔数据,可以大致判断资金的进出情况。在使用过程中,对于获取股票某一阶段的历史分笔数据,需要通过参入交易日参数并append到一个DataFrame或者直接append到本地同一个文件里。历史分笔接口只能获取当前交易日之前的数据,当日分笔历史数据请调用get_today_ticks()接口或者在当日18点后通过本接口获取。
参数说明:
- code:股票代码,即6位数字代码
- date:日期,格式YYYY-MM-DD
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
调用方法:
import tushare as ts df = ts.get_tick_data('600848',date='2014-01-09') df.head(10)
返回值说明:
- time:时间
- price:成交价格
- change:价格变动
- volume:成交手
- amount:成交金额(元)
- type:买卖类型【买盘、卖盘、中性盘】
结果显示:
time price change volume amount type 0 15:00:00 6.05 -- 8 4840 卖盘 1 14:59:55 6.05 -- 50 30250 卖盘 2 14:59:35 6.05 -- 20 12100 卖盘 3 14:59:30 6.05 -0.01 165 99825 卖盘 4 14:59:20 6.06 0.01 4 2424 买盘 5 14:59:05 6.05 -0.01 2 1210 卖盘 6 14:58:55 6.06 -- 4 2424 买盘 7 14:58:45 6.06 -- 2 1212 买盘 8 14:58:35 6.06 0.01 2 1212 买盘 9 14:58:25 6.05 -0.01 20 12100 卖盘
实时分笔
获取实时分笔数据,可以实时取得股票当前报价和成交信息,其中一种场景是,写一个python定时程序来调用本接口(可两三秒执行一次,性能与行情软件基本一致),然后通过DataFrame的矩阵计算实现交易监控,可实时监测交易量和价格的变化。
参数说明:
- symbols:6位数字股票代码,或者指数代码(sh=上证指数 sz=深圳成指 hs300=沪深300指数 sz50=上证50 zxb=中小板 cyb=创业板) 可输入的类型:str、list、set或者pandas的Series对象
调用方法:
import tushare as ts df = ts.get_realtime_quotes('000581') #Single stock symbol df[['code','name','price','bid','ask','volume','amount','time']]
结果显示:
code name price bid ask volume amount time 0 000581 威孚高科 31.15 31.14 31.15 8183020 253494991.16 11:30:36
返回值说明:
0:name,股票名字 1:open,今日开盘价 2:pre_close,昨日收盘价 3:price,当前价格 4:high,今日最高价 5:low,今日最低价 6:bid,竞买价,即“买一”报价 7:ask,竞卖价,即“卖一”报价 8:volume,成交量 maybe you need do volume/100 9:amount,成交金额(元 CNY) 10:b1_v,委买一(笔数 bid volume) 11:b1_p,委买一(价格 bid price) 12:b2_v,“买二” 13:b2_p,“买二” 14:b3_v,“买三” 15:b3_p,“买三” 16:b4_v,“买四” 17:b4_p,“买四” 18:b5_v,“买五” 19:b5_p,“买五” 20:a1_v,委卖一(笔数 ask volume) 21:a1_p,委卖一(价格 ask price) ... 30:date,日期; 31:time,时间;
请求多个股票方法(一次最好不要超过30个):
#symbols from a list ts.get_realtime_quotes(['600848','000980','000981']) #from a Series ts.get_realtime_quotes(df['code'].tail(10)) #一次获取10个股票的实时分笔数据
获取实时指数:
#上证指数 ts.get_realtime_quotes('sh') #上证指数 深圳成指 沪深300指数 上证50 中小板 创业板 ts.get_realtime_quotes(['sh','sz','hs300','sz50','zxb','cyb']) #或者混搭 ts.get_realtime_quotes(['sh','600848'])
当日历史分笔
获取当前交易日(交易进行中使用)已经产生的分笔明细数据。
参数说明:
- code:股票代码,即6位数字代码
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
调用方法:
import tushare as ts df = ts.get_today_ticks('601333') df.head(10)
返回值说明:
- time:时间
- price:当前价格
- pchange:涨跌幅
- change:价格变动
- volume:成交手
- amount:成交金额(元)
- type:买卖类型【买盘、卖盘、中性盘】
结果显示:
time price pchange change volume amount type 0 11:30:07 5.77 -0.52 0.00 634 366372 买盘 1 11:29:57 5.77 -0.52 0.00 216 124632 买盘 2 11:29:52 5.77 -0.52 0.00 306 176562 买盘 3 11:29:42 5.77 -0.52 0.01 159 91766 买盘 4 11:29:37 5.76 -0.69 0.00 546 314496 卖盘 5 11:29:32 5.76 -0.69 -0.01 954 549504 卖盘 6 11:29:22 5.77 -0.52 0.00 374 215798 买盘 7 11:29:17 5.77 -0.52 0.00 762 439674 买盘 8 11:29:12 5.77 -0.52 0.00 164 95182 买盘 9 11:29:07 5.77 -0.52 0.00 303 174854 买盘
大盘指数行情列表
获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情。
调用方法:
import tushare as ts df = ts.get_index()
返回值说明:
- code:指数代码
- name:指数名称
- change:涨跌幅
- open:开盘点位
- preclose:昨日收盘点位
- close:收盘点位
- high:最高点位
- low:最低点位
- volume:成交量(手)
- amount:成交金额(亿元)
结果显示:
code name change preclose close high low \ 0 000001 上证指数 -1.13 4527.396 4476.215 4572.391 4432.904 1 000002 A股指数 -1.13 4744.093 4690.628 4791.534 4645.190 2 000003 B股指数 -2.15 403.694 395.018 405.795 392.173 3 000008 综合指数 0.79 3724.496 3753.906 3848.575 3695.817 4 000009 上证380 -2.79 7689.128 7474.305 7695.329 7398.911 5 000010 上证180 -1.13 10741.180 10619.610 10863.080 10529.900 6 000011 基金指数 -1.02 7033.291 6961.659 7058.856 6918.273 7 000012 国债指数 0.01 148.626 148.641 148.656 148.510 8 000016 上证50 -0.79 3308.454 3282.330 3370.025 3255.769 9 000017 新综指 -1.13 3826.013 3782.936 3864.307 3746.284 10 000300 沪深300 -1.37 4807.592 4741.861 4839.078 4703.567 11 399001 深证成指 -0.69 14809.424 14707.245 14979.810 14580.422 12 399002 深成指R -0.69 17193.832 17075.202 17391.652 16927.959 13 399003 成份B指 -1.93 9027.079 8853.081 9013.194 8826.048 14 399004 深证100R -1.79 5994.881 5887.414 6036.322 5832.431 15 399005 中小板指 -3.34 8935.338 8637.195 8953.813 8551.202 16 399006 创业板指 -2.17 2747.497 2687.974 2779.200 2650.425 17 399100 新 指 数 -2.77 10091.194 9811.256 10111.664 9718.085 18 399101 中小板综 -3.31 12792.057 12368.868 12800.453 12253.744 19 399106 深证综指 -2.76 2271.275 2208.561 2275.344 2187.897 20 399107 深证A指 -2.77 2375.176 2309.466 2379.507 2287.784 21 399108 深证B指 -1.77 1398.244 1373.512 1397.996 1367.343 22 399333 中小板R -3.34 9640.766 9319.085 9660.699 9226.304 23 399606 创业板R -2.16 2828.251 2767.127 2861.040 2728.472 volume amount 0 767676416 10611.72 1 766188823 10599.65 2 1487592 12.07 3 263748855 3440.01 4 182628996 2531.04 5 464275133 6437.40 6 66280981 428.46 7 263420 2.74 8 266042859 3735.74 9 766077611 10596.65 10 608638545 8603.50 11 51106975785 6405.28 12 6357969430 1017.68 13 51206484 4.32 14 10418315890 1779.58 15 3071396395 830.54 16 1441659735 551.73 17 32943457787 6091.34 18 10450911278 2291.43 19 33395285515 6137.71 20 33274363870 6128.94 21 120921645 8.77 22 3071396395 830.54 23 1441659735 551.73
大单交易数据
获取大单交易数据,默认为大于等于400手,数据来源于新浪财经。
参数说明:
- code:股票代码,即6位数字代码
- date:日期,格式YYYY-MM-DD
- vol:手数,默认为400手,输入数值型参数
- retry_count : int, 默认3,如遇网络等问题重复执行的次数
- pause : int, 默认 0,重复请求数据过程中暂停的秒数,防止请求间隔时间太短出现的问题
返回值说明:
- code:代码
- name:名称
- time:时间
- price:当前价格
- volume:成交手
- preprice :上一笔价格
- type:买卖类型【买盘、卖盘、中性盘】
调用方法:
import tushare as ts df = ts.get_sina_dd('600848', date='2015-12-24') #默认400手 #df = ts.get_sina_dd('600848', date='2015-12-24', vol=500) #指定大于等于500手的数据
结果显示:
code name time price volume preprice type 0 600848 上海临港 14:58:10 23.05 104309 23.05 卖盘 1 600848 上海临港 14:57:03 23.05 56500 23.07 卖盘 2 600848 上海临港 14:52:47 23.00 76750 23.04 卖盘 3 600848 上海临港 14:47:32 23.10 47000 23.09 买盘 4 600848 上海临港 14:16:03 23.00 60859 23.01 卖盘 5 600848 上海临港 14:15:38 23.01 68659 23.03 卖盘 6 600848 上海临港 14:00:34 23.10 66200 23.10 买盘 7 600848 上海临港 13:25:24 23.28 42000 23.09 买盘 8 600848 上海临港 13:23:54 23.28 79600 23.07 买盘 9 600848 上海临港 13:16:16 23.03 40000 23.08 卖盘
TuShare获取K线数据的更多相关文章
- 获取历史K线数据的几个方法
1.通过已有的股票交易软件下载数据,如果他们是开源结构的,就可以解析他们的K线数据. 2.在互联网上抓取数据 int iStockCode;CString strUrl; 通过OpenUrl.Read ...
- 使用tushare获取股票历史数据和实时分笔数据
使用tushare获取股票历史数据和实时分笔数据 财经数据接口包tushare的使用(一) Tushare是一款开源免费的金融数据接口包,可以用于获取股票的历史数据.年度季度报表数据.实时分笔数据 ...
- 利用JFreeChart绘制股票K线图完整解决方案
http://blog.sina.com.cn/s/blog_4ad042e50100q7d9.html 利用JFreeChart绘制股票K线图完整解决方案 (2011-04-30 13:27:17) ...
- BotVS开发基础—2.1 账户、行情、K线、深度
代码 import json def main(): Log("账号信息:", exchange.GetAccount()); # Log("K 线数据:", ...
- android 股票数据通过日K获取周K的数据 算法 源码
目前的数据是从新浪接口获取的, http://biz.finance.sina.com.cn/stock/flash_hq/kline_data.php?symbol=sh600000&end ...
- Python交互K线工具 K线核心功能+指标切换
Python交互K线工具 K线核心功能+指标切换 aiqtt团队量化研究,用vn.py回测和研究策略.基于vnpy开源代码,刚开始接触pyqt,开发界面还是很痛苦,找了很多案例参考,但并不能完全满足我 ...
- Vue中引入TradingView制作K线图
**前言: 本文使用的是1.10版本 , 可通过TradingView.version()查看当前版本. 附上开发文档地址:https://zlq4863947.gitbooks.i...** 一.修 ...
- PHP使用HighChart生成股票K线图详解
本人qq群也有许多的技术文档,希望可以为你提供一些帮助(非技术的勿加). QQ群: 281442983 (点击链接加入群:http://jq.qq.com/?_wv=1027&k=29Lo ...
- k线生成模块
1.支持任意周期K线. 2.支持K线偏移. 3.支持指数.主力. 4.支持文华商品指数. 默认支持的是:5秒.1分钟.3分钟.5分钟.日线. 时间:2010年到现在. 数据如下: 5秒线,大宗商品指数 ...
随机推荐
- jmap 查看内存使用直方图
jps -- 查看进程号 jmap -histo pid 查看堆内存中的对象数目.大小统计直方图, 如果带上live则表示先进行一次fullgc 再统计内存使用情况,如下: jmap -hist ...
- DP - 字符混编
字符混编 Problem's Link ---------------------------------------------------------------------------- Mea ...
- VS2013 连接 MySQL
1.安装必须的工具: mysql-connector-net-6.8.3 mysql-installer-community-5.6.16.0.msi mysql-for-visualstudio-1 ...
- 004杰信-关于formSubmit('factorycreate.action','_self')路径的疑惑
本文材料来源于传智播客,在此说明. 整个项目结构:
- Unity的 Stats 窗体, Batched、SetPass、Draw Call 等
孙广东 2015.8.12 在Game View 中的右上角有一个统计数据 Stats button.当按下button时.覆盖窗体显示,可用于优化性能的实时渲染统计信息. 确切的统计数据显示生成目 ...
- PHP实现手机号码中间四位用星号(*)隐藏的自定义函数分享
php屏蔽电话号码中间四位: Method 1: function hidtel($phone){ $IsWhat = preg_match('/(0[0-9]{2,3}[\-]?[2-9][0-9] ...
- Spring Boot注解(annotation)列表
(1)@SpringBootApplication 申明让spring boot自动给程序进行必要的配置,这个配置等同于: @Configuration ,@EnableAutoConfigurati ...
- Unity中对SQL数据库的操作
在Unity中,我们有时候需要连接数据库来达到数据的读取与储存.而在.NET平台下,ADO.NET为我们提供了公开数据访问服务的类.客户端应用程序可以使用ADO.NET来连接到数据源,并查询,添加,删 ...
- Eclipse & Visual Studio
VS中的解决方案 vs Eclipse中的workspace Maven包管理 vs Nuget类库管理 build path vs
- ANSI、ASCII、GB2312、GBK
ASCII 在计算机中,所有的数据在存储和运算时都要使用二进制数表示(因为计算机用高电平和低电平分别表示1和0),例如,像a.b.c.d这样的52个字母(包括大写).以及0.1等数字还有一些常用的符号 ...