1. 因子挖掘概述:什么是因子、因子在量化交易中的作用、因子挖掘的挑战与机遇

1.1 到底什么是因子?

先说说我自己的理解吧。因子,说白了就是能解释股票涨跌的某种特征。你想想看,为什么茅台涨了而某只垃圾股跌了?背后一定有原因。这个原因,就是因子。

从数学角度看,因子是一个从原始数据到预测信号的映射函数:

# 最简单的因子:过去5日收益率
def factor_momentum(close_prices):
    return (close_prices[-1] - close_prices[-6]) / close_prices[-6]

# 稍微复杂点:成交量加权价格变化
def factor_vwap_momentum(close, volume):
    vwap = (close * volume).sum() / volume.sum()
    return (close[-1] - vwap) / vwap

我在项目中遇到过最典型的例子:有人把「公司名字长度」当因子回测,居然有正收益。嗯,这显然是过拟合。但这也说明,因子挖掘的水很深。

核心要点:因子必须满足三个条件——可计算、可复现、有经济含义。缺一不可。

1.2 因子在量化交易中的作用

因子到底有什么用?我习惯把它分成三个层次:

  • 选股信号:高因子值的股票倾向于上涨,低因子值的倾向于下跌
  • 风险暴露:解释组合收益的来源,比如你赚的是市场贝塔还是阿尔法
  • 组合优化:通过因子暴露控制风险,避免押注单一风格

举个例子。我记得2018年做A股策略时,单纯用估值因子(PE、PB)效果很差。后来加入质量因子(ROE、毛利率),组合夏普直接从0.6提升到1.2。为什么会这样?因为市场风格变了,单一因子扛不住。

因子类型 典型因子 作用
动量因子 过去N日收益率 捕捉趋势延续
价值因子 PE、PB、PS 捕捉低估修复
质量因子 ROE、毛利率、负债率 捕捉盈利能力
情绪因子 换手率、波动率 捕捉市场情绪

1.3 因子挖掘的挑战

说实话,因子挖掘最大的坑就是过拟合。我曾经花三个月挖了200个因子,回测曲线漂亮得不行。结果实盘一个月就亏了8%。

后来我总结出几个常见问题:

  • 数据窥探偏差:用未来数据构造因子,回测自然好看
  • 多重比较陷阱:试了1000个因子,总有几个看起来显著
  • 幸存者偏差:只考虑当前存活的股票,退市的被忽略了
  • 交易成本:高频换手因子,手续费吃掉所有收益

避坑指南:我曾经犯过一个低级错误——用当天收盘价计算因子,然后预测当天涨跌。这相当于用答案猜题目。记住:因子计算必须使用历史数据,预测未来。

1.4 因子挖掘的机遇

虽然挑战多,但机遇更大。我个人认为,现在因子挖掘正处在黄金期:

  1. 数据爆炸:除了量价数据,还有舆情、供应链、卫星图像等另类数据
  2. 算力提升:GPU并行计算让复杂因子(如深度学习特征)成为可能
  3. 方法论成熟:从手工挖因子到自动化挖掘,效率提升百倍

你想想看,十年前挖一个因子要一周,现在用自动化框架一天能挖上千个。但注意,数量不等于质量。我见过有人用遗传编程挖出几千个因子,结果90%都是噪音。

我的建议:刚开始做因子挖掘,别追求数量。先吃透10-20个经典因子,理解它们的逻辑和局限。然后慢慢扩展。稳扎稳打比盲目堆砌更有效。

1.5 本章知识体系

下面这张图是我自己整理的因子挖掘知识框架,你可以对照着看:

因子挖掘 因子定义 可计算 可复现 有经济含义 因子作用 选股信号 风险暴露 组合优化 挑战与陷阱 过拟合 数据窥探 幸存者偏差 数据爆炸 算力提升 自动化挖掘 核心:逻辑 + 数据 + 验证

这张图把因子挖掘的核心要素串起来了。从定义到作用,从挑战到机遇,最后落到「逻辑+数据+验证」这个三角上。我个人觉得,只要抓住这三条,因子挖掘就不会跑偏。


好了,第一章就到这里。记住:因子不是玄学,是科学。用数据说话,用逻辑验证,用实盘检验。这才是做因子的正确姿势。