Advertisement

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

阅读量:

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

Tushare是一个免费开放的Python语言开源项目。它主要涵盖从股票等金融数据的数据采集、清洗加工到数据存储全过程。该库能够为金融分析人员提供高效、干净且丰富的便于分析的数据,并显著减轻数据获取的工作量。通过将更多精力投入到策略研究和模型优化中。考虑到其在量化分析中的优势,在0.2.5版本之后的处理结果大多以dataframe格式返回。这些格式非常适合使用pandas/NumPy/Matplotlib进行数据分析与可视化操作。如果用户习惯于使用Excel或关系型数据库进行分析,则可以通过Tushare的数据存储功能将所有数据保存到本地进行后续分析。考虑到其在量化分析中的优势,在0.2.5版本之后的处理结果大多以dataframe格式返回。这些格式非常适合使用pandas/NumPy/Matplotlib进行数据分析与可视化操作。考虑到其在量化分析中的优势,在0.2.5版本之后的处理结果大多以dataframe格式返回。这些格式非常适合使用pandas/NumPy/Matplotlib进行数据分析与可视化操作。

简单使用

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
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/qJ15sPxAYLOuIahUlykv9twzWE4K.png)

设定历史数据的时间:

复制代码
    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
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/Q9AqhoRLP6t1p7fxcwDKCGWIZmU5.png)

其他:

复制代码
    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线数据
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/3reuAvBqMJCOHS4IwR06yFsDxPcj.png)

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
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/yf1s5kN6zvGDPXtWK8borxIRmw4n.png)

4. 历史分笔数据

收集个股以往交易的历史分笔数据详细信息,在深入研究这些分笔数据的基础上,则能够大致推断资金流动的方向和规模。在操作过程中,在获取股票某一时间段的历史分笔数据时,则需要根据具体情况决定是否将该时间段的数据参数化,并将其添加到一个DataFrame中或者直接添加到本地同一个文件夹里。需要注意的是:历史分笔接口仅限于获取当前交易日之前的数据,在当日想要查看当天的最新分笔历史则需调用get_today_ticks()接口或者等到当日18点之后再通过本接口进行查询操作。

调用方法:

复制代码
    import tushare as ts
    
    df = ts.get_tick_data('600848',date='2018-12-12',src='tt')
    df.head(10)

5. 实时报价数据

在金融数据分析领域中

复制代码
    	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   买盘
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/y42U6mixod0lNasvhbG3eLTQp5DI.png)

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
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/APeoz3b5JSqlIsMuxpQWft7rEY6V.png)

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   卖盘
    
    
    
![](https://ad.itadn.com/c/weblog/blog-img/images/2025-08-18/1J5OWukrRKQPLTFZ3Bnb67mqN9wt.png)

全部评论 (0)

还没有任何评论哟~