qlib158 vs alpha101:新手先跑哪套因子库?3 分钟横评给你答案
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
刚上手量化选股,qlib158 和 alpha101 两套经典因子库摆在面前,不知道该先跑哪个?它们在 Vibe-Trading 的 Alpha Zoo 里共用同一套评测管线,这条横评能把你自己搭 IC 评测省掉的那部分时间还给你。
10 秒定位:两张身份档案卡
| 档案项 | qlib158 | alpha101 |
|---|---|---|
| 因子数量 | 154 个 | 101 个 |
| 出处 | 微软 Qlib Alpha158(Apache-2.0,锁定 commit) | Kakushadze 2015 论文(arXiv:1601.00991) |
| 数据需求 | 仅 OHLCV | 仅 OHLCV |
| 公式复杂度 | 单窗口统计量 | rank/ts_rank/decay_linear 多层嵌套 |
| 产出形态 | ML 模型特征 | 直接横截面选股信号 |
| 上手成本 | 低,公式一眼能懂 | 高,需逐段读公式 |
一句话概括:qlib158 是地基,alpha101 是精装修。
代码量对比:小白能不能一眼读懂
翻开 roc20.py,全部实现是一行safe_div(c, c.shift(20)) - 1.0,也就是 20 日收益率,公式和逻辑零翻译成本。再看 alpha_001.py,公式是rank(ts_argmax(SignedPower((returns<0)?stddev(returns,20):close, 2.), 5)) - 0.5:条件三元、20 日波动、带符号幂、5 日窗口 argmax、截面 rank 层层套着,想确认它到底在算什么,得一段一段拆。结论直接:如果你的目标是搞懂每个因子在干什么,qlib158 的学习曲线平缓得多;alpha101 更考验耐心。
产出形态:喂模型的特征 vs 直接下场的信号
qlib158 的 roc20 输出的是原始收益率数值,本身不是买卖依据——它的定位是喂给 LightGBM 或神经网络做特征矩阵,alpha158 的设计目标本来就是机器学习特征工程。alpha101 的 alpha_001 输出则可直接横截面排名:做多排名前 10%、做空后 10%,因子值就是信号,中间不需要任何模型。所以你的下游是模型还是裸策略,直接决定选哪套。
适用市场:A 股玩家先查这张元数据
qlib158 每个因子__alpha_meta__里的universe是equity_us / equity_cn / equity_hk / equity_in / equity_kr,五个市场全带;alpha101 全系只有equity_us / equity_in / equity_kr。做 A 股或港股研究时 alpha101 在目录层面就缺席,不是"表现差",是没有资格参赛;做美股两个都在场,才轮得到用数据说话。想查某个因子的元数据,vibe-trading alpha show <id>一条命令就够。
数据依赖与计算成本:同吃 OHLCV,身价差在嵌套
两个库的columns_required都只到 OHLCV,拉数据的成本没有差别,差在公式嵌套深度。qlib158 是单层滚动统计,alpha101 多层算子叠加,bench 按因子并行计算时单因子耗时更长,整库跑完的时间差肉眼可见。另外看预热期:roc20 的min_warmup_bars是 20,alpha_001 是 25——窗口越深的因子,评估区间头部损耗越多,选评估区间时把这段留给预热。
一条命令跑通 IC 横评,状态三色判读
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输出里每个因子带三个数:ic_mean、IR、ic_positive_ratio,按 IR 排 Top 20,核心判读逻辑在 bench_runner.py。判读规则是三档:🟢 alive 要求 ic_mean > 0.02 且 IC 为正比例 ≥ 55% 且 |t| > 2;🔴 reversed 是 ic_mean < -0.02 且 |t| > 2——方向跑反了,取反仍可用;⚪ dead 是其余。看到某因子在 CSI300 上 alive,别急着当结论,换--universe sp500重跑一遍再下判断,跨股票池的存活率不能假设。加--strict会追加同股票池随机对照和训练/测试样本外切分,专门筛掉只跟市场 beta 走的伪因子,判断耐用性时这一步别省。进阶用vibe-trading alpha compare <id1> <id2> ... --sort ir点名几个因子同台对决,只评估点名的,并标出与榜首的差距,实现见 compare_runner.py。
对号入座:三条决策分支
- 如果你是刚入坑、想先把每个因子读懂再动手 → 选 qlib158,因为公式全透明,卡住的概率小;
- 如果你要搭 LightGBM / 神经网络的选股模型 → 选 qlib158,因为它本就是为特征工程设计的,多窗口量价统计直接进特征矩阵;
- 如果你要做横截面多空组合、不打算上模型 → 选 alpha101,因为它的因子值天生可排名,跳过建模一步;
- 如果你要研究超额收益来源 → 两个库都跑 bench,再用
alpha compare点名对决,alpha101 偏微观结构与短期反转、qlib158 偏多窗口量价,主题互补。
单库的"耐用"从来不是绝对——把 bench 跑一遍,答案在 alive 那几行里 📊
【免费下载链接】Vibe-Trading"Vibe-Trading: Your Personal Trading Agent"项目地址: https://gitcode.com/GitHub_Trending/vi/Vibe-Trading
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考