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 因子挖掘的机遇
虽然挑战多,但机遇更大。我个人认为,现在因子挖掘正处在黄金期:
- 数据爆炸:除了量价数据,还有舆情、供应链、卫星图像等另类数据
- 算力提升:GPU并行计算让复杂因子(如深度学习特征)成为可能
- 方法论成熟:从手工挖因子到自动化挖掘,效率提升百倍
你想想看,十年前挖一个因子要一周,现在用自动化框架一天能挖上千个。但注意,数量不等于质量。我见过有人用遗传编程挖出几千个因子,结果90%都是噪音。
我的建议:刚开始做因子挖掘,别追求数量。先吃透10-20个经典因子,理解它们的逻辑和局限。然后慢慢扩展。稳扎稳打比盲目堆砌更有效。
1.5 本章知识体系
下面这张图是我自己整理的因子挖掘知识框架,你可以对照着看:
这张图把因子挖掘的核心要素串起来了。从定义到作用,从挑战到机遇,最后落到「逻辑+数据+验证」这个三角上。我个人觉得,只要抓住这三条,因子挖掘就不会跑偏。
好了,第一章就到这里。记住:因子不是玄学,是科学。用数据说话,用逻辑验证,用实盘检验。这才是做因子的正确姿势。