Qlib Alpha158 因子库的构成与含义
Alpha158 是什么?
Alpha158 是 Qlib 内置的一套 158 维日频特征,面向股票截面:同一交易日、同一套规则下,每只股票得到 158 个数值,供传统模型或深度学习作为输入。名称里的「Alpha」指与基准无关的横截面信号维度(不表示一定赚钱);「158」是默认配置下的特征个数。
与「基本面因子」不同,Alpha158 几乎全是价量与由价量衍生的技术构造,便于在统一管线里复现、做实验对比。更完整的因子投资脉络见《因子投资入门》;因子好不好要用 IC、样本外表现等检验,而不是死记名字。
构成:三块拼成 158
在 Qlib 默认 Alpha158 配置下,可以这样记结构(与 Qlib 源码中的 Alpha158DL 一致):
-
K 线结构类(9 个)
由开、高、低、收组合而成,例如 KMID、KLEN、KMID2、KUP、KUP2、KLOW、KLOW2、KSFT、KSFT2,刻画实体长短、上下影、收盘在当日区间的位置等(无时间窗口,本质是当前这根 K 线的几何形状)。 -
当日价位相对收盘的归一化(4 个)
OPEN0、HIGH0、LOW0、VWAP0:把开盘、最高、最低、成交量加权均价除以收盘价,消掉价格量级,方便跨股票比较。 -
滚动窗口类(145 个 = 29 类算子 × 5 个窗口)
窗口一般为 5 / 10 / 20 / 30 / 60 个交易日;每一类算子在每个窗口上各生成一列。常见算子包括:- ROC:d 日前收盘相对现价的比例(变动率)
- MA:d 日均价 / 现价
- STD:d 日收盘标准差 / 现价(波动)
- BETA / RSQR / RESI:回归斜率、R²、回归残差(趋势与偏离)
- RANK / RSV / MAX / MIN / QTLU / QTLD:分位、极值、高低区间位置
- IMAX / IMIN / IMXD:距离高/低点出现日的相对时间(Aroon 思路)
- CORR / CORD:价与量(或对数成交量)的相关、涨跌与放量是否同步
- CNTP / CNTN / CNTD:上涨日占比、下跌日占比与差
- SUMP / SUMN / SUMD:涨跌能量占比(与 RSI 思路相近)
- VSTD / WVMA / VMA:成交量波动与量能均线
- VSUMP / VSUMN / VSUMD:成交量端的「涨跌」结构
命名习惯:后缀数字多为窗口长度,如 ROC5 与 ROC20 是同一算子、不同回望长度——比较它们可以看出模型更依赖短周期还是长周期形态。
在本面板里怎么用
- 因子页:列出按类别收纳的 Alpha158 名称与简短中文说明,便于「查字典」。
- 训练管线:实际进模型的往往是子集(例如特征筛选后的几十维);页面上若标注 FilterCol 入选特征,表示当前实验里真正喂给模型的列,不必等于全部 158 个。
- IC 展示:报告中常见的是模型预测或信号整体相对未来收益的 IC / Rank IC 时间序列;不是 158 列里每一列各有一条 IC。若要看单因子 IC,需要在研究流程里单独计算。
理解 Alpha158 的捷径:先记住 「形状 + 当日位 + 多窗口价量统计」,再在因子页点开几列名字,对照上表中的算子类别,把抽象符号变成可解释的图:动量、波动、趋势线性度、价量配合、涨跌天数占比等。
使用注意
- 泄漏与对齐:特征只能用当前及过去的数据;标签(未来收益)的定义要与特征对齐。Alpha158 作为 Qlib 标准特征,默认与 handler 的标签配置配套,自己改标签或拼接额外字段时要重新检查对齐。
- 中性化:行业、市值等带来的暴露会让某些技术列「看起来 IC 很高」;严谨研究里常与中性化、分层一并讨论(超越本篇入门范围)。
- 可替代性:许多列之间高度相关;158 是覆盖广的「基础套餐」,真正投产前几乎总会做降维或筛选。
小结
Alpha158 = 9 个 K 结构 + 4 个归一化价位 + 145 个多窗口价量算子,是 Qlib 里统一、可复现的技术特征基线。会用面板查名字、知道每类算子在讲什么故事,再把结果交给 IC 与回测评价,就与《学习目标与学习路径》里的「因子 → 模型 → 评价」串起来了。