欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

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

程序员文章站 2024-02-09 16:45:40
...

 一直使用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的上市公司财务数据接口的使用,敬请期待。

 

 

相关标签: i