investment_data
收藏资源简介:
全流程可追溯、自动更新的开源金融行情数据集,包含中国A股市场行情、复权因子、交易日历、证券信息、指数成分权重和Tushare daily_basic指标,旨在解决Qlib原生数据更新失效、数据源脏、幸存者偏差等问题。
A fully traceable and automatically updated open-source financial market dataset that covers China A-share market quotes, adjustment factors, trading calendars, security information, index component weights, and Tushare daily_basic indicators. This dataset is designed to resolve problems such as failed updates of native Qlib data, unclean data sources, and survivorship bias.
investment_data:Qlib 中国市场数据导出与发布工具
项目概述
本项目提供从配置好的 MySQL 数据库读取中国市场行情、复权因子、交易日历、证券信息、指数成分权重以及 Tushare daily_basic 指标,生成可供 Microsoft Qlib 使用的二进制数据的完整工具链。同时提供配套的 deep-alpha 离线数据命令行工具,支持数据下载、检查与更新。
数据发布包结构
每次正式发布包含两个相互兼容的文件:
- qlib_bin.tar.gz:主 Qlib 数据包,包含交易日历、证券列表、行情 Feature 和指数成分。
- daily_basic_qlib_features.tar.gz:
daily_basicFeature 增量包,安装到主 Provider 的features/目录中。
两个包使用完全相同的 Qlib 交易日历,发布前会验证日历 SHA-256,避免 Feature 日期偏移。使用时必须从同一 GitHub Release 标签下载两个文件,不可混用不同日期的资产。
快速使用方法
下载与安装
- 使用
wget或 GitHub CLI 下载主数据包与增量包。 - 通过
tar解压主数据包到 Qlib 默认目录(需使用--strip-components=1)。 - 使用安全安装器
qlib/install_feature_increment.py安装增量包,安装器会校验归档路径、manifest、SHA-256、日历兼容性,并拒绝覆盖来源不明的同名 Feature。 - 安装完成后,可在 Qlib 中通过一次
qlib.init()联合查询行情与daily_basic指标。
数据下载与更新
- 使用
deep-alpha download下载基础行情,deep-alpha download --dataset daily-basic下载每日指标。 - 使用
deep-alpha update更新基础行情,deep-alpha update --dataset daily-basic更新每日指标。 - 使用
deep-alpha info检查本地数据。
数据同步与回填
- 通过
python tushare/sync_daily_basic.py同步当天daily_basic数据,默认定位到交易日历中最近开盘日,支持幂等 upsert。 - 支持按日期范围进行历史回填,提供
--skip-existing、--request-interval、--batch-size等参数控制同步行为。
数据处理规则
- 行情复权与归一化:主行情构建经过复权计算(
adjclose = close × adj_factor)和 Qlib 标准化流程,$open、$high、$low、$close、$vwap为复权归一化序列,不代表原始成交价;daily_basic指标保持数据库原值,不复权、不归一化。 - 日历对齐:增量包构建时读取基础 Provider 的
calendars/day.txt,manifest 保存日历起止日期、行数和 SHA-256,安装前验证日历兼容性,增量包自身不携带或替换日历。
daily_basic 字段说明
当前增量包包含 15 个 Feature:
| 字段名 | 中文名称 | 详细解释 |
|---|---|---|
| turnover_rate | 换手率(日) | 当日股票成交股本/流通股本×100%,衡量个股当日交易活跃度 |
| turnover_rate_f | 自由流通换手率 | 当日成交量/自由流通股本计算的换手率,反映散户/短线资金交易热度 |
| volume_ratio | 量比 | 当前累计成交量/过去5日同一时段平均成交量,判断资金异动 |
| pe | 静态市盈率 | 总市值÷上一完整会计年度归母净利润 |
| pe_ttm | 滚动市盈率(TTM) | 总市值÷过去连续12个月归母净利润,平滑季度业绩波动 |
| pb | 市净率 | 总市值÷归属母公司股东净资产,重资产、银行、周期股核心估值指标 |
| ps | 静态市销率 | 总市值÷上一年度营业收入,适用于未盈利但营收增长的企业 |
| ps_ttm | 滚动市销率(TTM) | 总市值÷过去12个月累计营业收入 |
| dv_ratio | 静态股息率 | 上一完整年度现金分红总额/当前总市值×100% |
| dv_ttm | 滚动股息率(TTM) | 过去12个月实际现金分红总额/当前总市值 |
| total_share | 总股本 | 上市公司全部发行股份总数(限售股+流通股) |
| float_share | 流通股本 | 二级市场可正常交易的股份 |
| free_share | 自由流通股本 | 在流通股本基础上剔除大股东、战略投资者长期持有股份 |
| total_mv | 总市值 | 总股本×当前股票收盘价 |
| circ_mv | 流通市值 | 流通股本×当前股票收盘价 |
构建与发布流程
- 主数据包通过
./dump_qlib_bin.sh构建,支持并发数控制、新鲜度检查等配置项。 - 增量包通过
DAILY_BASIC_BASE_PROVIDER指定基础 Provider 后执行./dump_daily_basic_qlib_features.sh构建,归档仅包含白名单 Feature、manifest、checksums 和构建报告。 - 发布前使用
python qlib/validate_release_archives.py联合校验两个包的日历一致性,最后执行./upload_release.sh发布。
安全与故障恢复
- 要求
.env、数据库密码、Tushare Token 和 GitHub Token 不得提交。 - 发布前必须同时验证主包和增量包。
- 使用安全安装器安装增量包,安装器会创建备份和恢复 journal,支持
--recover恢复、--uninstall daily_basic卸载。 - 定时发布采用锁保护,后台任务通过状态文件区分不同状态。
贡献指南
- 增加指数需扩展数据采集逻辑、确认历史记录并修改指数权重输出配置。
- 增加数据源或字段需创建 Issue 讨论,说明数据用途、来源授权、回填方式、更新机制、验证方案等,新增 Feature 须使用显式白名单。




