数据源介绍:常见免费数据源与合规注意事项
做量化投资,第一步就是搞数据。没有数据,再牛的模型也是空中楼阁。
我刚开始做量化那会儿,数据源选择远没现在这么丰富。那时候要么花钱买Wind,要么自己爬网页,折腾得很。现在好了,免费数据源越来越多,质量也还不错。今天我就把常用的几个免费数据源掰开揉碎了讲讲,顺便聊聊数据合规那些事儿——嗯,这块其实挺重要的,很多人容易忽略。
一、Tushare:国内量化圈的“老大哥”
Tushare 是我个人用得最早的一个免费数据源。它由一位叫 Jimmy 的开发者维护,社区很活跃。说白了,Tushare 就是一套基于 Python 的财经数据接口库。
核心特点:
- 覆盖A股、港股、美股、期货、基金、债券等
- 提供日线、分钟线、复权因子、财务数据等
- 需要注册获取 token,部分接口需要积分
安装很简单:
pip install tushare
基本用法:
import tushare as ts
# 设置token(需要去官网注册获取)
ts.set_token('你的token')
# 初始化pro接口
pro = ts.pro_api()
# 获取某只股票的日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20230101', end_date='20231231')
print(df.head())
我在项目中遇到过一个问题:Tushare 的免费接口有调用频率限制,每分钟最多200次。如果你写了个循环去批量拉数据,很容易被限流。我的建议是——加个 time.sleep(0.3) 控制节奏。
小技巧: Tushare 的财务数据接口(比如 income、balancesheet)数据质量很高,但字段名是英文的。我习惯拉下来后先做个字段映射表,转成中文,方便后续分析。
二、AKShare:后起之秀,数据源更广
AKShare 是近几年火起来的开源数据源。它的口号是“让数据获取变得简单”。我个人觉得,AKShare 最大的优势在于——数据源覆盖面极广,从股票、基金到宏观经济、新闻舆情,甚至包括一些另类数据。
安装:
pip install akshare
举个例子,获取A股实时行情:
import akshare as ak
# 获取A股实时行情
df = ak.stock_zh_a_spot_em()
print(df.head())
再比如获取龙虎榜数据:
import akshare as ak
# 获取龙虎榜机构席位成交额排名
df = ak.stock_sse_summary()
print(df.head())
AKShare 的数据源来自各大财经网站(东方财富、新浪财经、同花顺等),所以数据更新很及时。但要注意——不同数据源的数据格式可能不一样,需要做标准化处理。
避坑指南: 我曾经遇到过 AKShare 某个接口突然返回空数据的情况,后来发现是上游网站改了页面结构。所以,建议你在生产环境中加个数据校验逻辑——如果返回的数据为空或字段缺失,自动触发告警。
三、Yahoo Finance:国际市场的首选
如果你需要做美股、港股或者全球指数的数据,Yahoo Finance 是个不错的选择。它免费、稳定、覆盖面广。Python 里常用的库是 yfinance。
安装:
pip install yfinance
基本用法:
import yfinance as yf
# 获取苹果公司股票数据
aapl = yf.Ticker("AAPL")
# 获取历史行情
hist = aapl.history(period="1y")
print(hist.head())
# 获取财务数据
financials = aapl.financials
print(financials.head())
Yahoo Finance 的数据质量整体不错,但有个问题——它不提供A股数据。所以如果你主要做A股,还是得用 Tushare 或 AKShare。
个人经验: 我习惯把 yfinance 获取的数据和 Tushare 的数据做交叉验证。比如同一只港股,两边拉下来对比一下收盘价,如果差异超过0.5%,我会去查一下原因。这种交叉验证的习惯,能帮你发现很多数据质量问题。
四、数据获取的合规性与注意事项
这部分内容,我建议你认真看看。很多人觉得数据嘛,网上公开的,随便用。其实没那么简单。
| 注意事项 | 具体说明 |
|---|---|
| 数据来源授权 | 即使是免费数据,也要遵守数据提供方的使用协议。比如 Tushare 要求注册并遵守其积分规则 |
| 数据使用范围 | 个人研究和商业使用是两回事。商业使用需要获得授权,否则可能面临法律风险 |
| 数据存储与传播 | 不要将获取的数据二次分发或出售。我曾经见过有人把 Tushare 的数据打包卖,结果被起诉了 |
| 爬虫合规性 | 如果自己写爬虫,要遵守网站的 robots.txt 协议,控制请求频率,不要对服务器造成压力 |
| 数据准确性 | 免费数据源可能存在延迟或错误,建议做数据校验和清洗 |
特别提醒: 我曾经帮一个朋友处理过数据合规问题。他用了某网站的数据做量化策略,结果网站方发律师函说他侵犯了数据库版权。后来查了才知道,那个网站的数据虽然公开显示,但版权声明里明确写了“禁止商业用途”。所以,用数据前一定先看使用协议。
五、数据源选择建议
说了这么多,到底该选哪个?我个人的建议是:
- 做A股基本面量化: 首选 Tushare,它的财务数据最全最规范
- 需要实时行情或另类数据: 用 AKShare,数据源多、更新快
- 做美股或全球市场: 用 Yahoo Finance,简单稳定
- 追求数据质量: 多个数据源交叉验证,取交集或做一致性校验
你想想看,数据源选对了,后面清洗和分析的工作量能少一半。选错了,光数据对齐就能让你崩溃。
六、本章知识体系图
下面这张图,帮你理清本章的核心逻辑:
这张图把数据源选择的核心逻辑串起来了。你从中心出发,根据需求选数据源,最后一定要过合规这道关。
好了,数据源这块就聊到这儿。记住一句话:数据是量化投资的地基,地基不稳,楼盖得再高也白搭。下一章我们开始讲数据清洗的具体方法,到时候见。
公众号:蓝海数据掘金营,微信deep3321