← Alpha Agent · 所有主题
Topic 8 · 应用 / 案例研究

将 AlphaForge 应用于通用行业排序 alpha

将本次研讨会的方法应用于一个实盘模型:一个通用横截面排序模型(universal cross-sectional ranking model)、 行业中性(sector-neutral)的排序 alpha。AlphaForge 在这里的贡献并不是公式生成——而是它的动态组合(dynamic combination)模块。把每个行业当作一个专家(expert),让 AlphaForge 基于信息系数(Information Coefficient, IC)/ 信息比率(ICIR)门控的组合器每月决定该倚重哪些专家,你就得到了一个行业专家混合(Mixture of Sector Experts)的元 alpha。是 Topic 6 的纪律使它保持诚实。

1 · 基础 alpha 及其诚实的状态

本案例研究是一个通用横截面排序模型(universal cross-sectional ranking model):数据 → ML 排序 → 行业内排序 → 行业中性(sector-neutral)多空构建,在市值前约 35%(top ~35% by market cap) 的美股池上月度调仓(monthly rebalance)(随时间重新排序)。其声称的画像很有吸引力——2003–2024 年间长期夏普比率在 1.3–1.5 区间,收益无法被 FF5+动量(FF5+Momentum)跨度解释,约 90% 的 PnL 来自多头(赢家识别)腿,并且 alpha 集中在某些行业、在另一些行业偏弱(尤其是金融业)。

调仓频率与股票池化解了两个最大的过拟合(overfitting)嫌疑。月度调仓意味着低换手率 (turnover)(净 ≈ 毛——成本这一致命因素基本消失),并且关键在于它不可能在收割短期反转(short-term reversal, STR)——后者是日度/周度效应——因此"FF5 无法解释它"作为真实而非重新包装的 STR 就更可信了。市值前 35% 的股票池不是微盘垃圾股,所以容量(capacity)是可信的。月度 + 低换手 + 广股票池 + FF5 无法解释 + 20 年, 这些都是稳健信号的标志,而非过拟合信号的标志。
仍需确认的事项(基础层)。在为它加冕之前还有两项检验: (i) 时点(point-in-time, PIT)完整性——无幸存者偏差(survivorship bias)的股票池,包含退市 收益、PIT 基本面与 PIT GICS(多头赢家倾斜正是幸存者偏差会夸大的东西);以及 (ii) 90% 多头问题——确认这是多头腿在美元中性账簿中的 PnL 贡献(有吸引力),而不是 净多头敞口(鉴于 2003–2024 的牛市,那会使夏普的很大一部分变成市场贝塔(market beta))。运行包含 MKT 的跨度 回归;报告市场贝塔以及 2008 / 2022 年的回撤。参见 Topic 6
过拟合(overfitting)风险不在基础模型里——它在你即将添加的组合器里。基础排序器数据丰富 (数千只股票 × 约 252 个月度横截面)。而下面的动态组合器只在约 252 个月度观测 × 约 11 个相互相关的 行业专家(sector expert)上运作,且带有可调的门控阈值。按照每个参数约 30–50 个观测的经验法则,252 个月只能支撑一个总共约 5–8 个参数的稳健组合器——每月重新拟合的 11 维权重向量已经超出了这个预算。同一 框架,相反的结论:纯粹从数据比例上看,AlphaForge 在信号层是安全的,在组合器层是危险的。§4–§5 正是为遏制这一点而构建的。

使这成为一个研究纲领而非单一策略的重新框定是:排序才是 alpha;行业中性只是组合构建。正是这一 区分让我们能把一个模型变成一个结构化的引擎。


2 · 从单一排序器到行业专家混合

单一的全局排序器假定一个特征在每个行业里含义相同。本案例研究自身的证据与此相悖:同一模型在科技 / 医疗保健中 强劲,而在金融业中偏弱。经济学原因是横截面离散度(dispersion)——特异性方差(idiosyncratic variance)占比高的行业(科技、医疗、可选消费)给选股模型提供了可利用的空间;而由利率和宏观因子主导的行业 (公用事业、金融)特异性离散度低、选股 alpha 很少。因此系统的自然单元既不是股票也不是公式——而是 (行业)专家

具体而言,在每个 GICS 行业 $k$ 内运行排序器,产生一个行业专家得分向量 $s^{(k)}(X_t)$ 及其实现的多空分腿收益 $r^{(k)}_t$。你现在持有 $K\approx 11$ 个专家流。待解的问题就变成了:今天每个专家应该承载多少资本? ——而这正是 AlphaForge 第二阶段(Stage 2)回答的问题。

Market data+ universal ranker Expert · Technology Expert · Health Care Expert · … Expert · Financials AlphaForge Stage-2 combiner IC/ICIR gate + robust weights, monthly Meta-alpha$\hat{y}_{t+1}$
行业专家混合(Mixture of Sector Experts):通用排序器按行业进行专业化;AlphaForge 的第二阶段组合器每月决定该倚重哪些专家、倚重多少——从而产生元 alpha。

3 · 把 AlphaForge 当作组合器,而非生成器

AlphaForge 中可借鉴的最有用的一个想法是:组合应当是动态的:不要 在研究阶段固定权重;随条件变化重新选择和重新加权。把它的两个阶段映射到本案例研究上:

AlphaForge 阶段它在那里做什么在行业引擎中的角色
第一阶段(Stage 1)——生成-预测式挖掘生成公式化 alpha,用代理评分你的信号层——如今是通用排序器;以后是一个提出新行业专家特征的 AI 代理(Phase 4)
第二阶段(Stage 2)——动态组合每天按近期 IC/ICIR 筛选因子并重新拟合权重行业专家之上的元加权器——即时的应用

在 AlphaForge 的池中,条目是单个公式;这里条目是行业专家。组合器的任务是相同的:保留当前展现出技能的 专家,剔除其余的,并对留下的进行加权。这正是"学会金融业何时有效"的有纪律形式——门控依据近期已实现的 IC,而非一个会招致过拟合的自由制度(regime)择时层。


4 · 改写后的数学

在每次调仓 $t$ 时,仅使用 $t$ 时可得的信息,在一个滞后窗口 $[t-L,\,t]$ 上估计每个专家的技能:

$$\bar{IC}^{(k)}_t=\frac{1}{L}\sum_{\tau=t-L}^{t}\rho\bigl(s^{(k)}(X_\tau),\,y_\tau\bigr),\qquad \text{ICIR}^{(k)}_t=\frac{\bar{IC}^{(k)}_t}{\sigma\bigl(IC^{(k)}_\tau\bigr)}.$$

用文字说:$\bar{IC}^{(k)}_t$ 是行业 $k$ 的专家近期对股票排序得有多好;ICIR 是排得有多稳定。

应用 AlphaForge 的门控——只配置给当前展现出技能的专家:

$$\mathcal{K}_t=\bigl\{\,k:\ \bar{IC}^{(k)}_t>\text{IC}'\ \text{and}\ \text{ICIR}^{(k)}_t>\text{ICIR}'\,\bigr\}.$$
不要在这里照搬 AlphaForge 的普通日度 OLS。AlphaForge 在数十个公式上重新拟合 $\mathbf{w}_t=(\mathbf{Z}_t^\top\mathbf{Z}_t)^{-1}\mathbf{Z}_t^\top\mathbf{y}_t$——当条目众多且弱相关时这没问题。 你只有 $K\approx 11$ 个专家,且相互之间以及与市场都相关;$(\mathbf{Z}_t^\top\mathbf{Z}_t)^{-1}$ 是病态的, OLS 权重将不稳定且过拟合。改用一个稳健的加权器。

稳健加权——以优势除以波动率,加上限并重新归一化(一种逆波动率(inverse-vol)/ 风险平价(risk parity)倾斜):

$$w^{(k)}_t \;\propto\; \frac{\max\!\bigl(0,\ \bar{IC}^{(k)}_t\bigr)}{\sigma^{(k)}_t},\qquad k\in\mathcal{K}_t,\qquad \sum_{k\in\mathcal{K}_t} w^{(k)}_t = 1,$$

(等价地,一个岭回归(ridge)正则化的 OLS $\mathbf{w}_t=(\mathbf{Z}_t^\top\mathbf{Z}_t+\lambda\mathbf{I})^{-1}\mathbf{Z}_t^\top\mathbf{y}_t$)。元 alpha 就是存活专家得分的加权混合:

$$\hat{y}_{t+1}=\sum_{k\in\mathcal{K}_t} w^{(k)}_t\,s^{(k)}(X_{t+1}).$$
这已经在你的技术栈里了。上面的加权器正是 alphalib.transforms.edge_to_weights / inverse_variance_weights(迭代加上限), 而动态重新选择就是 backtest/portfolio.py 中的 combine 步骤。实现只是管道工作,而非 新机器:行业专家就是"池",$\bar{IC}^{(k)}_t$ 就是优势,门控 + 重新归一化在净化(purged)滚动前推 (walk-forward)内的每次调仓中运行。

5 · 动态行业加权的有纪律版本

"学会每个行业何时有效"是这个纲领中最诱人、也最容易过拟合的部分。有两条规则使它保持诚实,二者都继承自本次研讨会:

由于行业权重每月变动,组合器在基础排序器之上增加了换手率(turnover)。要在 alpha 上、而不仅仅是在专家 上,重新运行净成本后(net-of-cost)的检验。


6 · 构建路径——从策略到 Alpha 引擎

Phase 0 · 稳健性检验组(门)净成本后 · STR 跨度 · 容量 · PIT 完整性。在此通过之前,下游的任何东西都不值得构建(§1)。
Phase 1 · 行业归因带自助法置信区间的逐行业 IR;检验离散度机制——用逐行业 IR 对特异性方差占比做回归。可发表的结果:alpha 为何按行业集中。
Phase 2 · 静态 MoE按行业专业化排序器;用固定的、基于离散度的权重混合。确立动态版本必须战胜的基线。
Phase 3 · AlphaForge 动态组合器每次调仓在净化滚动前推中执行 IC/ICIR 门控 + 稳健权重;仅当它在收缩后的数字上战胜静态 MoE 时才接受——并大幅向静态混合收缩。
Phase 4 · Alpha 发现循环一个 AI 代理提出新的行业专家特征 / 预测任务(Alpha Agent 2.0,Topic 7)——AlphaForge 的第一阶段,如今自动化,喂给同一个组合器。

最终状态不是一个策略,而是一个行业专家混合 Alpha 引擎(Mixture-of-Sector-Experts Alpha Engine): 一个基础排序器、逐行业专家、一个 AlphaForge 风格的动态组合器,以及顶上的一个代理式发现循环——每一层都在成本调整、 收缩后的表现上以下面一层为基准。这才是顶级量化机构真正看重的资产:不是一个夏普数字,而是一个能持续产出这些数字的 研究过程。

参考文献

Shi et al. (2025), AlphaForge, AAAI — arXiv:2406.18394(动态组合模块)。
Grinold (1989), The Fundamental Law of Active Management, J. Portfolio Management($\text{IR}\approx\text{IC}\sqrt{\text{Breadth}}$)。
Bailey & López de Prado (2014), The Deflated Sharpe Ratio;López de Prado (2018), Advances in Financial Machine Learning(净化交叉验证、元标注)。
参见 Topic 3(AlphaForge)、Topic 6(收缩)、Topic 7(Alpha Agent 2.0)。

← 上一篇Alpha Agent 2.0 完成 →返回所有主题