因子投资-16-中国A股与CH3模型

QUANT RESEARCH NOTE LESSON 16

把美国 FF3 原样搬到 A 股,会把中国特有的上市制度、壳价值和估值口径当作噪声。Liu、Stambaugh、Yuan(2019)提出 CH-3:先排除最小 30% 壳价值污染股票,再用 EP 构造价值因子。它是“制度进入模型定义”的典型案例。

类型核心课程
模块经典因子
阅读约 7 分钟
材料10 节 · 1 段代码

本节解决什么问题

把美国 FF3 原样搬到 A 股,会把中国特有的上市制度、壳价值和估值口径当作噪声。Liu、Stambaugh、Yuan(2019)提出 CH-3:先排除最小 30% 壳价值污染股票,再用 EP 构造价值因子。它是“制度进入模型定义”的典型案例。

前置知识与学习目标

需要第 08、11、15 讲。学完后你应该能:

  • 精确写出 CH-3 的股票池与 2×3 构造;
  • 解释排除最小 30% 与壳价值的关系;
  • 说明 EP 相对 BM 的中国样本动机;
  • 区分 CH-3 与机械复制 FF3;
  • 判断 2019 年论文证据为什么不能自动外推到 2026 年。

直觉与手算

在审核制 IPO 稀缺时期,已上市小公司可能具有被借壳重组的期权价值。一个经营很差、盈利为负的微型公司,市值却因“壳”而不低;低 EP 会把它归为成长股,但其收益受壳交易而非成长基本面驱动。

若这些股票数量多但总市值小:

  • 等权小盘收益会被壳溢价抬高;
  • 低 EP 成长组会混入经营差但壳价值高的公司;
  • SMB 与价值因子同时被扭曲;
  • 用这些因子解释普通经营公司时,模型反而变差。

因此 CH-3 的第一步不是改变回归,而是改变要建模的经济总体:对“常规经营股票”构造因子,排除最小市值 30%。

定义与公式

原论文形成池

原论文的关键过滤包括:

  1. 排除上市不足 6 个月股票;
  2. 排除过去 12 个月交易记录少于 120 天的股票;
  3. 排除最近月交易少于 15 天的股票;
  4. 按上月末总市值排序,排除最小 30%;
  5. 用剩余 70% 构造市场、规模和价值因子。

总市值使用收盘价×全部 A 股股数,包括当时不可交易股。现代复现必须核对数据字段与论文口径,不能用自由流通市值悄悄替换。

2×3 独立排序

在剩余 70% 股票中:

  • 按市值中位数分 Small 与 Big;
  • 按 EP 分 top 30% Value、中间 40% Middle、bottom 30% Growth;
  • 独立交叉成 S/V、S/M、S/G、B/V、B/M、B/G 六个价值加权组合。

规模因子:

价值因子 VMG:

市场因子是剩余 70% 股票价值加权市场收益减原论文采用的一年期存款利率。现代研究应说明继续沿用该无风险代理,还是用与持有期一致的其他利率。

EP

原论文在截面检验中还将正 EP 和负 EP 指示变量分开,避免把负盈利当作连续估值比率的一端。因子排序的精确盈利字段、公告滞后和负值处理应按原文与数据附录复现。

CH-3 与机械 FF3 的差异

定义与公式 5 行 × 3 列
维度 机械 FF3 本地复制 CH-3
最小股票 通常纳入 排除底部 30%
价值指标 BM EP
制度动机 沿用美国经验 壳价值与中国估值证据
价值因子名 HML VMG
目标 复刻通用构造 解释常规 A 股的本地共同收益

CH-3 仍是三因子线性模型,不意味着中国市场只有三个风险/错误定价维度。

Python 最小实验

PYTHON 可复现实验
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
import numpy as np
import pandas as pd

portfolios = pd.Series({
"S/V": 0.030,
"S/M": 0.020,
"S/G": 0.010,
"B/V": 0.020,
"B/M": 0.015,
"B/G": 0.005,
})
small = portfolios[["S/V", "S/M", "S/G"]].mean()
big = portfolios[["B/V", "B/M", "B/G"]].mean()
value = portfolios[["S/V", "B/V"]].mean()
growth = portfolios[["S/G", "B/G"]].mean()

smb = small - big
vmg = value - growth

assert np.isclose(smb, 0.0066666666666667)
assert np.isclose(vmg, 0.0175)
print(smb, vmg)

这段代码从六组合收益合成因子,没有实现股票筛选和权重。真正复现的难点在上游点时数据,而不是最后两行平均。

A 股实现注意事项

  1. 壳价值并非常数。 注册制、退市常态化与并购重组规则会改变壳期权。2019 年论文识别的机制必须在新时期重新测量。
  2. 散户与机构结构。 历史 A 股个人投资者参与度较高,但账户、成交额和持仓占比不是一个指标,且随年份变化;不能用一个静态比例解释所有时期。
  3. 涨跌停与板块。 主板、创业板、科创板、北交所及特殊股票的价格限制随制度和上市阶段不同,回测应使用历史规则表。
  4. T+1。 当日买入通常不能同日卖出,短期信号与止损执行受约束;ETF、可转债等品种规则又不同。
  5. 做空限制。 融券标的、券源、保证金和费用使 VMG、SMB 空头腿不等于可执行策略。
  6. ST 与退市。 排除 ST 会改变研究总体;纳入则必须模拟价格限制、停牌和退市损失。
  7. 板块差异。 上市门槛、行业与盈利结构不同,统一 EP/规模断点可能把板块制度当因子。
  8. 非流通股历史。 股权分置改革前后,总市值与可交易资本含义变化,长样本需分段。
  9. 公告与累计利润。 EP 分子必须按首次公告日和 TTM 口径构造,不能用报告期末。

常见错误与边界

  • 只排除当前最小 30%,而不是每月点时重排。
  • 用自由流通市值却声称精确复现原论文。
  • EP 用未来年报或最终修订值。
  • 把底部 30% 简称“壳公司”;论文是按污染概率排除,不是逐只确认壳身份。
  • 看到 CH-3 优于本地 FF3,就宣称风险机制已证明。
  • 以 2019 年发表结论直接解释 2026 年注册制与退市环境。
  • 构造因子用常规股票池,测试策略却包含被排除微盘股,模型总体不一致。
  • 忽略空头不可交易,直接把 VMG 当现实收益。

排除底部 30% 是研究问题的一部分:若目标就是研究微盘与壳价值,就不应排除,而应单独构造壳因子或状态模型。CH-3 的选择适合“给常规经营股票定价”,不是所有 A 股研究的普遍清洗规则。

原书与论文

原书第 6 章(PDF 文件页 224–290)是中国因子实证主线,第 5 章(192–223)提供实践问题背景。

核心原文:Liu、Stambaugh、Yuan(2019),Size and Value in China,Journal of Financial Economics 134(1),48–69,DOI 10.1016/j.jfineco.2019.03.008。阅读时把作者样本期、过滤条件和制度背景与当前研究期逐项对照。

练习

  1. 每月排除最小 0%、10%、20%、30%、40%,比较 SMB、VMG 与市值覆盖。
  2. 用 BM 和 EP 分别构造价值因子,比较相关、Alpha 和组内负盈利占比。
  3. 复现六组合并逐月断言每个组合非空、权重和为一。
  4. 设计壳价值代理:IPO 排队、借壳事件、最小市值与盈利惊喜相关,写出可证伪预测。
  5. 将样本按制度阶段分段,检验底部 30% 的收益与经营基本面关系是否变化。
  6. 说明目标为微盘策略时,为什么不能把 CH-3 过滤规则当普通数据清洗。

小结与下一步

CH-3 用两个本地化选择改变 FF3:排除壳价值污染最强的最小 30%,以 EP 替代 BM,再在剩余股票中构造 MKT、SMB、VMG。它说明资产定价模型必须对应制度和研究总体。

论文证据来自特定历史样本。进入 2026 年研究前,应重新验证壳机制、交易制度、板块结构和无风险代理,而不是把 CH-3 当永久真理。


因子投资-16-中国A股与CH3模型
https://www.polarishaw.top/2026/07/17/因子投资-16-中国A股与CH3模型/
作者
Polaris
发布于
2026年7月17日
许可协议