龙听期货论坛's Archiver

龙听 发表于 2024-3-11 13:53

数据源(Data Feeds) - tushare【调取pro版数据】

下面介绍两种常用的数据调取方式:

    通过tushare python包
    使用http协议直接获取

注:pro版数据接口采用语言无关的http协议实现,但也提供了多种语言的SDK数据获取。

前提条件

1、已经注册了tushare社区用户 【注册用户】
2、已经获取到tushare token凭证 【获取token】

[b]Python SDK[/b]

下载SDK

下载并安装最新版tushare SDK 【安装和升级方法】

导入tushare[code]import tushare as ts[/code]这里注意, tushare版本需大于1.2.10

设置token[code]ts.set_token('your token here')[/code]这里注意, tushare版本需大于1.2.10

以上方法只需要在第一次或者token失效后调用,完成调取tushare数据凭证的设置,正常情况下不需要重复设置。也可以忽略此步骤,直接用pro_api('your token')完成初始化

初始化pro接口[code]pro = ts.pro_api()[/code]如果上一步骤ts.set_token('your token')无效或不想保存token到本地,也可以在初始化接口里直接设置token:[code]pro = ts.pro_api('your token')[/code]数据调取

以获取交易日历信息为例:[code]df = pro.trade_cal(exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')[/code]或者[code]df = pro.query('trade_cal', exchange='', start_date='20180901', end_date='20181001', fields='exchange,cal_date,is_open,pretrade_date', is_open='0')[/code]调取结果:[code]    exchange  cal_date    is_open pretrade_date
0          SSE       20180901        0      20180831
1          SSE       20180902        0      20180831
2          SSE       20180908        0      20180907
3          SSE       20180909        0      20180907
4          SSE       20180915        0      20180914
5          SSE       20180916        0      20180914
6          SSE       20180922        0      20180921
7          SSE       20180923        0      20180921
8          SSE       20180924        0      20180921
9          SSE       20180929        0      20180928
10         SSE       20180930        0      20180928
11         SSE       20181001        0      20180928[/code]

龙听 发表于 2024-3-11 13:54

[b]HTTP协议方式[/b]

http restful 采用post方式,通过json body传入接口参数,请求地址为[url]http://api.tushare.pro[/url]
输入参数

    api_name,接口名称;
    token,用于识别唯一用户的标识;
    params,接口参数,如daily接口中start_date和end_date;
    fields,字段列表,用于接口获取指定的字段,以逗号分隔,如"open,high,low,close";

输出参数

    code: 接口返回码,2002表示权限问题。
    msg: 错误信息;
    data: 具体数据,成功的请求包含fields和items字段,fields与items数据一一对齐;

示例

采用命令行工具curl的请求示例如下:[code]curl -X POST -d '{"api_name": "trade_cal", "token": "xxxxxxxx", "params": {"exchange":"", "start_date":"20180901", "end_date":"20181001", "is_open":"0"}, "fields": "exchange,cal_date,is_open,pretrade_date"}' http://api.tushare.pro[/code]返回结果:[code]{
        "code":0,
        "msg":null,
        "data":{
                "fields":[
                        "exchange",
                        "cal_date",
                        "is_open",
                        "pretrade_date"
                ],
                "items":[
                        [
                                "SSE",
                                "20180901",
                                0,
                                "20180831"
                        ],
                        [
                                "SSE",
                                "20180902",
                                0,
                                "20180831"
                        ],
                        [
                                "SSE",
                                "20180908",
                                0,
                                "20180907"
                        ],

            ...

                        [
                                "SSE",
                                "20180929",
                                0,
                                "20180928"
                        ],
                        [
                                "SSE",
                                "20180930",
                                0,
                                "20180928"
                        ],
                        [
                                "SSE",
                                "20181001",
                                0,
                                "20180928"
                        ]
                ]
        }
}[/code]

页: [1]