第 6 课:因子与估值实操巩固
上一课程回顾(含自测参考答案)
课程 5 的五个自测题,参考答案如下:
1. 用一句话分别说出价值、动量、规模三个因子各自"赚什么钱、怕什么"
价值因子:赚均值回归的钱(低估值会向历史中枢修复),怕价值陷阱(便宜是因为真的在变差,修复遥遥无期)。动量因子:赚趋势延续的钱(过去涨的继续涨),怕震荡市反复打脸与动量崩溃(极端反弹里前期跌最惨的暴涨,动量策略瞬间巨亏)。规模因子:赚风险溢价的钱(小盘股风险高所以期望收益高),怕小盘熊市跌得更狠、个股暴雷,且"小盘溢价"在不同市场年代时有时无。
2. 你查到的沪深300 估值百分位是多少?用一句话解释它告诉了你什么
没有标准答案(示例:近 5 年 PE 百分位 35%)。一句话模板:"当前估值比过去 5 年 65% 的时间都便宜,处于中偏低区——价值因子信号偏'买',但这是长期配置参考,不预测短期涨跌。" 关键是把百分位读成"现在在自身历史中的位置",而不是绝对贵贱。
3. 课程 4 的动量信号和本课的动量因子,区别是什么?
课程 4 的动量是单标的信号:一只 ETF 的价格和 60 日均线比,输出只有"买/不买"两个动作(日历 vs 价格二选一)。本课的动量因子是多资产排序:给所有候选 ETF 按过去 12 个月收益打分排序,买前 20%,是"哪些资产值得买"的选择题。单标的信号是"要不要动手",因子是"选谁"——因子是信号的推广。
4. 为什么"策略收益能被三因子解释干净(alpha ≈ 0)"说明它没有真正的超额能力?
三因子(市场 + 规模 + 价值)代表的是公开风格的收益:任何人买小盘 + 低估值组合都能拿到。如果你的策略收益和这些风格的暴露完全对得上(alpha ≈ 0),说明你赚的钱只是风格的钱、不是能力的钱——换个说法,别人直接买对应风格的 ETF 就能复制你。真正的超额能力必须体现在三因子解释不掉的部分(alpha > 0)上。这也是机构识别"伪高手"的标准方法。
5. 加餐:AI 加餐的动量分组回测结果如何?高动量组赢了吗?用一句话解释。
没有标准答案。三种可能都正常:赢了(趋势市,动量有效)→ 说明因子在这个区间有用;输了或无差异(震荡市/区间太短/动量崩溃)→ 说明因子的有效性依赖市场环境。关键结论:单次回测结果不能证明因子有效——这正是本课要实操讨论的问题。
学习目标
- 亲手完成估值百分位多平台对照,理解口径差异(窗口 / TTM vs 静态 / 剔除极端值),把课程 2 的"对照验证"用到估值上
- 认识价值陷阱的识别清单,能区分"被错杀"和"真的在变差"
- 亲手跑一次动量分组回测(AI 代写代码),学会解读"因子灵不灵"的三种结果
- 理解因子为什么会失效(拥挤、逻辑破坏、区间依赖、数据挖掘),建立"回测有效 ≠ 未来有效"的警觉
前置要求
- 已掌握:课程 5 的三因子(价值/动量/规模)、估值百分位定义、Fama-French 模型
- 本课延续双轨:主路径用网页工具(约 20 分钟),AI 加餐可选(代码由 AI 代写)
正文
6.1 多平台对照:估值百分位实操(本课主路径)
课程 5 答疑里给过平台清单(蛋卷基金、且慢、乐咕乐股、乌龟量化、亿牛网、雪球、韭圈儿、中证指数官网)。本课把它变成一次对照验证实验——课程 2 的铁律:任何数据都要用独立来源互相印证。
实验步骤:
- 选 两个平台(推荐:蛋卷基金 + 乐咕乐股,或且慢 + 乌龟量化)。
- 在两个平台上分别查**沪深300(000300)**的 PE 数值、近 5 年百分位、近 10 年百分位。
- 按课程 3 的观察笔记格式写三行:
- 直觉:我猜它现在算贵还是便宜?
- 数字:平台 A 和平台 B 的百分位各是多少?差多少?和直觉一致吗?
- 疑问:为什么两个平台会差几个百分点?
为什么会有差异? 百分位 = 当前 PE 在历史序列中的位置,任何影响"历史序列"的因素都会改变它:
- 窗口不同:近 5 年 vs 近 10 年(2015 年牛市会把近 10 年的历史高位拉高,让当前百分位显得更低);
- PE 口径不同:静态 PE(用上年年报盈利)vs TTM(用滚动 12 个月盈利),盈利分母不同百分位就不同;
- 是否剔除极端值:有的平台把亏损股或极端 PE 剔除后再算百分位;
- 数据区间起点不同:有的从指数发布日算起,有的只算最近 N 年。
结论判断:两平台差异在 5 个百分点以内 → 结论一致,可信;差异巨大(>15 个百分点)→ 检查两者口径(先看窗口是否相同),找到原因而不是选一个"看起来对"的。对照验证的目的不是求一致,而是搞清楚差异从哪来。
进阶任务(可选):再查一只行业 ETF(如银行、医药、白酒指数)的百分位,和沪深300 对比。你大概率会发现:低估值行业(银行)常年趴在低位,高估值行业(白酒、医药)常年站在高位——这就是 6.2 价值陷阱的入口。
6.2 价值陷阱:便宜为什么可能是坑
课程 5 说价值因子"怕价值陷阱"。本课把它拆开看:估值低有两种可能,必须分清是哪一种。
- 被错杀(机会):基本面没问题,只是情绪/流动性/市场风格把价格砸低了 → 均值回归会修复,价值因子赚钱。
- 价值陷阱(坑):基本面真的在恶化,低 PE 是市场对未来盈利下滑的提前定价 → "便宜有便宜的理由",PE 看着低,但盈利(分母)也在缩水,股价可以长期不涨甚至阴跌。
为什么"PE 低"会骗人? 因为 PE 是静态的快照:
低 PE 可能是"价格便宜",也可能是"收益即将下降"——你现在看到的"每股收益"是过去一年的,而市场定价的是未来。银行股常年 5~6 倍 PE 不是没人发现"便宜",而是市场认为它的盈利增长空间有限、坏账风险未出清。 这就是"便宜有便宜的理由"。
价值陷阱识别清单(查任何低估值标的时逐条问):
- 盈利趋势:最近几个季度/年度,盈利是在增长还是下滑?(下滑 → 警惕,PE 低可能是分母在缩小)
- 行业处境:行业在扩张还是在萎缩?(夕阳行业、被替代的商业模式 → 警惕)
- 资产负债表:有没有巨额商誉、高负债、股权质押爆雷风险?(课程 3 的"对照验证"精神:看数字背后的故事)
- 催化剂:有没有什么逻辑能让它估值修复?(政策反转、盈利拐点、供给侧出清……没有催化剂,修复可能遥遥无期)
- 历史行为:它是不是常年趴在低位?(常年低位 + 盈利下滑 = 陷阱特征;长期低位 + 盈利平稳创新高 = 更可能是错杀)
一句话总结:看 PE 高低之前,先看盈利方向。 低估值 + 盈利向上 = 错杀候选;低估值 + 盈利向下 = 陷阱候选。价值因子赚的是"错杀修复"的钱,不是"捡便宜"的钱。
6.3 动量分组回测:亲手跑一次(AI 加餐)
课程 5 的加餐让 AI 算动量因子并分组回测。本课把它跑完整、跑明白。把下面需求发给 AI(可直接复制):
"用 Python(yfinance)拉取 A 股 10 只宽基/行业 ETF(510300、510500、159915、512880、512010、512480、515790、512690、510050、159928)近 3 年日线。每只算动量因子(过去 12 个月收益率,剔除最近 1 个月),按动量排序,前 3 名和后 3 名各成一组;回测两组'分组后持有 1 个月'的收益,滚动做 6 次(每季度调仓一次),最后输出:两组累计收益对比图、两组平均月收益表格、一句结论。不要写太长代码,我要能看懂每段在干嘛。"
跑完看三个东西:
- 高动量组赢了吗? 看累计收益曲线谁在上面、平均月收益谁高。
- 稳定吗? 6 次调仓里,高动量组赢了几次?赢 5~6 次 = 因子在这个区间很稳;赢 3 次 = 胜负参半,靠某几个月拉开的差距。
- 结论怎么说? 用"在这个区间、这个样本里"开头——不要下"动量因子有效/无效"的绝对结论。
三种结果的解读:
| 结果 | 可能的解释 | 下一步 |
|---|---|---|
| 高动量组明显赢 | 区间含趋势行情,动量顺势;或样本恰好在上涨段 | 换区间、换样本验证,别急着信 |
| 高动量组明显输 | 震荡市反复打脸、或遇到动量崩溃、或调仓频率不合适 | 看输在哪些月份,和行情对照 |
| 两组差不多 | 区间太短、样本太少、因子在这个市场不灵 | 接受"不灵"也是一种结论 |
关键认知:这次回测的结论只对"这 10 只 ETF、这 3 年、这个调仓频率"成立。样本换一批、区间换一段,结论可能翻转——这就是区间依赖,课程 8 会系统讲回测陷阱,本课先建立直觉。
6.4 因子为什么会失效
6.3 你已经可能亲眼看到"因子不灵"。本课把它上升为理论:因子失效的四种常见原因。
① 拥挤交易(crowding):一个因子被发现有效 → 资金涌入 → 超额收益被买走。人多的地方没有超额收益——价值因子在 1990s 的美股、小盘因子在 A 股某些年份,都经历过"越多人信越不灵"。
② 逻辑破坏:因子赚钱靠的是一条经济逻辑,逻辑变了因子就失效。例:价值因子在美股 2010s 大幅跑输——低利率时代成长股(科技)的估值逻辑被重写,"便宜"长期不被修复;动量崩溃——极端行情下趋势逻辑短暂崩塌。因子不是永动机,它赚的是逻辑的钱,逻辑会过期。
③ 区间依赖(样本依赖):任何"有效"都必须在特定区间验证。回测 10 年有效,可能只是那 10 年恰好适合它;换到另一段历史就失效。样本外验证(用没参与选因子的数据检验)是标准解法——本课的动量回测换区间再跑一次就是最简单的样本外。
④ 数据挖掘(data mining):回测一万个"因子",总有几个碰巧在过去表现好——那不是发现,是在噪声里找规律(过拟合的雏形,课程 8 细讲)。判断一个因子是不是真的:先有逻辑,后有回测("为什么它应该有效"能讲清楚),并且逻辑 + 数据都要经得起换市场、换区间检验。
判断因子真伪的 checklist:
- 能一句话讲清赚钱逻辑(它赚谁的钱、为什么长期不被抹平)?
- 换市场/换区间/换样本后还有效(或至少讲得清为什么失效)?
- 失效时知道为什么失效(拥挤?逻辑破坏?)而不是一句"市场变了"?
一句话总结:因子有效是"特定环境下的暂时状态",不是"永远成立的真理"。 用因子的正确姿势是:知道它赚什么钱(逻辑)、知道它怕什么(失效条件)、监控环境是否变了。
6.5 本课实战任务汇总
主路径(必做,约 20 分钟):
- 两个平台对照查沪深300 估值百分位,写观察笔记三行(直觉/数字/疑问),并查清楚两个平台的窗口和 PE 口径;
- 查一只行业 ETF 的百分位(如银行、医药),用 6.2 的清单判断它更像"被错杀"还是"价值陷阱",写一句话理由。
AI 加餐(强烈建议做): 按 6.3 的需求跑动量分组回测,把三件事(赢没赢、稳不稳、结论怎么说)写进笔记。
进阶加餐(可选):让 AI 用 pandas 算一下这 10 只 ETF 两两之间的相关系数矩阵(用 .corr()),热力图输出——你会发现行业 ETF 之间相关性很高、宽基和行业相关性居中。这为下一门课(组合构建与风险分散)埋了伏笔:分散的前提是资产之间相关性低。
自测练习
- 你在两个平台查到的沪深300 百分位各是多少?差多少?用一句话解释差异来源(窗口/口径/剔除规则)。
- 说出价值陷阱的两个识别特征;举一个你认为"可能是价值陷阱"的行业或标的,用 6.2 的清单说一句理由。
- 你的动量分组回测结果:高动量组赢了吗?稳定吗?如果没赢或时灵时不灵,给出两个可能原因(6.4 里的)。
- 为什么"一个因子在过去 10 年回测有效"不能保证未来有效?至少说出两个原因。
- 加餐(可选):相关系数矩阵里,你观察到行业 ETF 之间相关性是高还是低?这对"分散风险"意味着什么?
答案不需要现在核对;下一门课开头会回顾。课程 6 练完,你已经把"选什么"(因子)的工具用熟,下一课就是"怎么配"(组合)。
学习要点小结
- 估值百分位也要对照验证:两平台差异来自窗口、PE 口径(静态 vs TTM)、剔除规则;差异 >15 个百分点要查口径而不是选一个信。
- 低估值有两种:被错杀(机会)vs 价值陷阱(坑);先看盈利方向,再看 PE 高低;识别清单五问:盈利趋势/行业处境/资产负债表/催化剂/历史行为。
- 动量分组回测的三种结果各有解读;结论必须限定"区间 + 样本 + 调仓频率",单次回测不能证明因子有效。
- 因子失效四因:拥挤交易、逻辑破坏、区间依赖、数据挖掘;用因子的正确姿势 = 讲得清逻辑 + 知道怕什么 + 监控环境。
- 因子是"选什么",相关性是"怎么配"的前提——下一课进入组合构建。