
Tushare是一个基于Python的金融数据接口库,提供了全面的中国金融市场数据。它覆盖了A股、港股、期货、基金、债券、外汇等各类金融产品数据,甚至包括行业大数据和数字货币行情。Tushare的API设计简洁,返回数据直接是Pandas DataFrame格式,便于后续分析处理。虽然部分高级功能需要积分或VIP权限,但基础数据已能满足大多数研究需求。
核心特点:
使用pip一键安装:
pip install tushare如果需要使用完整功能,建议注册获取API token:
import tushare as ts
ts.set_token('你的token') # 设置token
pro = ts.pro_api() # 初始化接口获取A股实时行情数据
import tushare as ts
# 获取实时行情数据
df = ts.get_realtime_quotes('000001') # 平安银行
print(df)输出示例:
name open pre_close price high low bid ask volume amount b1_v ... a2_v a2_p a3_v a3_p a4_v a4_p a5_v a5_p date time code
0 平安银行 12.300 12.300 12.470 12.500 12.280 12.470 12.480 113207820 1405152349.430 2907 ... 12257 12.490 28402 12.500 7682 12.510 6068 12.520 2025-08-05 15:00:00 000001获取股票历史数据
# 获取日K线数据
# 设置 token(只需一次)
ts.set_token('19ae98756rt91efwd39ia6ea3bb7a0f22bd9db22fd8a5383bec3b45622e')
pro = ts.pro_api()
# 拉取 000001.SZ 日线行情
df = pro.daily(ts_code='000001.SZ',start_date='20250101',end_date='20250801')
# 按日期升序排列
df = df.sort_values('trade_date')
print(df.head())输出示例:
ts_code trade_date open high low close pre_close change pct_chg vol amount
140 000001.SZ 20250102 11.73 11.77 11.39 11.43 11.70 -0.27 -2.3077 1819596.99 2102923.078
139 000001.SZ 20250103 11.44 11.54 11.36 11.38 11.43 -0.05 -0.4374 1154680.44 1320520.978
138 000001.SZ 20250106 11.38 11.48 11.22 11.44 11.38 0.06 0.5272 1085536.30 1234305.778
137 000001.SZ 20250107 11.42 11.53 11.37 11.51 11.44 0.07 0.6119 747862.88 858329.049
136 000001.SZ 20250108 11.50 11.63 11.40 11.50 11.51 -0.01 -0.0869 1062386.01 1223598.997获取公募基金列表
# 获取公募基金列表
df = pro.fund_basic(market='E')
print(df.head())获取基金净值数据
# 获取基金净值数据
df = pro.fund_nav(ts_code='160119.OF')
print(df.head())获取期货合约列表
# 获取期货合约列表
df = pro.fut_basic(exchange='DCE')
print(df.head())获取期货行情数据
# 获取期货日行情
df = pro.fut_daily(ts_code='CU2001.SHF', start_date='20250101', end_date='20250801')
print(df.head())获取CPI数据
# 获取CPI数据
df = pro.cn_cpi()
print(df.head())获取PMI数据
# 获取PMI数据
df = pro.cn_pmi()
print(df.head())import pandas as pd
# 2. 拉取日线(示例用 2024 年数据)
df = pro.daily(ts_code='600519.SH',start_date='20240101',end_date='20240731')
# 3. 按日期升序
df = df.sort_values('trade_date')
# 4. 计算 20 日均线
df['ma20'] = df['close'].rolling(window=20).mean()
# 5. 把 pct_chg 转换成数值型(Pro 接口返回字符串)
df['pct_chg'] = pd.to_numeric(df['pct_chg'])
# 6. 筛选涨幅超过 5% 的交易日
big_up = df[df['pct_chg'] > 5]
print(big_up[['trade_date', 'close', 'pct_chg', 'ma20']])import matplotlib.pyplot as plt
# 绘制K线图
df['trade_date'] = pd.to_datetime(df['trade_date'])
df = df.set_index('trade_date')
# 2) 列名改成 mplfinance 识别的 OHLC
df = df.rename(columns={'open': 'Open','high': 'High','low': 'Low','close': 'Close','vol': 'Volume'})
# 3) 只要需要的列
plot_df = df[['Open', 'High', 'Low', 'Close', 'Volume']]
# 4) 画蜡烛图 + 20 日均线
mpf.plot(plot_df,type='candle',mav=(20,),volume=True,title='600519.SH K-line & 20-day MA',style='yahoo',figsize=(12, 8))“无他,惟手熟尔”!有需要的用起来。
如果你觉得这篇文章有用,欢迎点赞、转发、收藏、留言、推荐❤!😊
本文分享自 Nicholas与Pypi 微信公众号,前往查看
如有侵权,请联系 cloudcommunity@tencent.com 删除。
本文参与 腾讯云自媒体同步曝光计划 ,欢迎热爱写作的你一起参与!