免费数据源地图:akshare、tushare与朋友们
我的掌握程度:
先掌握这个答案
数据源地图:①akshare:完全免费、覆盖最广(股票/基金/期货/债券/宏观/加密),接口多但稳定性一般(网页抓取);②tushare:积分制(注册+活跃可攒),数据规整、文档清晰,财务数据好用;③yfinance:美股/全球行情;④ccxt:加密货币交易所统一接口;⑤baostock:A股历史K线,稳定免费。机构级:Wind/Choice/聚源(付费)。
先读结论,再核对下方使用边界;数字例题为教学情景,涉及实际行情与规则时请核对原始来源。
从理解到使用
本阶段实战方法 · 把行情数字变成可比较的收益
看股票、基金或策略业绩时,先对齐本金、起止日期、现金流与费用。
- 选一个固定区间,记录期初价值、期末价值、分红、出入金和交易费用。
- 没有中途出入金时,用(期末价值+已取出分红-期初价值-费用)÷期初价值计算收益;有出入金时先区分时间加权与资金加权。
- 用相同区间的基准作比较,同时记录最大亏损;不要单凭一次盈利评价能力。
使用边界
- 不同期限的收益不可直接排名;年化只是换算,不是未来收益承诺。
- 模拟价格不是实时行情。普通股票交易手数、T+1和费用应按具体市场规则核对。
背景 · 从一个困惑说起
二十年前,历史行情数据要花钱买光盘;如今开源社区把行情、财务、宏观、另类数据聚合进一个pip包。数据壁垒的倒塌,是个人量化得以存在的时代背景。
由此产生的问题
主要免费数据源各自的特长和局限是什么?怎么搭建自己的「数据获取」函数?
核心概念
数据源地图:①akshare:完全免费、覆盖最广(股票/基金/期货/债券/宏观/加密),接口多但稳定性一般(网页抓取);②tushare:积分制(注册+活跃可攒),数据规整、文档清晰,财务数据好用;③yfinance:美股/全球行情;④ccxt:加密货币交易所统一接口;⑤baostock:A股历史K线,稳定免费。机构级:Wind/Choice/聚源(付费)。
为什么需要它
①零成本启动:本课程全程免费数据源可完成;②工程习惯:写带缓存的数据获取函数(下载一次存本地parquet,避免重复请求+接口限频);③口径责任:免费数据的清洗责任自负(复权、停牌、退市——恰好是阶段4的全部内容)。
实际应用场景
标准模式:循环股票列表→逐个下载→统一字段名→存parquet→下次直读本地。附带工具:交易日历、指数成分、行业分类,这些「元数据」同样来自数据源。
与之前知识的联系
q-060的字段知识落地为具体接口返回值。q-063的前视偏差风险部分来自免费财务数据的「公告日期」缺失——数据源选择的隐性影响。
⚠ 常见误解
- 免费数据=现成可用:脏数据、口径不一、幸存者偏差都在等你清洗(这正是价值所在)
- 一个数据源包打天下:交叉验证(两个源比对同一数据)是数据工程的基本动作
- 接口报错是数据源烂:多为限频/接口变更,写重试+缓存就解决大半
🛠 本题实践任务
用fetch_and_cache模式下载3只股票的日线到本地缓存,验证第二次调用明显变快。这就是你的数据管道第一块砖。
💡 提示(先自己想5分钟再看)
需要 pip install pyarrow(parquet引擎);报错先检查网络与限频。
✅ 验收标准
3个parquet文件+两次调用的时间对比。从此你的研究不再被网络和限频绑架。
在你的浏览器内运行。首次需联网下载 Python;支持标准库和 Pyodide 提供的 NumPy、pandas 等包。行情抓取、系统文件访问和部分第三方库请在本地环境运行。输出自检仅比对结果关键词,不代替逻辑审查。
Python · 独立工作线程 · 执行限时10秒
🤖 AI导师
导师会先检查你的前置知识(日线字段),再用案例、公式和代码帮助理解。此功能需要先启用服务。