跳转至

因子指南

tradelearn.factor 提供 alphalens 风格的因子清洗、分组收益、IC、换手和多周期报告。

标准入口

from tradelearn.factor import FactorAnalyzer, clean_factor_and_forward_returns

clean = clean_factor_and_forward_returns(
    factors,
    factor="momentum",
    prices=prices,
    periods=(1, 5, 10),
    quantiles=5,
)

fa = FactorAnalyzer.from_clean_factor_data(clean)
fa.report("factor_report.html")

单因子与多因子

  • 单因子会进入多周期分析。
  • 多因子会进入多因子对比分析。
  • 报告默认覆盖传入的多个 forward return period,不需要为每个周期单独生成报告。

这里的 IC 与 Rank IC 按同一时间截面的多个标的计算。只有一个标的时,FactorAnalyzer.ic() 和 factor_information_coefficient() 会明确报错;单标的沿时间评估请使用 研究指南中的 tradelearn.research.temporal.assessment,并单独声明标签窗口和时间分块。

Alpha101 缺失值修正

alpha002 和 alpha003 在滚动窗口不足、输入缺失或序列方差为零时返回 NaN。 旧实现把未定义的相关系数填成了零;修正后这些位置的历史输出会改变。 训练时应根据训练窗口选择有观测值的因子,不能把未定义的因子当作已观测零值。

alpha066 的价格比率分母为零时也保留 NaN,避免把除零产生的无穷值转换为有效排名。

Alpha101/Alpha191 的加权滚动窗口保留 NumPy 参考计算的求和顺序,避免浮点累加差异经后续排名放大。 加权均值和时间序列排名均要求窗口内观测有限;NaN 或无穷值离开窗口后恢复计算。