qlib158 vs alpha101 因子库对比:新手量化选型指南与完整 IC 横评流程
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
Vibe-Trading 的 Alpha Zoo 内置了 qlib158 和 alpha101 两大经典因子库。本文给出一张对照表、逐场景的唯一推荐,以及可直接复制执行的 IC 横评命令,帮你在 10 分钟内选定适合自己的因子库并动手验证。
新手先选哪个:结论先行
大多数场景下默认选qlib158:它只用 OHLCV 价量数据,公式都是单窗口统计量,学因子逻辑时读起来门槛最低;alpha101则更适合已经在直接写横截面多空策略、想要可排名 alpha 值的用户。选得对不对,不靠感觉——先看差异,再用下面的验证流程让数据说话。
qlib158 和 alpha101 区别:一张表看懂
Alpha Zoo 共有 460+ 个预置因子,按 qlib158、alpha101、GTJA191、academic、fundamental 五个家族组织,全部跑在同一套防前视(lookahead)的算子框架里。这两家的核心差异如下:
| 维度 | qlib158 | alpha101 |
|---|---|---|
| 因子数量 | 约 158 个 | 101 个 |
| 出处 | 微软开源 Qlib(Apache-2.0) | Kakushadze 2015 年论文《101 Formulaic Alphas》(arXiv:1601.00991) |
| 数据需求 | 仅 OHLCV(开高低收 + 成交量) | 仅 OHLCV(部分公式含额外排名/衰减窗口) |
| 公式复杂度 | 低:均线、动量(ROC)、波动(STD)、量价相关(CORR)等单窗口统计量,按 5/10/20/30/60 日窗口展开 | 高:rank、ts_rank、decay_linear、SignedPower 等操作符多层嵌套 |
| 主要用途 | 喂给 ML 模型做特征 | 直接横截面选股:按因子值排名做多头/空头 |
| 可解释性 | 高 | 中 |
| 过拟合风险 | 低 | 相对更高,需严格验证 |
| 支持市场 | A股 / 美股 / 港股 / 印度 / 韩国 | 美股 / 印度 / 韩国 |
代码分别在 agent/src/factors/zoo/qlib158/ 和 agent/src/factors/zoo/alpha101/。两者在 Vibe-Trading 里接口统一:每个因子文件暴露compute(panel)函数与__alpha_meta__元数据(主题标签、适用市场、预热期等),由 registry.py 统一注册,样本正确性分别由 test_qlib158_samples.py 和 test_alpha101_samples.py 钉死。
场景化选型:按"你是谁、要做什么"对号入座
| 你的场景 | 推荐 | 一句理由 |
|---|---|---|
| 刚入门,想逐个看懂因子在算什么 | qlib158 | 如 roc20.py 的公式就是close_t / close_{t-20} - 1,20 日收益率 |
| 搭 LightGBM / 神经网络等 ML 选股模型 | qlib158 | 本就为特征工程设计,计算轻量、迭代快 |
| 直接做横截面多空策略 | alpha101 | 天然输出可排名的 alpha 值,alpha_001.py 等每个公式都带中文名与用途说明 |
| 因子研究、找超额收益来源 | 两库各跑一次 bench 对比 | 主题互补:alpha101 偏微观结构与短期反转,qlib158 偏多窗口量价统计 |
| 最在意稳健性、想排除伪因子 | bench 加--strict参数 | 训练/测试 OOS 切分 + 随机对照,专治"跟随市场 beta" |
动手验证:一行命令跑 IC 横评
IC(Information Coefficient,信息系数)衡量因子值与下期收益的相关性,越高预测力越强;IR = IC 均值 / IC 标准差,衡量信号稳定程度。内置评测器 alpha bench 会在指定股票池与区间上对整库因子算出 IC 均值、IR、IC 为正比例,并归为三类(核心逻辑在 bench_runner.py):
- alive(存活):ic_mean > 0.02 且 IC 为正比例 ≥ 55% 且 |t| > 2
- reversed(反转):ic_mean < -0.02 且 |t| > 2,方向反了,取反后仍可用
- dead(失效):其余全部
对两库分别执行:
vibe-trading alpha bench --zoo qlib158 --universe csi300 --period 2018-2025 --top 20 vibe-trading alpha bench --zoo alpha101 --universe csi300 --period 2018-2025 --top 20报告默认输出 HTML 到~/.vibe-trading/reports/,按 IR 列出 Top N 因子并附公式,两库的存活率分布一眼可对比。三个进阶玩法:
- 两两对决:
vibe-trading alpha compare qlib158_roc20 alpha101_001 --sort ir,只评估你点名的因子并标出与榜首的差距;核心在 compare_runner.py,CLI / Web UI / REST / agent 工具四端共用同一套实现; - 严格模式:追加
--strict,会做同股票池随机对照 + 训练/测试 OOS 切分,是判断因子能否长期用的关键一步; - 交给 Agent:聊天里直接说"帮我横评 qlib158 和 alpha101 在沪深300上的表现",alpha-zoo 技能会自动调度
alpha_zoo(查库)与alpha_bench(跑评)两个工具。
避坑提醒:跨股票池衰减与伪因子筛查
⚠️ 两个新手最容易踩的坑:
- 跨股票池衰减:在 CSI300 存活的因子换到 SP500 可能大面积失效。别在单一股票池下结论,至少跑
--universe csi300和--universe sp500两池横评后再比较。 - 伪因子筛查:IC 高不等于有效,可能只是在跟随市场 beta。用
--strict的随机对照 + OOS 切分复跑,因子依然显著才算数,否则从候选里划掉。
三步动手清单
✅ 行动路线很简单:
- 克隆仓库:
git clone https://gitcode.com/GitHub_Trending/vi/Vibe-Trading - 按 README 安装依赖并完成初始化;
- 跑上面两条 bench 命令,用 HTML 报告里的 alive 率决定你的第一套因子库。
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考