金融大数据分析免费数据源Tushare

官网 :http://tushare.org/index.html

Tushare是一个免费、开源的python财经数据接口包。主要实现对股票等金融数据从数据采集、清洗加工 到 数据存储的过程,能够为金融分析人员提供快速、整洁、和多样的便于分析的数据,为他们在数据获取方面极大地减轻工作量,使他们更加专注于策略和模型的研究与实现上。考虑到Python pandas包在金融量化分析中体现出的优势,Tushare返回的绝大部分的数据格式都是pandas DataFrame类型,非常便于用pandas/NumPy/Matplotlib进行数据分析和可视化。当然,如果您习惯了用Excel或者关系型数据库做分析,您也可以通过Tushare的数据存储功能,将数据全部保存到本地后进行分析。应一些用户的请求,从0.2.5版本开始,Tushare同时兼容Python 2.x和Python 3.x,对部分代码进行了重构,并优化了一些算法,确保数据获取的高效和稳定。

简单使用

1. 历史行情数据

	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线数据

2. 复权历史数据

获取历史复权数据,分为前复权和后复权数据,接口提供股票上市以来所有历史数据,默认为前复权。如果不设定开始和结束日期,则返回近一年的复权数据,从性能上考虑,推荐设定开始日期和结束日期,而且最好不要超过三年以上,获取全部历史数据,请分年段分步获取,取到数据后,请及时在本地存储。获取个股首个上市日期,请参考以下方法:

	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) #深圳综合指数

3. 实时行情数据

	#一次性获取当前交易所有股票的行情数据(如果是节假日,即为上一交易日,结果显示速度取决于网速)
	import tushare as ts
	
	ts.get_today_all()

结果显示:

      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

4. 历史分笔数据

获取个股以往交易历史的分笔数据明细,通过分析分笔数据,可以大致判断资金的进出情况。在使用过程中,对于获取股票某一阶段的历史分笔数据,需要通过参入交易日参数并append到一个DataFrame或者直接append到本地同一个文件里。历史分笔接口只能获取当前交易日之前的数据,当日分笔历史数据请调用get_today_ticks()接口或者在当日18点后通过本接口获取。

调用方法:

import tushare as ts

df = ts.get_tick_data('600848',date='2018-12-12',src='tt')
df.head(10)

5. 实时报价数据

获取实时分笔数据,可以实时取得股票当前报价和成交信息,其中一种场景是,写一个python定时程序来调用本接口(可两三秒执行一次,性能与行情软件基本一致),然后通过DataFrame的矩阵计算实现交易监控,可实时监测交易量和价格的变化。

	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

请求多个股票方法(一次最好不要超过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'])

6. 当日历史分笔

获取当前交易日(交易进行中使用)已经产生的分笔明细数据。

	import tushare as ts
	
	df = ts.get_today_ticks('601333')
	df.head(10)

结果显示:

        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   买盘

7. 大盘指数列表

获取大盘指数实时行情列表,以表格的形式展示大盘指数实时行情。
调用方法:

import tushare as ts

df = ts.get_index()

结果显示:

	    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

8. 大单交易数据

获取大单交易数据,默认为大于等于400手,数据来源于新浪财经。
调用方法:

	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   卖盘
  • 0
    点赞
  • 10
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值