【量化投资从入门到精通 #33】因子是什么把好公司翻译成一个能排序的数
进入因子层。前面所有策略都在"择时"(什么时候买),从这篇开始学"选股"(买哪一个)。
一、这个方法解决什么投资问题
"我要买好公司。"——这句话没法执行,因为"好"不能排序。
因子做的事情,就是把一句主观形容词,翻译成每只股票都能算出来的一个数字,从而可以:排序 → 分组 → 检验 → 组合。
- "涨得猛" → 过去 20 日涨幅
- "便宜" → PE、PB
- "赚钱能力强" → ROE
- "有人在买" → 成交额、换手率
只要能算成数,就能被检验;能被检验,就能知道它到底有没有用。
二、核心思想:横截面排序 + 分组检验
择时看的是同一只股票的时间序列,选股看的是同一天所有股票的横截面。这是思维方式的根本切换。
因子有效性的标准检验流程只有四步:
- 打分:在某一天 T,给每只股票算出因子值
- 排序分组:按因子值从高到低排,分成高分组 / 低分组
- 观察未来:看 T 之后 N 天,两组的平均收益
- 看多空价差:高分组 − 低分组。持续为正 = 因子正向有效;持续为负 = 反向有效;在 0 附近乱跳 = 无效
关键铁律:打分只能用 T 及之前的数据,观察只能用 T 之后的数据。 这条线一旦模糊,就是前视偏差(#04)。
三、实操演示
cut = n - HOLD # 打分时点
f = v[cut-1]["close"] / v[cut-1-LOOK]["close"] - 1 # 因子:过去20日涨幅
fwd = v[-1]["close"] / v[cut-1]["close"] - 1 # 未来20日收益
rows.sort(key=lambda r: -r[2]) # 横截面按因子排序
真实输出(2026-08-06,8 只标的,因子 = 过去 20 日涨幅,观察 = 之后 20 日收益):
| 排名 | 标的 | 因子值(过去 20 日) | 后续 20 日收益 |
|---|---|---|---|
| 1 | 京东方A | +35.16% | −27.36% |
| 2 | 长江电力 | +0.29% | −0.54% |
| 3 | 宁德时代 | −3.35% | +3.25% |
| 4 | 招商银行 | −3.47% | +2.98% |
| 5 | 美的集团 | −5.45% | +7.53% |
| 6 | 中国平安 | −7.01% | +7.82% |
| 7 | 平安银行 | −7.33% | +6.48% |
| 8 | 贵州茅台 | −7.34% | +10.71% |
- 高因子组(前 4 只)后续平均 −5.42%
- 低因子组(后 4 只)后续平均 +8.13%
- 多空价差 −13.55% → 该样本期动量因子反向(反转占优)
四、结果解读
这张表的排序几乎是完美单调的——只不过方向是反的。
从第 1 名到第 8 名,因子值单调下降(+35.16% → −7.34%),而后续收益基本单调上升(−27.36% → +10.71%)。8 只里有 6 只符合"过去跌得多、后面涨得多"。
这说明两件事:
第一,这个因子在这段样本上是有信息量的,只是方向为负。#17 讲过动量与反转是同一枚硬币的两面:在趋势市里动量有效,在震荡/均值回归市里反转有效。当前样本期显然是后者——这也和 #06 测出的"滞后一阶自相关全部 ≤ 0"、#21 均值回归策略的表现相互印证。
第二,"因子有效"和"因子方向"是两个独立的问题。 一个多空价差 −13.55% 的因子,比一个价差 +0.5% 的因子有用得多——前者至少在告诉你市场结构,后者只是噪声。
但必须泼一盆冷水:8 只股票 × 1 个时间点,这不是统计证据,只是教学示例。而且 −5.42% 这个高分组均值里,京东方A 一只的 −27.36% 就贡献了大部分——单只样本主导结论是横截面研究的头号大忌。
要让这个结论站得住,至少需要: - 样本数量:几百只而非 8 只(麦蕊全市场快照单次可取 5000+ 只) - 时间维度:滚动几十个截面期,而非 1 期 - 分组方式:按分位数分 5 组,看是否单调,而不只是比较两端 - 统计量:算 IC(因子值与未来收益的秩相关)序列,看它的均值和稳定性
这些正是 #36(技术因子)和 #38(因子陷阱)要做的事。
五、常见陷阱
- 样本太小就下结论:8 只 × 1 期得出的任何结论都不可外推(本文已明确标注)。
- 单只样本主导:一只极端值就能翻转组均值,必须看中位数或剔除极值。
- 打分与观察窗口重叠:因子用了 T 之后的数据,就是前视。
- 只比两端不看单调性:高低两组差很大,中间乱七八糟,往往是运气。
- 忘了因子会变方向:动量和反转会周期性切换,把某一期的方向当永恒规律最危险。
六、小结 + 下篇预告
因子 = 把主观判断翻译成可排序的数字。检验四步:打分 → 分组 → 看未来 → 算多空价差。实测 8 只样本上动量因子反向(价差 −13.55%),提示当前样本期反转占优;但样本太小,只作演示。
下篇 #34/#35 是价值/成长/规模与质量/动量风格因子,依赖财报基本面数据(已作为需求 R1 提交数据团队,详见 #11);数据补全前,#36 会先用麦蕊历史 K 线可直接计算的技术因子(动量/波动/换手)把因子检验流程完整跑一遍。
免责声明
本文为量化方法教学,标的为示例,不构成投资建议,不承诺收益。投资有风险,入市需谨慎。



