
本文继续介绍如何获取金融数据。我将用 tushare 下载金融数据,主要还是通过最基础的数据介绍它的使用。
什么是 Tushare?
Tushare 是一个 Python 开源金融数平台,最初由 Jimmy 开发的,最早版 tushare 是借助爬虫从财经数据平台如新浪财经实时抓取数据。可查看 tushare.org,这是 tushare 早期的文档。
2018 年,Tushare 经过了几年的发展,Tushare 开发了独立的数据平台-tushare.pro,从爬虫方案改为自建服务存储数据,数据质量上有了质的提升,让 Tushare Pro 成为了金融分析师和研究人员常用的金融数据源之一。
我曾参与 Tushare 的开发工作,大概2018 下半年的半年时间,和 Tushare 作者 Jimmy 一起开发了 Tushare 的新平台,主要是构建了数据上线的流程,从零搭建了这个平台,为其提供了配置支持,简化了数据上线流程,加快了数据上线效率。
安装与注册
首先,你需要安装 Tushare 的 Python 包,在终端中运行以下命令来安装 Tushare。
然后,注册 tushare.pro,获取 API 密钥。这个过程我就不介绍了,可查看 tushare.pro 操作手册。
验证是否安装成功:
1
2
3
4
5
6
| import tushare as ts
ts.set_token("Your API Token")
pro = ts.pro_api()
data = pro.daily(ts_code="000001.SZ")
print(data)
|
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| ts_code trade_date open ... vol amount
0 000001.SZ 20241206 11.44 ... 1726269.27 2.004270e+06
1 000001.SZ 20241205 11.44 ... 687108.83 7.861380e+05
2 000001.SZ 20241204 11.44 ... 1007470.59 1.154623e+06
3 000001.SZ 20241203 11.37 ... 1082559.36 1.236993e+06
4 000001.SZ 20241202 11.39 ... 975433.66 1.108786e+06
... ... ... ... ... ... ...
5995 000001.SZ 19990713 21.80 ... 305130.00 6.368993e+05
5996 000001.SZ 19990712 23.70 ... 269953.00 6.109031e+05
5997 000001.SZ 19990709 23.80 ... 139487.00 3.281077e+05
5998 000001.SZ 19990708 23.30 ... 156405.00 3.746743e+05
5999 000001.SZ 19990707 23.00 ... 244797.00 5.773778e+05
[6000 rows x 11 columns]
|
数据内容
Tushare 作者米哥 Jimmy 本身是有专业金融数据商的深度经验,从 Tushare 的数据组织上就能看出来,非常清晰和完善,基本上你想要的数据,tushare pro 都有提供,完全不亚于专业数据提供商。
积分费用
Tushare Pro 上每个接口都有积分要求,股票的日线行情调用积分要求是 120 积分,不过只要注册和修改昵称就能得到这 120 积分,所以说这部分数据就是免费的。更高阶的数据的积分也会要求比较高,关于它如何获取积分,文档 平台积分 中有具体的描述。
tushare 的积分可以通过邀请注册或者社区贡献获取,如多写几篇教程文章,其实难度不算高。如果不想浪费这个时间,积分也是通过捐助的方式获取,其实就是花钱买,100 块能得到 1000 积分,积分有效期一年。大概有 2000 积分,能调用 60% 的数据了,5000 积分的话,除了部分特色数据和高频数据,其余数据基本都能调用。这个费用不算高,我看过其他一些数据商,数据通常是分类售卖,1000 块也只能买到某个品类下的基础数据。
总体而言,虽然说 tushare 有收费,不过相对于其他的数据提供商,还是降低了普通散户获取专业金融数据的门槛。
开始介绍它的数据吧,我还是按照上篇介绍 akshare 的思路介绍如何在 tushare 获取 A 股的一些数据吧。
A 股数据
Tushare 提供了丰富的股票数据,包括历史行情、实时行情等,还提供了每日指标,方便我们选股。
历史行情
Tushare 提供了历史行情日/周/月线数据,包含了股票的开盘价、收盘价、最高价、最低价等信息,还有如。
示例代码:
1
2
3
4
5
6
| # 获取某只股票(如平安银行)的历史日线数据
pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231')
# 获取某只股票(如平安银行)的历史周线数据
pro.weekly(ts_code='000001.SZ', start_date='20180101', end_date='20181101'
# 获取某只股票(如平安银行)的历史月线数据
pro.monthly(ts_code='000001.SZ', start_date='20180101', end_date='20181101'
|
daily 的积分要求是 120,weekly 和 monthly 要更高的积分才能调用。不过这两个接口,我们是可以通过 pandas 提供的 resample 将日线聚合成周线和月线,可以不用调用这两个接口。
如果你有更高频的数据要求,如分钟线,这块是付费数据。Tushare Pro 封装了一个 pro_bar 的通用行情接口,其中直接不同品类、不同频率的行情数据。
如获取分钟数据,示例如下:
1
| ts.pro_bar(ts_code='000001.SZ', adj='qfq', freq='1', start_date='20180101', end_date='20181011')
|
实时行情
Tushare 的实时行情不是自建服务,就是提供了其他平台的转发。在 Tushare 中提供了便于使用接口。
1
| ts.realtime_quote(ts_code='600000.SH,000001.SZ,000001.SH')
|
输出:
1
2
3
4
| NAME TS_CODE DATE TIME OPEN PRE_CLOSE PRICE ... A2_P A3_V A3_P A4_V A4_P A5_V A5_P
0 浦发银行 600000.SH 20231222 15:00:00 6.570 6.570 6.580 ... 6.590 1834 6.600 4107 6.610 2684 6.620
1 平安银行 000001.SH 20231222 15:00:00 9.190 9.170 9.200 ... 9.210 2177 9.220 2568 9.230 2319 9.240
2 上证指数 000001.SH 20231222 15:30:39 2919.2879 2918.7149 2914.7752 ... 0 0 0 0
|
财报数据
Tushare 提供了上市公司财报数据,包括资产负债表、利润表和现金流量表。
示例代码:
1
2
3
4
5
6
7
8
| # 资产负债表
pro.balancesheet(ts_code='000001.SZ')
# 利润表
pro.income(ts_code="000001.SZ")
# 现金流量表
pro.cashflow(ts_code='000001.SZ')
# 分红送股
pro.dividend(ts_code='000001.SZ')
|
除此以外,还提供了财务指标数据,便于进行选股。
1
| pro.fina_indicator(ts_code="000001.SZ")
|
说到财务指标,其实 Tushare Pro 的技术指标因子,如果你不想算的,可以从如下接口获取。
1
| pro.stk_factor(ts_code="000001.SZ")
|
宏观经济
Tushare 提供了多种宏观经济数据,涵盖了 GDP、PMI、利率等重要经济指标。
GDP 数据
示例代码:
1
| pro.cn_gdp(start_q="2018Q1", end_q="2019Q3")
|
输出:
1
2
3
4
5
6
7
8
| quarter gdp gdp_yoy pi pi_yoy si si_yoy ti ti_yoy
0 2019Q3 712845.4 6.2 43005.0 2.9 276912.5 5.6 392927.9 7.0
1 2019Q2 460636.7 6.3 23207.0 3.0 179122.1 5.8 258307.5 7.0
2 2019Q1 218062.8 6.4 8769.4 2.7 81806.5 6.1 127486.9 7.0
3 2018Q4 900309.5 6.6 64734.0 3.5 366000.9 5.8 469574.6 7.6
4 2018Q3 646710.9 6.7 39799.8 3.4 261822.8 5.8 345088.2 7.7
5 2018Q2 417215.4 6.8 21576.2 3.2 168558.1 6.1 227081.1 7.6
6 2018Q1 197920.0 6.8 8574.4 3.2 77116.7 6.3 112229.0 7.5
|
PMI 数据
PMI(采购经理人指数)反映了制造业经济的活跃程度。
示例代码:
1
2
| # 获取最新的PMI数据
pro.cn_pmi(start_m='201901', end_m='202003', fields='month,pmi010000,pmi010400')
|
利率数据
Tushare 提供了中国央行的利率数据,帮助分析货币政策的变化。
示例代码:
1
2
| # 获取贷款基础利率
pro.shibor_lpr(start_date='20180101', end_date='20181130', fields='date,1y')
|
其他还有cpi、ppi 等,就不一一演示了,可查看文档 宏观经济-国内宏观。
特色数据
Tushare 还提供了如新闻联播文字稿、实时新闻资讯、甚至是新冠疫情的数据。
如新闻资讯数据,帮助我们及时了解股市、经济等领域的最新动态。
示例代码:
1
2
| # 获取最新的股市新闻资讯
pro.news()
|
输出:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
| datetime content title
0 2024-12-09 14:14:57 【东吴证券:维持宇通客车“买入”评级,预计公司产销景气度将继续提升】东吴证券研报指出,宇通客... None
1 2024-12-09 14:13:18 【收购资产不及预期?股价盘中一度跌停,国网信通最新回应】国网信通低开低走,盘中一度触及跌停。... None
2 2024-12-09 14:12:21 【高盛:《燕云十六声》将是网易-S在2025年最重要的游戏发布和贡献之一】高盛发布研究报告称... None
3 2024-12-09 14:11:58 【招银国际:重申途虎-W“买入”评级 目标价升至26港元】招银国际发布研究报告称,重申途虎-... None
4 2024-12-09 14:10:36 国债期货午后冲高回落,30年期主力合约涨幅收窄至0.09%,10年期主力合约跌0.01%,5... None
.. ... ... ...
995 2024-12-08 20:58:39 伊朗外交部:德黑兰继续支持国际机制,特别是联合国安理会第2254号决议,以推进叙利亚的政治进程。 None
996 2024-12-08 20:57:45 伊朗外交部声明称,伊朗呼吁迅速结束军事冲突,防止恐怖主义行动,并在叙利亚社会各界的参与下开始... None
997 2024-12-08 20:57:38 【也门胡塞武装:与伊拉克民兵武装联合袭击以色列南部目标】当地时间12月8日,也门胡塞武装表示... None
998 2024-12-08 20:56:25 伊朗外交部声明称,伊朗尊重叙利亚的统一和国家主权;叙利亚的前途和命运完全由叙利亚人民决定。 None
999 2024-12-08 20:45:39 约旦国王阿卜杜拉:敦促避免叙利亚发生任何可能导致混乱的冲突。 None
[1000 rows x 3 columns]
|
总结
Tushare 是一个强大的数据平台,主要适合于中国市场,包括 A 股、期货、期权等。通过简单的 API 调用,你可以轻松获取各类金融数据,并进行分析与研究。如果你正在寻找一个免费且高质量的金融数据源,Tushare 无疑是一个不错的选择。
有兴趣的话,还可以到它文档中搜寻一番,看看是否新的有趣数据是,或许能发现一些有意思的数据。据我之前的了解,Tushare 的作者米哥对挖掘新数据特别感兴趣。