将本次研讨会的方法应用于一个实盘模型:一个通用横截面排序模型(universal cross-sectional ranking model)、 行业中性(sector-neutral)的排序 alpha。AlphaForge 在这里的贡献并不是公式生成——而是它的动态组合(dynamic combination)模块。把每个行业当作一个专家(expert),让 AlphaForge 基于信息系数(Information Coefficient, IC)/ 信息比率(ICIR)门控的组合器每月决定该倚重哪些专家,你就得到了一个行业专家混合(Mixture of Sector Experts)的元 alpha。是 Topic 6 的纪律使它保持诚实。
本案例研究是一个通用横截面排序模型(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 集中在某些行业、在另一些行业偏弱(尤其是金融业)。
使这成为一个研究纲领而非单一策略的重新框定是:排序才是 alpha;行业中性只是组合构建。正是这一 区分让我们能把一个模型变成一个结构化的引擎。
单一的全局排序器假定一个特征在每个行业里含义相同。本案例研究自身的证据与此相悖:同一模型在科技 / 医疗保健中 强劲,而在金融业中偏弱。经济学原因是横截面离散度(dispersion)——特异性方差(idiosyncratic variance)占比高的行业(科技、医疗、可选消费)给选股模型提供了可利用的空间;而由利率和宏观因子主导的行业 (公用事业、金融)特异性离散度低、选股 alpha 很少。因此系统的自然单元既不是股票也不是公式——而是 (行业)专家。
具体而言,在每个 GICS 行业 $k$ 内运行排序器,产生一个行业专家得分向量 $s^{(k)}(X_t)$ 及其实现的多空分腿收益 $r^{(k)}_t$。你现在持有 $K\approx 11$ 个专家流。待解的问题就变成了:今天每个专家应该承载多少资本? ——而这正是 AlphaForge 第二阶段(Stage 2)回答的问题。
从 AlphaForge 中可借鉴的最有用的一个想法是:组合应当是动态的:不要 在研究阶段固定权重;随条件变化重新选择和重新加权。把它的两个阶段映射到本案例研究上:
| AlphaForge 阶段 | 它在那里做什么 | 在行业引擎中的角色 |
|---|---|---|
| 第一阶段(Stage 1)——生成-预测式挖掘 | 生成公式化 alpha,用代理评分 | 你的信号层——如今是通用排序器;以后是一个提出新行业专家特征的 AI 代理(Phase 4) |
| 第二阶段(Stage 2)——动态组合 | 每天按近期 IC/ICIR 筛选因子并重新拟合权重 | 行业专家之上的元加权器——即时的应用 |
在 AlphaForge 的池中,条目是单个公式;这里条目是行业专家。组合器的任务是相同的:保留当前展现出技能的 专家,剔除其余的,并对留下的进行加权。这正是"学会金融业何时有效"的有纪律形式——门控依据近期已实现的 IC,而非一个会招致过拟合的自由制度(regime)择时层。
在每次调仓 $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\}.$$稳健加权——以优势除以波动率,加上限并重新归一化(一种逆波动率(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)内的每次调仓中运行。
"学会每个行业何时有效"是这个纲领中最诱人、也最容易过拟合的部分。有两条规则使它保持诚实,二者都继承自本次研讨会:
由于行业权重每月变动,组合器在基础排序器之上增加了换手率(turnover)。要在元 alpha 上、而不仅仅是在专家 上,重新运行净成本后(net-of-cost)的检验。
最终状态不是一个策略,而是一个行业专家混合 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)。