Alpha-Online
基础概念

核心概念辨析

截面 vs 时序、IC 与 ICIR、因子中性化、未来函数、复权——五个贯穿系统设计的核心概念。

以下五个概念构成本系统绝大多数设计决策的理论依据。

截面 vs 时序

  • 时序(time-series):沿单只标的的历史方向看。「这只股票过去 20 天的波动率」是时序量。
  • 截面(cross-section):沿同一天的全市场方向看。「今天这只股票的因子值,在全市场排第几」是截面量。

Alpha101 几乎都以 rank 收尾,所以它本质是截面问题:每天给全市场打分排序,而不是盯单只标的等突破。这直接决定了回测引擎为什么用矩阵驱动而非事件驱动

IC 与 ICIR

衡量一个因子「好不好」的核心指标:

  • IC(Information Coefficient):当期因子值与未来收益截面秩相关系数。IC = 0.05 意味着因子排名与未来收益排名存在微弱正相关;在量化实践中,稳定在 0.03~0.05 已属可用水平。
  • ICIRIC 的均值 / IC 的标准差,衡量预测能力的稳定性。IC 波动大甚至变号的因子,实用价值远低于 IC 绝对值不高但稳定的因子。

本系统以 IC / ICIR 作为因子筛选与加权的核心指标(factor_selector.py / factor_combiner.py)。计算 IC 时需将当期因子值与未来收益对齐,该操作一旦处理不当,即引入下文所述的未来函数问题。

因子中性化

原始因子里常混进我们不想要的暴露——最典型是行业市值。比如某因子在科技股上系统性偏高,那它的「信号」可能只是「这是科技股」。

中性化就是把这些已知暴露剥掉:indneutralize(x, IndClass) 在每个行业内对因子值做截面去均值,让剩下的才是因子真正的 Alpha。本系统的行业中性化已补全(commit 3a46f0f),市值中性化与因子正交化仍在路线图上。

未来函数(look-ahead bias)

用了「在当时根本拿不到」的信息——这是回测最致命、也最隐蔽的作弊。

例子:用 T 日的收盘价算因子,又用它去决定 T 日开盘的交易。现实里 T 日开盘时你还不知道 T 日收盘价。回测里这么干,净值会好看得不真实。

本系统用物理隔离杜绝它:

  • 回测 _shift_signals 在截面维度对每个标的做 shift(1),保证 T 日信号只用 T-1 及更早的数据;
  • 实盘天然在收盘后才跑当天的信号。

这就是第一条不变量。彻底消灭未来函数还需要 Point-in-Time 财务快照(路线图 #21)。

复权(adjustment)

股票存在除权除息与拆股事件。同一标的在除权日前后的价格尺度不一致,未经复权直接计算 returns 会产生虚假的巨幅跳空。

  • 前复权 / 后复权 / 不复权会给因子计算带来不同影响:算 returnsdelta、滚动统计时,必须用复权后连续的价格序列,否则除权日会污染所有时序因子。
  • 实务上,需在数据接入与预处理阶段统一复权口径,并保持回测与实盘一致——One Codebase 原则的又一体现。

延伸

On this page