数据源介绍:免费与付费数据源的全面对比
做量化投研,第一件事就是搞定数据。
数据是量化策略的「原材料」。没有数据,再牛的模型也跑不起来。我个人习惯把数据源分成两类:免费的和付费的。今天咱们就来掰扯掰扯,这两类数据源到底怎么选。
免费数据源:Tushare、AKShare、Yahoo Finance
免费数据源最大的优势就是——不要钱。但代价也很明显:不稳定、数据质量参差不齐、接口随时可能变更。
Tushare
Tushare 是国内最早一批开放的金融数据接口。我2017年刚入行时就在用。它覆盖了股票、基金、期货、宏观经济等数据。
不过要注意,Tushare 现在对部分数据做了积分限制。积分不够,很多接口调不了。说白了,免费版只能拿到最基础的数据。
核心特点:
- 数据种类丰富,覆盖A股、港股、美股
- 需要注册获取token
- 部分高级数据需要积分(可通过贡献获取)
- 文档相对完善,社区活跃
# Tushare 基础用法示例
import tushare as ts
# 设置token(需要去官网注册)
ts.set_token('your_token_here')
pro = ts.pro_api()
# 获取日线数据
df = pro.daily(ts_code='000001.SZ', start_date='20240101', end_date='20240301')
print(df.head())
AKShare
AKShare 是我最近两年用得比较多的免费库。它最大的特点是「开源且持续更新」。开发者是个狠人,几乎每周都在更新数据源。
我曾经在做一个行业轮动策略时,需要获取各行业的估值数据。Tushare 的积分不够,Wind 又太贵。最后用 AKShare 搞定了,虽然代码多写了几行,但数据质量还不错。
我的建议:AKShare 适合做研究阶段的数据获取。它覆盖了股票、基金、债券、期货、外汇、宏观经济等。但生产环境慎用,因为接口可能突然变更。
# AKShare 基础用法示例
import akshare as ak
# 获取A股日线数据
stock_zh_a_hist_df = ak.stock_zh_a_hist(symbol="000001", period="daily",
start_date="20240101", end_date="20240301", adjust="qfq")
print(stock_zh_a_hist_df.head())
Yahoo Finance
Yahoo Finance 是国际市场的首选免费数据源。做美股、港股、加密货币的量化策略,基本绕不开它。
但有个坑——Yahoo Finance 的接口经常被墙。我在国内用的时候,经常需要挂代理。而且数据延迟比较严重,不适合做高频交易。
避坑指南:我曾经在回测一个美股动量策略时,用了 Yahoo Finance 的数据。结果发现复权数据有偏差,导致回测结果和实盘差了5个点。后来改用 yfinance 库的 auto_adjust 参数才解决。
# Yahoo Finance 基础用法示例(使用 yfinance 库)
import yfinance as yf
# 获取苹果公司股票数据
aapl = yf.Ticker("AAPL")
hist = aapl.history(period="6mo")
print(hist.head())
付费数据源:Wind、聚宽、米筐
付费数据源,说白了就是花钱买省心。数据质量、稳定性、客服支持都远胜免费方案。但价格嘛...嗯,小团队和个人用户需要掂量掂量。
Wind(万得)
Wind 是国内金融数据的老大哥。几乎所有券商、基金公司都在用。数据覆盖最全,更新最快,质量最高。
我曾在某私募工作时,公司买了 Wind 终端。那体验确实好——数据一键导出,Excel插件直接拉数据,API接口稳定得一批。但价格也感人,一年几万到十几万不等。
适用场景:机构用户、专业投资者、需要高频数据或深度财务数据的场景。
# Wind Python接口示例(需要安装Wind终端)
from WindPy import w
w.start()
# 获取股票日线数据
data = w.wsd("000001.SZ", "open,high,low,close,volume", "2024-01-01", "2024-03-01", "")
print(data.Data)
聚宽(JoinQuant)
聚宽是国内量化平台里做得比较早的。它提供数据、回测、实盘一体化服务。数据质量不错,而且有免费额度。
我个人觉得聚宽最大的优势是「开箱即用」。你不需要自己搭建数据库,直接在平台上写策略、跑回测。适合刚入门的量化爱好者。
我的经验:聚宽的数据在日频策略上表现很好。但如果你需要分钟级甚至 tick 级数据,建议还是用 Wind 或米筐。
# 聚宽数据获取示例(在聚宽平台内运行)
from jqdata import *
# 获取股票行情数据
df = get_price('000001.XSHE', start_date='2024-01-01', end_date='2024-03-01',
frequency='daily', fields=['open','close','high','low','volume'])
print(df.head())
米筐(RiceQuant)
米筐和聚宽类似,也是量化平台。但米筐的数据更偏向专业投资者。它的因子库、财务数据、另类数据都比较全。
我记得有一次做多因子策略,需要用到分析师预期数据。聚宽没有,Wind 太贵。最后在米筐找到了,而且数据质量还不错。
注意:米筐的免费额度比较少。如果你只是做研究,建议先用聚宽或免费数据源。等策略成熟了,再考虑付费升级。
# 米筐数据获取示例(在米筐平台内运行)
from rqdatac import *
# 初始化(需要账号)
init('your_username', 'your_password')
# 获取股票行情数据
df = get_price('000001.XSHE', start_date='2024-01-01', end_date='2024-03-01',
frequency='1d', fields=['open','close','high','low','volume'])
print(df.head())
数据源对比总表
| 数据源 | 类型 | 覆盖范围 | 数据质量 | 稳定性 | 价格 | 推荐场景 |
|---|---|---|---|---|---|---|
| Tushare | 免费 | A股、基金、期货 | 中等 | 中等 | 免费(部分收费) | 个人研究、学习 |
| AKShare | 免费 | 全市场 | 中等 | 较低 | 免费 | 研究、原型验证 |
| Yahoo Finance | 免费 | 全球市场 | 中等 | 较低 | 免费 | 美股、加密货币 |
| Wind | 付费 | 全市场 | 高 | 高 | 数万/年 | 机构、专业策略 |
| 聚宽 | 付费 | A股、基金 | 较高 | 高 | 有免费额度 | 入门、日频策略 |
| 米筐 | 付费 | A股、因子数据 | 较高 | 高 | 有免费额度 | 多因子、专业研究 |
数据源选择框架
说了这么多,到底怎么选?我总结了一个简单的决策流程:
- 先看预算——没钱就免费,有钱就付费
- 再看需求——做A股还是美股?日频还是高频?
- 最后看稳定性——研究阶段可以容忍接口波动,生产环境必须稳定
我个人建议的搭配方案:
- 学习阶段:AKShare + Tushare 免费版
- 研究阶段:聚宽/米筐免费额度 + AKShare
- 生产阶段:Wind + 聚宽/米筐付费版
核心观点:没有最好的数据源,只有最适合你的数据源。免费数据源适合探索和验证想法,付费数据源适合落地和执行策略。别在数据上省钱,也别在数据上浪费钱。