feat: add Tushare Qlib data bridge

This commit is contained in:
2026-07-26 13:41:24 +08:00
parent 48c5f64bbd
commit e5911ca454
15 changed files with 1804 additions and 8 deletions
+35
View File
@@ -26,6 +26,7 @@ Quant OS 是项目名;`quant60` 是第一版 A 股 Baseline 的 Python
| 聚宽 hosted | 可上传的 Python 单文件,直接回测 portable baseline | 2024 全年、100 万资金的真实 hosted run 已完成且可见日志无 ERROR;另有 bundle/fake/mock 合约 | 仍需完整导出、相同输入本地 peer 与逐层差异报告 |
| QMT built-in/qmttools | 可上传/驱动的硬 backtest-only portable baseline;固定中证 500 benchmark、10% 参与率、PIT 成分/ST | Python 3.6 语法、fake/qmttools 合约 | 需要已授权 QMT 客户端、历史 ST 数据权限/正例探针与实跑导出 |
| Qlib 0.9.7 | native momentum backtestAlpha158/LightGBM CLI/Recorder 工作流 | Python 3.12 两条 fixture 已真实跑通,并保存表级 hash、行列/时间边界和重算指标 | synthetic 两股票没有投资价值;无真实 OOS、L3/L4 parity |
| Tushare → Qlib | 只读盘点 completed Parquet、校验 checksum、构建/验证不可变 provider、运行本地回测 | 93 个 completed 文件已验证;早期未复权 provider 与两次 byte-identical momentum run | 下载仅到 1993-10;缺复权、真实 benchmark、历史成分/ST/停牌/涨跌停,不能进入生产 decision |
| XtTrader shadow | 只读账户查询、HMAC 账户绑定、broker observation/snapshot、零下单 target-diff 计划与完整 verifier | fake broker/QMT 合约;所有 broker mutation 均不可达 | 需要授权 QMT 环境的账户合同探针、20 日影子、恢复/对账和券商确认 |
跨四个引擎当前共同的、可冻结生产基线是
@@ -375,6 +376,40 @@ python -m pip install -r requirements/research-py312.txt
python -c "import qlib; assert qlib.__version__ == '0.9.7'"
```
### 使用本地 Tushare 镜像
`tools/tushare_qlib.py` 不调用 Tushare、不读取 token,也不修改镜像。它只接受
SQLite 中状态为 `completed` 且文件大小、SHA-256、Parquet 行数一致的分区;
生成新 Qlib provider 时保存 source job、build parameter、converter hash、
tree hash 与可重算 `data_version`,并拒绝覆盖已有目录。
```bash
export TUSHARE_MIRROR_ROOT=/path/to/tushare-mirror
PYTHONPATH=src:. python tools/tushare_qlib.py inventory \
--mirror-root "$TUSHARE_MIRROR_ROOT" \
--output-json artifacts/tushare-inventory.json
PYTHONPATH=src:. python tools/tushare_qlib.py build \
--mirror-root "$TUSHARE_MIRROR_ROOT" \
--output-dir data/qlib/tushare-early-v1 \
--start 1990-12-19 --end 1993-10-29 \
--minimum-observations 60 \
--allow-unadjusted \
--ohlc-policy expand-range \
--output-json artifacts/tushare-qlib-build.json
PYTHONPATH=src:. python tools/tushare_qlib.py verify \
data/qlib/tushare-early-v1
```
当前镜像只有 1990-12—1993-10 日线,且没有 `adj_factor`、真实指数行情、
历史成分、ST、停牌和涨跌停数据。因此 `--allow-unadjusted` 是显式技术
smoke 降级,provider 固定 `production_eligible=false`
`investment_value_claim=false``gate_credit=[]`。盘点、字段口径、完整命令、
v4 hash 与两次本地回测结果见
[`docs/TUSHARE_LOCAL_DATA.md`](docs/TUSHARE_LOCAL_DATA.md)。
native momentum smoke
```bash