一、前言
在量化分析、股票研究、金融学习中,高质量的财经数据是必不可少的基础。
Tushare 是国内最主流、免费 + 低门槛的财经数据接口,覆盖 A 股、指数、期货、基金、债券等数据。
本文带你从零开始:安装 → 注册 → 获取 Token → 读取行情 → 简单策略示例,全程可直接运行,适合新手入门。
二、环境准备与安装
- 安装 tushare
bash
运行
pip install tushare --upgrade
- 注册与获取 Token
打开官网:tushare.pro/
注册并登录(手机号即可)
进入 个人中心 → 接口 Token,复制你的 Token(长字符串)。
注意:Token 不要公开、不要硬编码到公开代码里。
三、初始化与基础接口调用
- 初始化
python
运行
import tushare as ts
import pandas as pd
替换成你自己的 token
token = "你的Tushare Token"
ts.set_token(token)
pro = ts.pro_api()
- 获取 A 股股票列表
python
运行
获取所有正常上市的A股
df_stocks = pro.stock_basic(
exchange='',
list_status='L',
fields='ts_code,symbol,name,area,industry,list_date'
)
print("股票总数:", len(df_stocks))
print(df_stocks.head(10))
ts_code:带后缀(如 000001.SZ),Tushare 必备
name:股票名称
industry:所属行业
- 获取单只股票日线行情
以 ** 贵州茅台(600519.SH)**2025 年行情为例:
python
运行
df_daily = pro.daily(
ts_code='600519.SH',
start_date='20250101',
end_date='20251231'
)
按日期正序
df_daily = df_daily.sort_values('trade_date').reset_index(drop=True)
print("数据条数:", len(df_daily))
print(df_daily[['trade_date','open','high','low','close','vol']].head())
返回字段说明:
trade_date:交易日期
open/high/low/close:开、高、低、收
vol:成交量
- 简单可视化(可选,文章加分)
python
运行
import matplotlib.pyplot as plt
plt.rcParams['font.sans-serif'] = ['SimHei']
plt.plot(pd.to_datetime(df_daily['trade_date']), df_daily['close'])
plt.title("贵州茅台 2025 年收盘价")
plt.xlabel("日期")
plt.ylabel("价格")
plt.show()
四、实战小案例:双均线策略信号
python
运行
计算5日均线、20日均线
df_daily['ma5'] = df_daily['close'].rolling(window=5).mean()
df_daily['ma20'] = df_daily['close'].rolling(window=20).mean()
金叉、死叉
df_daily['signal'] = 0
df_daily.loc[df_daily['ma5'] > df_daily['ma20'], 'signal'] = 1 # 看多
df_daily.loc[df_daily['ma5'] < df_daily['ma20'], 'signal'] = -1 # 看空
print(df_daily[['trade_date','close','ma5','ma20','signal']].tail(10))
signal=1:5 日均线上穿 20 日均线,买入信号
signal=-1:卖出信号
五、常见问题与注意事项
权限不足报错:需要积分,注册 + 完善资料有 120 分,写文章可加更多。
日期格式:必须 YYYYMMDD(如 20250101)。
代码不要泄露 Token:公开文章里一定写 "你的Tushare Token",不要写真实 key。
六、总结
Tushare 是量化学习、金融数据分析的绝佳工具,免费、稳定、接口简洁。
通过本文,你可以快速拿到 A 股行情、构建简单策略,为后续量化回测、选股研究打下基础。