数据方案的选型原则:与研究阶段匹配,并为升级留接口。个人研究用免费数据起步完全合理,但必须知道免费数据的口径边界在哪里——用错口径的免费数据,比没有数据更危险。
商业数据商
| 数据商 | 强项 | 量化视角备注 |
|---|---|---|
| Wind | 国内机构标准配置;宏观数据、一致预期、快讯最全 | 不同终端账号的导出权限不同;API(WindPy)稳定性一般 |
| 聚源(GilData) | 证券基础数据与财报的机构老牌口径 | 很多券商金工平台的底层数据源 |
| 同花顺 iFinD | 性价比高,API 友好 | 增长中的选择,行业分类口径与聚源有差异 |
| Bloomberg/Refinitiv | 全球市场、固收与外汇深度 | 成本高;国内 A 股口径反而不如本土商细 |
| 米筐 RQData/聚宽 JQData | 面向个人的 A 股 API,文档友好、复权处理正确 | 按调用计费;适合中等规模个人研究 |
机构选型的「隐藏维度」——价格表上看不见、却决定 PIT 可行性的三项,采购前应做实测样例验证:
- 历史回填质量:退市股票的行情与财报是否完整。测试方法:拉取乐视网(2019 退市)、康得新(2021 退市)、欣泰电气(2017 强退)三家 2015–2018 的完整日线与财报——任何一张表缺月,你的小市值/ST 研究就有洞(幸存者偏差的源头,见数据清洗 );
- 公告日字段准确性:抽查 10 份年报,对照巨潮资讯网的原始公告日期——数据商把「报告期」当「公告日」填充的字段并不罕见,这一项错,所有基本面因子全错;
- 修正存档:GDP/盈利预测被修正后,能否取到「当年首次发布值」。不能 = 宏观与一致预期因子的回测全部带前视。
开源与免费数据
| 来源 | 覆盖 | 适用 | 主要边界 |
|---|---|---|---|
| akshare | 极广(股、期货、宏观、另类) | 探索、原型 | 接口爬取公开网页,稳定性与口径一致性无保证;勿用于生产 |
| tushare | A 股为主,积分制 | 个人日频研究 | 财务数据有公告日字段(可贵),高频受限 |
| baostock | A 股日线 | 轻量入门 | 无财报、复权口径需验证 |
| yfinance | 美股/全球 | 海外研究 | Yahoo 口径,复权与停牌处理粗糙 |
| 交易所官网 | L2 样本、月度统计 | 制度研究 | 格式各异,需自行清洗 |
免费数据的三个必检项(任何来源都要过,附具体检查动作):
- 复权因子正确性:挑 3 只高分红股(如工商银行、长江电力、双汇发展),对每个除息日验证:
后复权价差 ≈ 分红金额 + 除权缺口。对不上的来源,所有收益计算作废; - 公告日字段:随机抽 5 条财报记录,对照巨潮公告原文日期——有公告日的来源(tushare Pro)才配做基本面因子;
- 退市样本存在性:查询 2018 年前上市、现已退市的股票名单,能取到行情的占比 < 90% = 样本有系统性漏洞。
爬虫:能力与红线
技术能力不是问题,合法边界才是。国内框架下的三条硬红线:
- 《数据安全法》/《个人信息保护法》:不得爬取个人身份信息(手机号、身份证、住址);不得大规模抓取重要数据出境;
- robots 协议与反爬对抗:绕过验证码、破解加密接口、伪造 UA 高频抓取,可能触碰《反不正当竞争法》与《刑法》非法获取计算机信息系统数据罪——「技术上能爬」不等于「法律上能爬」;已有量化从业者因爬取并商用券商研报数据被追究的先例;
- 授权数据的再分发:用商业数据商的数据训练的因子值对外销售,通常违反授权协议——机构内部这也是审计重点。
合规的替代路线:优先用官方公开 API(交易所、统计局、中登公司月报);需要另类数据时采购有授权的供应商产品;爬虫仅限于对公开、非个人、低频信息的温和获取(并保留合规审查记录)。
数据方案的阶段化建议
| 阶段 | 方案 | 月成本量级 | 升级触发点 |
|---|---|---|---|
| 学习与原型 | akshare/baostock + 本地 CSV | 0 | 因子数 > 3 或回测区间 > 5 年 |
| 严肃个人研究 | tushare Pro 或 JQData/RQData + Parquet 本地库 | 几百元 | 涉及财报因子 / 开始模拟盘 |
| 小型私募/产品 | iFinD/聚源 API + 自建 PIT 库 + L2 采购 | 数万元 | 产品化 / 对外披露业绩 |
| 机构 | 多源冗余(主源 + 校验源)+ 数据团队 | 数十万以上 | — |
多源校验值得强调:生产级系统永远不应该只有单一数据源——每天收盘后跑一次「主源 vs 校验源」的抽查比对(收盘价、成交量、股本),差异超阈值即告警。真实案例形态:某数据商接口升级时把复权因子口径静默改掉,单一数据源的用户两周后才从「策略绩效异常」倒查出原因——而多源校验的用户当晚就收到告警(监控设计见数据质量监控 )。数据商也会出错,而你的策略没有借口。