(一)Tushare Pro教程:股票基本数据接口

 一直使用tushare作数据源,这里开个教程大家一起学习。

一、介绍

       tushare是一个python股票数据源,现已升级到tushare pro版本,新版本在数据稳定性和获取速率上大幅提升。与wind、东财等收费数据源相比,tushare pro算是金融数据界的良心之作,其为从事金融工程、量化研究等方向的同学们提供了便利。tushare pro还有一点突出的特色就是已经将股票、期货、数字货币、行业大数据,外汇等金融市场全部纳入到一个接口中,大有一统江湖的感觉。

二、注册与安装

注册:https://tushare.pro/document/1?doc_id=38

安装和更新:https://tushare.pro/document/1?doc_id=7

三、调用前的配置

import tushare as ts
ts.set_token('your token here')#设置token,只需设置一次
api = ts.pro_api()#初始化接口

四、股票接口使用

1、获取股票基础信息数据,包括股票代码、名称、上市日期,行业、概念等

data = api.stock_basic(fields='ts_code,name,list_date')

2、获取A股的K线数据,带有复权参数“adj”、均线参数“ma”、数据频度参数“freq”

data = ts.pro_bar(pro_api=api, ts_code='000009.SZ', adj='qfq', start_date='20170101', end_date='20181011',ma=5,freq='D')

3、获取A股每日重要的基本面指标,包括市盈率、市销率、市净率、量比、换手等信息

data = api.daily_basic(ts_code='000009.SZ', start_date='20180101', end_date='20181123')

 

四、几个常见的问题

1、如何下载一只股票的全部数据?

答:直接调用pro_bar接口,将时间设置为上市日期到某天,一次性向服务器请求数据的方式是行不通的。理由很简单,人家服务器不是无限量的,咱不能搞太狠。正确姿势这里提供一个正确的例子。

def fetchklinedata(code):
    filename = 'your path'
    if not os.path.exists(filename):
        end_date = datetime.strftime(datetime.now(), '%Y%m%d')#获取当前时间
        outputflag = True
        api = tushare.pro_api()
        while outputflag:#循环判断,直到返还的数据为空
           data=tushare.pro_bar(pro_api=api,ts_code=code,
                                end_date=end_date,asset='E',adj=None,freq='D')#请求本次数据
            if data.empty == True:
                outputflag = False
            else:
                #计算下次请求数据的截止日期
                next_end_date = datetime.strptime(data.iloc[-1]['trade_date'],
                                                  '%Y%m%d') - timedelta(hours=24)
                end_date = datetime.strftime(next_end_date, '%Y%m%d')
                #写csv文件
                if os.path.exists(filename):
                    data.to_csv(filename, header=None, mode='a')#追加写入模式
                else:
                    data.to_csv(filename)

 

2、tushare pro是否提供多周期数据,比如月线、周线等等?

答: 我们往往需要不同周期的数据来进行分析,大家总希望能下载到所有周期的数据。其实只需要最小时间间隔数据即可。以股票的日线数据为例,来计算周线、月线是非常方便的。这里需要使用pandas中的resample这个函数。小白不知道pandas的问问度娘即可,堪称python数据分析的神器。下面代码将获取的日线数据经过重采样得到周线数据。

data_day = ts.pro_bar(pro_api=api, ts_code='000009.SZ', adj='qfq', start_date='20170101', end_date='20181011',ma=5,freq='D')
data_day['trade_date'] = pandas.to_datetime(data_day['trade_date'])
data_week = data_day.resample(rule='W', on='trade_date', label='left', closed='left').agg(
        {'open': 'first',
         'high': 'max',
         'low': 'min',
         'close': 'last',
         'vol': 'sum',
         })
#具体的时间周期字段rule
"""
rule:
    B       business day frequency
    C       custom business day frequency (experimental)
    D       calendar day frequency
    W       weekly frequency
    M       month end frequency
    SM      semi-month end frequency (15th and end of month)
    BM      business month end frequency
    CBM     custom business month end frequency
    MS      month start frequency
    SMS     semi-month start frequency (1st and 15th)
    BMS     business month start frequency
    CBMS    custom business month start frequency
    Q       quarter end frequency
    BQ      business quarter endfrequency
    QS      quarter start frequency
    BQS     business quarter start frequency
    A       year end frequency
    BA      business year end frequency
    AS      year start frequency
    BAS     business year start frequency
    BH      business hour frequency
    H       hourly frequency
    T       minutely frequency
    S       secondly frequency
    L       milliseonds
    U       microseconds
    N       nanoseconds
"""

 下期预告:介绍tushare pro的上市公司财务数据接口的使用,敬请期待。

 

 

你可能感兴趣的:((一)Tushare Pro教程:股票基本数据接口)