> 作者:投资研究实践者 | 数据源:Tushare Pro
## 为什么选择Tushare Pro
做投资研究,数据是基础。Wind太贵,Choice门槛不低,免费源要么数据不全要么质量堪忧。Tushare Pro作为社区驱动的金融数据平台,覆盖A股、基金、期货、期权等全品类数据,API调用简洁,对个人投资者和研究机构都很友好。
## 环境搭建(5分钟搞定)
### 1. 注册与安装
在 [tushare.pro](https://tushare.pro) 注册账号,获取API Token。然后:
```bash
pip install tushare
```
### 2. 配置Token
```python
import tushare as ts
# 方式一:代码中设置
ts.set_token('你的token')
# 方式二:环境变量
# export TUSHARE_TOKEN=你的token
# 创建API接口
pro = ts.pro_api()
```
## 实战场景
### 场景一:个股基本面扫描
快速获取一家公司的核心财务指标,判断是否值得深研:
```python
# 获取贵州茅台的财务指标
df = pro.fina_indicator(
ts_code='600519.SH',
start_date='20240101',
fields='ts_code,ann_date,roe,grossprofit_margin,netprofit_margin,current_ratio,debt_to_assets'
)
print(df)
```
一屏看到ROE、毛利率、净利率、流动比率、资产负债率,核心盈利能力和财务健康度尽收眼底。
### 场景二:行业资金流向追踪
判断市场主力的行业偏好,辅助仓位配置:
```python
# 获取行业资金流
df = pro.moneyflow_hsgt(start_date='20260101', end_date='20260425')
print(df.tail(10))
```
北向资金的流入流出、沪股通深股通分拆,趋势一目了然。
### 场景三:构建选股筛选器
多维度筛选,缩小研究范围:
```python
# 获取股票列表
stocks = pro.stock_basic(exchange='', list_status='L', fields='ts_code,symbol,name,area,industry')
# 获取每日指标
daily = pro.daily_basic(
ts_code='',
trade_date='20260425',
fields='ts_code,trade_date,pe,pb,turnover_rate,total_mv'
)
# 筛选:PE<20, PB<2, 换手率>2%, 市值>50亿
import pandas as pd
filtered = daily[
(daily['pe'] > 0) & (daily['pe'] < 20) &
(daily['pb'] > 0) & (daily['pb'] < 2) &
(daily['turnover_rate'] > 2) &
(daily['total_mv'] > 500000)
]
result = pd.merge(filtered, stocks[['ts_code','name','industry']], on='ts_code')
print(result.sort_values('pe').head(20))
```
从4000+股票中,几行代码筛出低估值、高流动性标的。
### 场景四:基金持仓透视
看基金经理真金白银的持仓,比看季报来得快:
```python
# 获取基金前十大持仓
df = pro.fund_portfolio(ts_code='110011.OF', start_date='20250101')
print(df[['ts_code','end_date','symbol','name','vol','amount','mkv']].head(10))
```
### 场景五:自动化每日数据采集
结合定时任务,实现每日数据自动采集和存储:
```python
import tushare as ts
import pandas as pd
from datetime import datetime, timedelta
pro = ts.pro_api()
def daily_collect():
"""每日采集核心数据"""
today = datetime.now().strftime('%Y%m%d')
# 日线行情
daily = pro.daily(trade_date=today)
# 涨跌停统计
limit = pro.stk_limit(trade_date=today)
# 融资融券
margin = pro.margin(trade_date=today)
# 保存到本地
for name, df in [('daily', daily), ('limit', limit), ('margin', margin)]:
if df is not None and not df.empty:
df.to_csv(f'data/{name}_{today}.csv', index=False)
print(f'{name}: {len(df)} rows saved')
daily_collect()
```
## 关于积分
Tushare Pro采用积分制控制接口权限。新注册用户120分起,可以获取日线行情等基础数据。积分获取途径:
- 完善个人信息:+20分
- 推荐有效用户:每人+50分
- 发表Tushare使用文章:100-1000分
- 贡献代码/反馈Bug:5-500分
建议先完善资料拿到基础分,再通过写文章快速提升。2000分以上基本可以覆盖日常投研需要的所有数据接口。
## 小结
Tushare Pro的优势在于:
1. **接口简洁**——一个函数调数据,不用爬虫不用解析
2. **数据规范**——Pandas DataFrame直接用,和Python生态无缝衔接
3. **品类齐全**——股票、基金、期货、期权、宏观数据一站覆盖
4. **社区活跃**——遇到问题有人帮,积分体系激励贡献
对个人投资者和量化研究者来说,Tushare Pro是目前性价比最高的A股数据方案。
---
**声明**:本文基于个人使用体验撰写,旨在分享数据工具的实际应用方法。投资有风险,数据仅供研究参考。