Files
quanxiel/quantitative_data/tushare_api_reference.md

5.1 KiB
Raw Permalink Blame History

Tushare Pro 接口参考(实测版)

更新时间:2026-08-15 账号积分:5120(爸爸账号实测) 官方文档:https://tushare.pro/document/2 (积分说明 doc_id=108)

一、速查表(当前账号实测结果)

接口名 用途 实测结果 说明
stock_basic 股票列表 ✅ 可用 低权限,120积分即可
trade_cal 交易日历 ✅ 可用 按交易所拉取
daily 日线行情 ✅ 可用 按 trade_date 全市场需2000积分
daily_basic 每日指标(估值) ✅ 可用 同上
adj_factor 复权因子 ✅ 可用 同上
moneyflow 资金流向 ✅ 可用 按 trade_date 全市场
index_daily 指数日线 ✅ 可用
income 利润表 ✅ 可用
income_vip 利润表(VIP) ✅ 可用 5000积分档可用
balancesheet 资产负债表 ✅ 可用
balancesheet_vip 资产负债表(VIP) ✅ 可用
cashflow 现金流量表 ✅ 可用
cashflow_vip 现金流量表(VIP) ✅ 可用
fina_indicator 财务指标 ✅ 可用
fina_indicator_vip 财务指标(VIP) ✅ 可用
daily_vip — ❌ 40101 接口名不存在 Tushare 无此接口,别用!
adj_factor_vip — ❌ 40101 接口名不存在 Tushare 无此接口,别用!
daily_basic_vip — ❌ 40203 无访问权限 存在但当前账号不可用

⚠️ 重要教训:不是所有接口都有 _vip 版本。写代码前先用 tushare_api_check.py 自检,别想当然加 _vip 后缀。

二、常用接口详解 + 示例

统一用法(示例在 quantitative_data/ 目录下运行,自动加载 .env):

import tushare as ts
from config import TUSHARE_TOKEN  # 从 .env 读取

ts.set_token(TUSHARE_TOKEN)
pro = ts.pro_api()

1. daily 日线行情

# 按交易日拉全市场(推荐,一次调用全市场,需2000积分)
df = pro.daily(trade_date='20260814')          # 返回当天所有股票

# 按单只股票拉区间(120积分即可)
df = pro.daily(ts_code='000001.SZ', start_date='20260801', end_date='20260814')

返回字段:ts_code, trade_date, open, high, low, close, pre_close, change, pct_chg, vol, amount

2. trade_cal 交易日历

df = pro.trade_cal(exchange='SSE', start_date='20260101', end_date='20260814')
# exchange: SSE上交所 / SZSE深交所
# 返回 is_open(1开市/0休市), pretrade_date(上一交易日)

3. stock_basic 股票列表

df = pro.stock_basic(exchange='', list_status='L',   # L上市/D退市/P暂停
                     fields='ts_code,symbol,name,industry,list_date')

4. daily_basic 每日指标(估值/换手)

df = pro.daily_basic(trade_date='20260814')     # 全市场单日
df = pro.daily_basic(ts_code='000001.SZ', start_date='20260101', end_date='20260814')

5. adj_factor 复权因子

df = pro.adj_factor(trade_date='20260814')      # 全市场单日
df = pro.adj_factor(ts_code='000001.SZ', start_date='20260101', end_date='20260814')

6. moneyflow 资金流向

df = pro.moneyflow(trade_date='20260814')       # 全市场单日
df = pro.moneyflow(ts_code='000001.SZ', start_date='20260101', end_date='20260814')

7. index_daily 指数日线

df = pro.index_daily(ts_code='000001.SH', start_date='20260101', end_date='20260814')
# 常用指数:000001.SH上证 / 399001.SZ深成 / 000300.SH沪深300 / 000905.SH中证500

8. 财务三表 + 指标(income / balancesheet / cashflow / fina_indicator)

# 按股票拉区间(start_date/end_date 为报告期,格式YYYYMMDD)
df = pro.income(ts_code='000001.SZ', start_date='20250101', end_date='20260814')
df = pro.balancesheet(ts_code='000001.SZ', start_date='20250101', end_date='20260814')
df = pro.cashflow(ts_code='000001.SZ', start_date='20250101', end_date='20260814')
df = pro.fina_indicator(ts_code='000001.SZ', start_date='20250101', end_date='20260814')

# VIP 版按报告期拉全市场(一次一个季度,最高效)
df = pro.income_vip(period='20260331')
df = pro.cashflow_vip(period='20260331')
# period 格式:0331/0630/0930/1231 + 年份,如 20260331

返回关键字段:ann_date(公告日), f_ann_date(实际公告日), end_date(报告期)

三、错误码速查

错误码 含义 处理
40101 请指定正确的接口名 接口名不存在(如 daily_vip)→ 查官方文档/自检脚本
40203 没有接口访问权限 接口存在但积分不够 → 升级积分或换普通接口
40001 token 无效 检查 .env 里 token 是否正确/被重置
40002 积分不足 需要更多积分
20002 请求频率超限 加 sleep 间隔重试

四、自检脚本

# 在 quantitative_data/ 目录下运行(自动读 .env 的 token)
/opt/quant-venv/bin/python tushare_api_check.py

# 或指定 token
/opt/quant-venv/bin/python tushare_api_check.py --token 你的token

输出每个接口的可用状态,改 importer 代码前后各跑一次最保险。