Tushare 数据接入教程

在部署完 DolphinDB 后,需要将金融历史数据批量导入数据库,再进行数据查询、计算和分析等操作。为便于用户快速从 Tushare 金融数据接口获取并导入数据,DolphinDB 开发了 easy_tushare 模块,主要用于多品种金融数据的自动化采集与导入。

easy_tushare 模块目前覆盖以下 10 大类数据源:

股票数据:基础信息、日/周/月线行情、分钟 K 线、复权行情、基本面、ST 状态、龙虎榜、限售解禁、个股资金流向、沪深港通等

  • ETF 数据:ETF 基础信息、ETF 基准指数、份额规模、复权因子、日线行情、分钟 K 线等

  • 公募基金数据:基金基础信息、基金公司、分红、技术因子、基金经理、净值、持仓、规模等

  • 期货数据:合约基础信息、日/周/月线行情、分钟 K 线、仓单日报、涨跌停价格等

  • 债券数据:可转债基础信息及行情、国债/地方政府债/城投债行情、债券大宗交易等

  • 指数数据:指数基本信息、日/周/月线行情、分钟 K 线、成分股权重、行业分类等

  • 期权数据:期权合约信息、日线行情、分钟 K 线

  • 外汇数据:外汇基础信息、日线行情

  • 黄金现货数据:现货黄金基础信息、日线行情

  • 大模型语料数据:上市公司公告、新闻、E 互动问答、券商研究报告、政策法规等

1. 模块版本说明

easy_tushare 模块版本为 1.0.0,基于 DolphinDB 3.00.6 版本开发,建议使用 DolphinDB 3.00.6 及以上版本。

2. 模块结构

easy_tushare 模块采用按资产类别分目录组织的方式,每个资产类别下包含四个核心文件:

表 2-1 模块结构文件说明

模块文件 功能说明
_init.dos 资产类别的初始化与统筹函数,包括建表、批量导入、获取表名等
_create_table.dos 定义各数据表的表结构及建表函数
_append_data.dos 定义单个数据表的导入函数,调用 Tushare API 获取数据并写入分布式表
_schedulejob.dos 定义每日增量数据导入函数及定时任务函数

各资产类别及其包含的子模块如下:

easy_tushare/
├── ts_init.dos                        # 模块基础环境与核心工具函数
├── stock/                             # 股票数据
│   ├── stock_init.dos
│   ├── stock_create_table.dos
│   ├── stock_append_data.dos
│   └── stock_schedulejob.dos
├── etf/                               # ETF 数据
│   ├── etf_init.dos
│   ├── etf_create_table.dos
│   ├── etf_append_data.dos
│   └── etf_schedulejob.dos
├── fund/                              # 公募基金数据
│   ├── fund_init.dos
│   ├── fund_create_table.dos
│   ├── fund_append_data.dos
│   └── fund_schedulejob.dos
├── futures/                           # 期货数据
│   ├── futures_init.dos
│   ├── futures_create_table.dos
│   ├── futures_append_data.dos
│   └── futures_schedulejob.dos
├── bond/                              # 债券数据
│   ├── bond_init.dos
│   ├── bond_create_table.dos
│   ├── bond_append_data.dos
│   └── bond_schedulejob.dos
├── index/                             # 指数数据
│   ├── index_init.dos
│   ├── index_create_table.dos
│   ├── index_append_data.dos
│   └── index_schedulejob.dos
├── options/                           # 期权数据
│   ├── options_init.dos
│   ├── options_create_table.dos
│   ├── options_append_data.dos
│   └── options_schedulejob.dos
├── foreign_exchangre/                 # 外汇数据
│   ├── fx_init.dos
│   ├── fx_create_table.dos
│   ├── fx_append_data.dos
│   └── fx_schedulejob.dos
├── spot/                              # 黄金现货数据
│   ├── spot_init.dos
│   ├── spot_create_table.dos
│   ├── spot_append_data.dos
│   └── spot_schedulejob.dos
└── llm/                               # 大模型语料数据
    ├── llm_init.dos
    ├── llm_create_table.dos
    ├── llm_append_data.dos
    └── llm_schedulejob.dos

3. 环境配置

本章节介绍 tushare 数据导入前的环境准备等事项,包括模块同步、依赖插件以及数据库初始化。

3.1 模块同步

将 easy_tushare 模块放置于节点所在 Home 目录的 modules 目录下。节点所在 Home 目录可通过 getHomeDir() 函数获取。

假设 Home 目录为 /DolphinDB/server,则将 easy_tushare 文件夹放置于 /DolphinDB/server/modules/ 路径下。

同步方式包括:

  • 使用 xftp 等传输软件将模块传输至服务器上指定的路径。

  • 使用 scp 命令:scp -r easy_tushare @<服务器ip>:/DolphinDB/server/modules/

  • 使用 VS Code 的 DolphinDB 插件,右键选择同步模块。

  • 使用 DolphinDB 的 GUI 客户端同步模块。

3.2 依赖插件

easy_tushare 模块依赖以下 DolphinDB 插件:

  • httpClient:用于发送 HTTP 请求调用 Tushare API,可通过 HttpClient 教程安装。

  • py(可选):如果需要导入前复权、后复权等数据,可通过 Py(3.9 及以上版本)教程安装。

3.3 数据库初始化

easy_tushare 模块使用以下三个分布式数据库:

表3-1 数据库信息

数据库名 分区方式 存储内容
dfs://tushare_basic_db / 各类资产的基础信息、基本面、静态数据
dfs://tushare_daily_db RANGE 按年分区 日线行情、周线/月线行情、每日指标数据
dfs://tushare_minute_db VALUE 按天分区 分钟 K 线数据

执行以下命令创建数据库:

use easy_tushare::ts_init
create_db()

4. 核心函数说明

本章节介绍 easy_tushare 模块的核心函数,包括建表、调用 API 接口获取数据函数、历史数据接入函数以及定时任务调度函数。

4.1 Tushare API 调用函数

get_api_data

语法

get_api_data(token, apiName, params=NULL, columns=[], ddbCols=[])

功能

获取 Tushare 某个接口的数据。

参数

  • token:Tushare API 的认证令牌(Token),字符串类型。

  • apiName:Tushare 数据接口名称,如 "stock_basic"、"daily" 等。

  • params:接口参数,字典类型,如 {"trade_date":"20250101"}

  • columns:指定返回的列名,数组类型。

  • ddbCols:指定 DolphinDB 表中的列名映射,数组类型(可选)。

返回值

返回一个 DolphinDB 内存表,包含请求的数据。

示例

use easy_tushare::ts_init
token = "your_tushare_token"
data = get_api_data(token, "stock_basic", {"list_status":"L"}, ["ts_code","name","industry","list_date"])

4.2 数据表创建函数

每个资产类别均提供 *_init_tables() 函数,用于创建该类别下的所有数据表。

通用语法

<asset>_init_tables(table_names=[])
  • table_names 为空时,创建该类别下的所有表。

  • table_names 指定表名列表时,仅创建指定的表。

示例

use easy_tushare::stock_init
// 创建所有股票数据表
stock_init_tables()

// 仅创建股票基础信息表和日线行情表
stock_init_tables(["stock_basic", "stock_daily"])

4.3 历史批量导入函数

每个资产类别均提供 *_history_data_load() 函数,用于批量导入历史数据,任务提交为后台任务执行。

通用语法

<asset>_history_data_load(token, start_date, end_date, table_names=[])

参数

  • token:Tushare API 令牌。

  • start_date:开始日期,DATE 类型,如 2020.01.01

  • end_date:结束日期,DATE 类型。

  • table_names:要导入的表名列表(可选)。为空时导入该类别下的所有数据表。

示例

use easy_tushare::stock_init
// 批量导入2024年所有股票日线数据
stock_history_data_load(token, 2024.01.01, 2024.12.31)

// 仅导入股票基础信息和日线行情
stock_history_data_load(token, 2024.01.01, 2024.12.31, ["stock_basic", "stock_daily"])

4.4 每日增量定时导入函数

每个资产类别均提供 scheduleJob_*_data_daily 函数,用于每日增量导入当天数据。

通用语法

scheduleJob_bond_data_daily(token, table_names=[])

示例

use easy_tushare::stock_schedulejob
// 提交当日所有股票数据的定时任务
scheduleJob_stock_data_daily(token)

每日增量导入执行时间

表 4-1 定时任务执行时间表

资产类别 建议执行时间
股票 22:30
ETF 20:00
公募基金 20:00
期货 20:00
债券 20:00
指数 20:00
期权 20:00
外汇 20:00
黄金现货 20:00
大模型语料 20:00

5. 使用示例

本章介绍如何使用 easy_tushare 模块进行数据导入。

5.1 全流程示例

以下示例展示从环境初始化到数据导入的完整流程。

// 第一步:加载模块
use easy_tushare::ts_init
use easy_tushare::stock_init
use easy_tushare::stock_schedulejob

// 第二步:初始化插件
// httpClient插件
installPlugin("httpClient");
loadPlugin("httpClient");
// py插件
// 如有需要参考安装:https://docs.dolphindb.cn/zh/plugins/py/py_3_9.html

// 第三步:创建数据库
create_db()

// 第四步:创建股票数据表
stock_init_tables()

// 第五步:批量导入2024年历史数据
token = "your_tushare_token"
stock_history_data_load(token, 2024.01.01, 2024.12.31)

// 第六步:注册每日增量定时任务
scheduleJob_stock_data_daily(token)

5.2 指定数据表导入

以下代码展示指定数据表名进行数据导入。

use easy_tushare::stock_init

// 仅导入指定表
stock_init_tables(["stock_basic", "stock_daily"])
stock_history_data_load(token, 2024.01.01, 2024.12.31, ["stock_basic", "stock_daily"])

// 仅导入分钟K线数据
stock_init_tables(["stock_1min_k", "stock_5min_k"])
stock_history_data_load(token, 2024.01.01, 2024.12.31, ["stock_1min_k", "stock_5min_k"])

5.3 多资产类别并行导入

以下代码介绍如何进行多资产数据并行导入。

use easy_tushare::ts_init
use easy_tushare::stock_init
use easy_tushare::futures_init
use easy_tushare::bond_init
use easy_tushare::index_init

token = "your_tushare_token"

// 初始化数据库
create_db()

// 初始化各资产类别表
stock_init_tables()
futures_init_tables()
bond_init_tables()
index_init_tables()

// 使用 submitJob 后台并行导入历史数据
stock_history_data_load(token, 2024.01.01, 2024.12.31)
futures_history_data_load(token, 2024.01.01, 2024.12.31)
bond_history_data_load(token, 2024.01.01, 2024.12.31)
index_history_data_load(token, 2024.01.01, 2024.12.31)

6. 资产类别与数据表清单

本章节介绍 easy_tushare 模块支持的数据资产清单以及各资产包含的表。

6.1 股票数据表

股票数据表按业务主题分为以下 8 类:

基础数据

表 6-1 股票基础数据表信息

表名 说明 所属数据库
stock_basic 股票基础信息 tushare_basic_db
stk_premarket 盘前数据 tushare_basic_db
stock_st ST 状态(每日) tushare_basic_db
st ST 状态记录 tushare_basic_db
stock_hsgt 沪深港通标的 tushare_basic_db
namechange 股票名称变更记录 tushare_basic_db
stock_company 上市公司信息 tushare_basic_db
stk_managers 管理层信息 tushare_basic_db
stk_rewards 管理层薪酬 tushare_basic_db
bse_mapping 北交所股票代码映射 tushare_basic_db
new_share 新股上市信息 tushare_basic_db
bak_basic 备用基础数据 tushare_basic_db

行情数据

表 6-2 股票行情数据表信息

表名 说明 所属数据库
stock_daily 日线行情 tushare_daily_db
stock_1min_k 1 分钟 K 线 tushare_minute_db
stock_5min_k 5 分钟 K 线 tushare_minute_db
stock_15min_k 15 分钟 K 线 tushare_minute_db
stock_30min_k 30 分钟 K 线 tushare_minute_db
stock_60min_k 60 分钟 K 线 tushare_minute_db
stock_weekly 周线行情 tushare_daily_db
stock_monthly 月线行情 tushare_daily_db
stock_daily_prev 前复权日线行情 tushare_daily_db
stock_daily_back 后复权日线行情 tushare_daily_db
stock_weekly_prev 前复权周线行情 tushare_daily_db
stock_weekly_back 后复权周线行情 tushare_daily_db
stock_monthly_prev 前复权月线行情 tushare_daily_db
stock_monthly_back 后复权月线行情 tushare_daily_db
stock_adj_factor 复权因子 tushare_daily_db
stock_daily_basic 每日基本面指标 tushare_daily_db
stock_limit 每日涨跌停价格 tushare_daily_db
stock_suspend 停复牌信息 tushare_daily_db
stock_hsgt_top10 沪深港通十大成交股 tushare_daily_db
stock_ggt_top10 港股通十大成交股 tushare_daily_db
stock_ggt_daily 港股通每日成交统计 tushare_daily_db
stock_ggt_monthly 港股通每月成交统计 tushare_daily_db
stock_bak_daily 备用行情数据 tushare_daily_db

财务数据

表 6-3 股票财务数据表信息

表名 说明 所属数据库
stock_income 利润表 tushare_basic_db
stock_balancesheet 资产负债表 tushare_basic_db
stock_cashflow 现金流量表 tushare_basic_db
stock_forecast 业绩预告 tushare_basic_db
stock_express 业绩快报 tushare_basic_db
stock_dividend 分红送股 tushare_basic_db
stock_fina_indicator 财务指标 tushare_basic_db
stock_fina_audit 财务审计意见 tushare_basic_db
stock_fina_mainbz 主营业务构成 tushare_basic_db
stock_disclosure_date 财报披露计划 tushare_basic_db

参考数据

表 6-4 股票参考数据表信息

表名 说明 所属数据库
top10_holders 前十大股东 tushare_basic_db
top10_floatholders 前十大流通股东 tushare_basic_db
pledge_stat 股权质押统计 tushare_basic_db
pledge_detail 股权质押明细 tushare_basic_db
repurchase 股票回购 tushare_basic_db
share_float 限售股解禁 tushare_basic_db
block_trade 大宗交易 tushare_basic_db
stk_account 股票账户开户数据 tushare_basic_db
stk_account_old 股票账户历史数据 tushare_basic_db
stk_holdernumber 股东人数 tushare_basic_db
stk_holdertrade 股东增减持 tushare_basic_db

特色数据

表 6-5 股票特色数据表信息

表名 说明 所属数据库
report_rc 券商盈利预测数据 tushare_daily_db
cyq_perf 筹码分布性能 tushare_daily_db
cyq_chips 筹码分布明细 tushare_daily_db
stk_factor_pro 股票技术因子(专业版) tushare_daily_db
ccass_hold 中央结算系统持股汇总 tushare_daily_db
ccass_hold_detail 中央结算系统持股明细 tushare_daily_db
hk_hold 沪深港股通持股明细 tushare_daily_db
stk_surv 机构调研 tushare_minute_db
stk_auction_o 开盘集合竞价 tushare_daily_db
stk_auction_c 收盘集合竞价 tushare_daily_db
stk_nineturn 神奇九转指标 tushare_daily_db
stk_ah_comparison AH 股比价 tushare_daily_db
broker_recommend 券商月度金股 tushare_basic_db

两融及转融通相关数据

表 6-6 股票两融及转融通数据表信息

表名 说明 所属数据库
margin 融资融券汇总 tushare_basic_db
margin_detail 融资融券交易明细 tushare_daily_db
margin_secs 融资融券标的证券 tushare_daily_db
slb_len 转融资交易汇总 tushare_basic_db
slb_len_mm 转融资交易明细 tushare_daily_db
slb_sec 转融券交易汇总 tushare_daily_db
slb_sec_detail 转融券交易明细 tushare_daily_db

资金流向数据

表 6-7 股票资金流向数据表信息

表名 说明 所属数据库
moneyflow 个股资金流向 tushare_daily_db
moneyflow_ths 同花顺个股资金流向 tushare_daily_db
moneyflow_dc 东方财富个股资金流向 tushare_daily_db
moneyflow_cnt_ths 同花顺概念资金流向 tushare_daily_db
moneyflow_ind_ths 同花顺行业资金流向 tushare_daily_db
moneyflow_ind_dc 东方财富行业资金流向 tushare_daily_db
moneyflow_mkt_dc 东方财富大盘资金流向 tushare_daily_db
moneyflow_hsgt 沪深港通资金流向 tushare_daily_db

打板专题数据

表 6-8 股票打板专题数据表信息

表名 说明 所属数据库
dc_daily 东方财富热榜每日数据 tushare_daily_db
dc_hot 东方财富热榜明细 tushare_daily_db
dc_index 东方财富板块指数 tushare_daily_db
dc_member 东方财富板块成分 tushare_daily_db
hm_detail 游资名录明细 tushare_daily_db
hm_list 游资名录 tushare_basic_db
kpl_concept_cons 开盘啦概念成分 tushare_daily_db
kpl_list 开盘啦涨停列表 tushare_daily_db
limit_cpt_list 涨停最强板块统计 tushare_daily_db
limit_list_d 每日涨跌停股票 tushare_daily_db
limit_list_ths 同花顺涨跌停股票 tushare_daily_db
stk_auction 集合竞价成交 tushare_daily_db
tdx_daily 通达信板块行情 tushare_daily_db
tdx_index 通达信板块指数 tushare_daily_db
tdx_member 通达信板块成分 tushare_daily_db
ths_daily 同花顺板块行情 tushare_daily_db
ths_hot 同花顺热榜 tushare_daily_db
ths_index 同花顺概念和行业列表 tushare_basic_db
ths_member 同花顺概念和行业成分 tushare_basic_db
top_inst 龙虎榜机构明细 tushare_daily_db
top_list 龙虎榜每日明细 tushare_daily_db

6.2 期货数据表

期货数据包含以下表

表 6-9 期货数据表信息

表名 说明 所属数据库
fut_basic 期货合约基础信息 tushare_basic_db
fut_daily 日线行情 tushare_daily_db
fut_weekly 周线行情 tushare_daily_db
fut_monthly 月线行情 tushare_daily_db
ft_1min_k 1 分钟 K 线 tushare_minute_db
ft_5min_k 5 分钟 K 线 tushare_minute_db
ft_15min_k 15 分钟 K 线 tushare_minute_db
ft_30min_k 30 分钟 K 线 tushare_minute_db
ft_60min_k 60 分钟 K 线 tushare_minute_db
fut_holding 期货持仓排名 tushare_daily_db
fut_index_daily 期货指数日线行情 tushare_daily_db
fut_mapping 期货主力与连续合约映射 tushare_basic_db
fut_settle 期货结算参数 tushare_daily_db
fut_weekly_detail 期货周度成交持仓明细 tushare_daily_db
fut_wsr 仓单日报 tushare_daily_db
ft_limit 涨跌停价格 tushare_daily_db

6.3 债券数据表

债券数据包含以下表

表 6-10 债券数据表信息

表名 说明 所属数据库
cb_basic 可转债基础信息 tushare_basic_db
cb_daily 可转债日线行情 tushare_daily_db
cb_call 可转债赎回信息 tushare_daily_db
cb_issue 可转债发行信息 tushare_basic_db
cb_price_chg 可转债转股价变动 tushare_basic_db
cb_rate 可转债利率信息 tushare_basic_db
cb_share 可转债转股结果 tushare_daily_db
cb_factor_pro 可转债因子(专业版) tushare_daily_db
bond_blk 债券大宗交易 tushare_daily_db
bond_blk_detail 债券大宗交易明细 tushare_daily_db
bc_bestotcqt 银行间债券报价 tushare_daily_db
bc_otcqt 银行间债券行情 tushare_daily_db
repo_daily 债券回购日行情 tushare_daily_db

6.4 指数数据表

指数数据包含以下表

表 6-11 指数数据表信息

表名 说明 所属数据库
index_basic 指数基础信息 tushare_basic_db
index_daily 指数日线行情 tushare_daily_db
index_weekly 指数周线行情 tushare_daily_db
index_monthly 指数月线行情 tushare_daily_db
idx_1min_k 1 分钟 K 线 tushare_minute_db
idx_5min_k 5 分钟 K 线 tushare_minute_db
idx_15min_k 15 分钟 K 线 tushare_minute_db
idx_30min_k 30 分钟 K 线 tushare_minute_db
idx_60min_k 60 分钟 K 线 tushare_minute_db
ci_daily 中证指数日线行情 tushare_daily_db
ci_index_member 中证指数成分股 tushare_basic_db
daily_info 市场交易统计 tushare_daily_db
idx_factor_pro 指数技术因子(专业版) tushare_daily_db
index_global 国际指数行情 tushare_daily_db
index_weight 指数成分股权重 tushare_daily_db
index_dailybasic 大盘指数每日指标 tushare_daily_db
index_classify 指数行业分类 tushare_basic_db
index_member_all 指数成分股全量数据 tushare_basic_db
sw_daily 申万行业指数日线行情 tushare_daily_db
sz_daily_info 深圳市场每日交易概况 tushare_daily_db

6.5 期权数据表

期权数据包含以下表

表 6-12 期权数据表信息

表名 说明 所属数据库
opt_basic 期权合约基础信息 tushare_basic_db
opt_daily 期权日线行情 tushare_daily_db
opt_1min_k 1 分钟 K 线 tushare_minute_db
opt_5min_k 5 分钟 K 线 tushare_minute_db
opt_15min_k 15 分钟 K 线 tushare_minute_db
opt_30min_k 30 分钟 K 线 tushare_minute_db
opt_60min_k 60 分钟 K 线 tushare_minute_db

6.6 外汇数据表

外汇数据包含以下表

表 6-13 外汇数据表信息

表名 说明 所属数据库
fx_obasic 外汇基础信息 tushare_basic_db
fx_daily 外汇日线行情 tushare_daily_db

6.7 黄金现货数据表

黄金现货数据包含以下表

表 6-14 黄金现货数据表信息

表名 说明 所属数据库
sge_basic 黄金现货基础信息 tushare_basic_db
sge_daily 黄金现货日线行情 tushare_daily_db

6.8 ETF 数据表

ETF 数据包含以下表

表 6-15 ETF数据表信息

表名 说明 所属数据库
etf_basic ETF 基础信息 tushare_basic_db
etf_index ETF 基准指数列表 tushare_basic_db
etf_share_size ETF 份额规模 tushare_daily_db
fund_adj 基金复权因子 tushare_daily_db
etf_daily ETF 日线行情 tushare_daily_db
etf_stk_1_mins ETF 1 分钟 K 线 tushare_minute_db
etf_stk_5_mins ETF 5 分钟 K 线 tushare_minute_db
etf_stk_15_mins ETF 15 分钟 K 线 tushare_minute_db
etf_stk_30_mins ETF 30 分钟 K 线 tushare_minute_db
etf_stk_60_mins ETF 60 分钟 K 线 tushare_minute_db

6.9 公募基金数据表

公募基金数据包含以下表

表 6-16 公募基金数据表信息

表名 说明 所属数据库
fund_basic 公募基金基础信息 tushare_basic_db
fund_company 基金公司信息 tushare_basic_db
fund_div 公募基金分红信息 tushare_basic_db
fund_factor_pro 场内基金技术因子(专业版) tushare_daily_db
fund_manager 基金经理信息 tushare_basic_db
fund_nav 公募基金净值 tushare_daily_db
fund_portfolio 公募基金持仓 tushare_daily_db
fund_share 基金规模(份额) tushare_daily_db
fund_mkt_idx_bmk 公募基金业绩基准库 tushare_basic_db

6.10 大模型语料数据表

大模型语料数据包含以下表

表 6-17 大模型语料数据表信息

表名 说明 所属数据库
anns_d 上市公司公告 tushare_daily_db
news 新闻快讯 tushare_daily_db
major_news 长篇新闻 tushare_daily_db
irm_qa_sh 上证 E 互动问答 tushare_daily_db
irm_qa_sz 深证互动易问答 tushare_daily_db
cctv_news 新闻联播 tushare_daily_db
npr 国家政策法规 tushare_daily_db
research_report 券商研究报告 tushare_daily_db

7. 注意事项

  • Tushare Token:使用前需在 Tushare Pro 官网注册并获取 Token。

  • 接口权限:部分 Tushare 接口需要更高的积分权限,如分钟 K 线、专业版因子等数据,请确保账号具有相应权限。

  • 数据库初始化:首次使用前必须先执行 create_db() 创建数据库,再执行对应的 *_init_tables() 创建数据表。

  • 插件依赖:需确保 httpClient 插件已正确安装并加载,py 插件如有需要也要安装。

  • 网络环境:运行导入任务的 DolphinDB 节点需能正常访问 https://api.tushare.pro