因子与 Alpha 策略

这一页覆盖 Q29–Q40:从「什么是因子 / Alpha 与 Beta」一路讲到 Fama-French 模型、量价因子构建、IC/IR、组合优化(MVO 与风险平价)与回测评估(偏差、过拟合、交易成本)。适合刚入门的大一新生建立完整框架,也适合求职者临阵磨枪——每道硬核题都配了「🔬 深度拓展」,含推导、踩坑案例与面试追问演练。

🧭 怎么读这一页

因子研究的主线只有一句话:找到能在截面上预测未来收益、且不能被已知风险解释的信号,再用尽量低的成本把它做成组合。下面四个章节就是这条主线的四个环节——信号是什么(Q29–30)、怎么造怎么评(Q31–34)、怎么配权重(Q35–36)、怎么验证不是骗自己(Q37–40)。

因子投资基础(Q29–Q30)

Q29什么是因子(Factor)?Alpha 和 Beta 的区别?
🌱 大白话先懂

因子,就是挑股票时反复管用的某个特征,好比挑西瓜看纹路。Beta(贝塔)是你随大流、跟着大盘一起涨跌就能拿到的那份钱;Alpha(阿尔法)是你比别人聪明、靠真本事多赚出来的那份钱。

标准答案

因子:能够系统性解释资产收益率截面差异的变量。换句话说,把一堆股票按某个变量(市值、估值、动量……)排序,如果排序能稳定地对应到未来收益的高低,这个变量就是一个因子。

Alpha vs Beta

  • Beta(系统性风险暴露):承担市场、规模、价值等公共因子风险获得的补偿,人人都可以获取,本质是风险溢价。
  • Alpha(超额收益):在控制所有已知因子暴露后剩余的收益,来自信息优势或更优的执行。

用一个回归把两者拆开:

$$r_i - r_f = \alpha_i + \beta_{i,MKT} \cdot (r_{MKT} - r_f) + \beta_{i,SMB} \cdot SMB + \beta_{i,HML} \cdot HML + \epsilon_i$$

如果截距项 $\alpha_i$ 显著大于零,说明存在无法被已知因子解释的超额收益。

核心洞察:今天的 Alpha 可能是明天的 Beta——当一个信号被足够多的人知晓和使用后,它就变成了一个定价因子。

🔬 深度拓展:一个信号被发现后,是怎么一步步被「定价吃掉」的?

Alpha 衰减不是玄学,它有一条清晰的链条。设想你发现了一个真实有效的信号(比如「低估值股票未来收益更高」):

  1. 独享期:只有你知道。你买入被低估的股票,赚到的是真 Alpha——别人还没参与,价格还没反应。
  2. 扩散期:论文发表 / 同行复现 / 卖方研报推广。越来越多资金涌入买同一批股票,把价格买上去。结果是:未来预期收益被压低,信号的盈利空间缩小。
  3. 定价期:信号变成了一个「人人都做」的公共风险敞口。它仍然可能有正收益,但这收益现在是风险补偿(Beta),不再是信息优势(Alpha)——你赚的钱本质是替别人承担了这个因子在坏年份大跌的风险。

历史例子一:规模因子(Size / SMB)。Banz(1981) 发现小盘股长期跑赢大盘股,曾被视为强 Alpha。但论文广为人知、小盘指数基金大量发行之后,1980 年代末到 2000 年代,小盘溢价显著减弱甚至消失了很长时间。今天 size 基本被当作一个(还不太稳定的)Beta 因子,而不是免费午餐。

历史例子二:价值因子(Value / HML)。价值股长期溢价是 Fama-French 的基石,但 2010s 经历了史上最长的价值因子回撤("value is dead" 讨论),很多人认为是拥挤 + 无形资产会计失真 + 利率环境共同作用。这正说明:一个被广泛交易的因子,其溢价会随资金、环境周期性地被压缩甚至反转。

给新生的直觉:Alpha 是「别人还不知道的认知差」,Beta 是「大家都知道、靠承担风险拿补偿」。研究的难点不在于找一个历史上有效的信号(这很容易),而在于判断它还能不能继续有效——也就是它现在处于上面哪个阶段。

🎯 面试追问演练

:「你说今天的 Alpha 是明天的 Beta,那是不是所有 Alpha 最终都会消失?做主动量化还有意义吗?」

答思路:不会全部消失。① 有套利上限的 Alpha 才会被吃掉——容量大、易复制、无交易摩擦的信号衰减最快;而容量小、依赖独特数据/执行、或来自难以套利的结构性约束(如做空限制、流动性约束)的 Alpha 衰减慢。② 市场是动态的,新数据、新资产、新参与者不断产生新的认知差。③ 真正的护城河往往不是「某个因子」,而是持续生产新因子的研究流程 + 低成本执行能力。一句话收尾:「我们赚的不是某个固定信号的钱,是比市场更快迭代认知的钱。」

Q30解释 Fama-French 三因子和五因子模型
🌱 大白话先懂

几位学者发现:股票涨跌不只跟着大盘走,还能被几个共同特征解释。三因子=大盘+公司大小+股票便宜还是贵;五因子又多加了赚不赚钱、是否乱花钱扩张这两条。它给了大家一把统一的尺子,去衡量你的赚钱是不是只在吃这些公共特征的钱。

标准答案

三因子模型(1993)

  • MKT(市场因子):市场组合超额收益 $r_{MKT}-r_f$。
  • SMB(Small Minus Big):小盘股组合减大盘股组合的收益。
  • HML(High Minus Low):高 B/M(价值股)减低 B/M(成长股)的收益。

五因子模型(2015)新增

  • RMW(Robust Minus Weak):高盈利能力 vs 低盈利能力。
  • CMA(Conservative Minus Aggressive):低投资(保守)vs 高投资(激进)。

核心贡献:建立了因子投资的分析框架。任何策略的收益都应该用这些因子回归分解——如果 Alpha 不显著,说明你只是在承担已知风险。

争议:HML 在五因子模型中可能是冗余的(被 RMW 和 CMA 吸收);动量因子(UMD)未被包含但实证上很强。

🔬 深度拓展:2×3 排序怎么造因子?HML 冗余之争、动量为何被排除?

① 因子怎么「造」出来——2×3 portfolio sorts

Fama-French 的因子不是回归系数,而是真实可投资的多空组合收益序列。以 HML 为例,每年重构一次:

  1. 先按市值二分:所有股票按市值中位数分成 Small(S) / Big(B) 两组。
  2. 再按 B/M 三分:在每组内按账面市值比 B/M 的 30%/70% 分位分成 Low/Neutral/High 三档。
  3. 于是得到 $2\times3=6$ 个组合:S/L, S/M, S/H, B/L, B/M, B/H,每个组合内市值加权。
  4. HML $= \tfrac12(\text{S/H}+\text{B/H}) - \tfrac12(\text{S/L}+\text{B/L})$——「高减低」,且通过同时在大小盘里做,剥离了规模的干扰
  5. SMB 则是三档 B/M 内「小减大」的平均,剥离了价值的干扰。

这种「双重排序」设计的妙处:构造 HML 时已经对 size 中性,构造 SMB 时已经对 value 中性,两个因子相对正交,便于解释。

② HML 冗余之争

Fama-French(2015) 自己发现:在美股样本里,一旦加入 RMW 和 CMA,HML 的截距(其自身 Alpha)变得不显著——也就是 HML 的收益几乎可以被「市场+规模+盈利+投资」完全解释。直觉上:价值股(高 B/M)往往就是盈利稳健(高 RMW 倾向)且投资保守(高 CMA 倾向)的公司,所以价值溢价有很大一部分其实是盈利和投资溢价的「打包」。但在国际市场和后续样本里 HML 又常常恢复显著,所以这是个「视样本而定」的争议,不是定论。

③ 动量(UMD)为何强却没被纳入?

  • 实证上极强:Jegadeesh-Titman(1993) 的 12-1 月动量在几乎所有市场、资产类别都有效,Alpha 显著且持续。
  • 但 Fama-French 不愿纳入,有几个原因:(a) 动量换手极高、交易成本大,不像 size/value 那样是「买入持有」的稳态风险;(b) 它缺乏一个干净的风险故事——Fama 倾向于「溢价 = 风险补偿」,而动量更像是行为偏差(反应不足/过度),这与有效市场信仰冲突;(c) 动量有罕见但剧烈的「崩盘」(momentum crash,如 2009 反弹时空头暴涨)。
  • 实务里大家照用 Carhart(1997) 四因子(三因子+UMD)。
🎯 面试追问演练

:「如果 HML 在五因子里冗余了,为什么实务里还要保留它?」

答思路:① 冗余是「在美股这个样本、这段时间」的统计结论,换市场/换样本未必成立,保留它增强稳健性。② HML 有清晰的经济直觉和最长的历史数据,便于沟通和归因。③ RMW/CMA 依赖财务数据,更新慢、噪声大、跨市场可比性差;HML 用价格和账面值,可得性更好。④ 从组合角度,多一个低相关的腿有助分散——即使其边际 Alpha 不显著,它仍能改善风险结构。收尾:「统计显著性和实务价值是两回事,模型选择要兼顾解释力、稳健性和可操作性。」

量价因子与因子风险(Q31–Q34)

Q31常见的量价因子有哪些?如何构建?
🌱 大白话先懂

量价因子,就是只看股价和成交量算出来的特征,不碰公司财报,比如「最近一直在涨」「换手特别频繁」。构建,就是把这些原始数字洗干净:去掉极端的怪值、统一尺度、再抹平行业和大小盘的差异,让不同股票能放在一起公平比较。

标准答案

因子类别代表因子构建逻辑
动量12-1 月动量过去 12 个月累计收益(跳过最近 1 个月)
反转短期反转过去 1 个月 / 1 周收益取反
波动率特质波动率回归残差的标准差(IVOL)
流动性Amihud 非流动性$|r| / \text{Volume}$ 的均值
换手率平均换手率日均成交量 / 流通股本
量价背离价升量缩价格与成交量趋势方向不一致的程度

构建流程

1. 原始值计算 → 2. 截面标准化(z-score 或排序) → 3. 异常值处理(MAD / Winsorize) → 4. 行业/市值中性化 → 5. 缺失值填充

🔬 深度拓展:因子加工流水线,每一步到底在「修」什么?(含代码)

原始因子值几乎不能直接用。下面逐步拆解,每一步都问一句「不做会怎样」:

  1. 原始值计算:按定义算出每只股票当期的因子值,例如动量 = $\prod_{t-12}^{t-1}(1+r_t)-1$。注意跳过最近 1 个月是为了避开短期反转效应的污染。
  2. 去极值(MAD / Winsorize)—— 先去极值还是先标准化?先去极值。
    为什么:少数极端值(财报异常、并购、数据错误)会把均值和标准差严重带偏,导致 z-score 失真。
    MAD 法:用中位数和绝对中位差,比均值/标准差更抗极端值:$\text{MAD}=\text{median}(|x_i-\tilde x|)$,把超出 $\tilde x \pm 3\cdot1.4826\cdot\text{MAD}$ 的值截断。Winsorize 则是把超过 1%/99% 分位的值压回分位点。
  3. 截面标准化(z-score / rank):把不同量纲、不同分布的因子拉到同一尺度,才能横向比较与合成。
    为什么用截面(cross-section)而非时序:选股是「同一天在股票间排序」,所以要在每个截面日内做标准化。$z_i = (x_i - \mu_{\text{cs}})/\sigma_{\text{cs}}$。若因子分布偏态严重,直接用排序(rank)更稳健——这也是为什么 IC 常用 RankIC。
  4. 行业 / 市值中性化:用因子对行业哑变量和 $\ln(\text{市值})$ 做截面回归,取残差作为中性化后的因子。
    为什么:很多量价因子天然和行业、市值相关(例如小盘股波动天然大)。若不中性化,你的「波动率因子」可能只是变相在赌小盘 / 赌某个行业,暴露了你不想要的风险,且收益会被规模/行业周期主导。中性化后,因子表达的是「同行业、同市值里相对强弱」的纯净信息。
  5. 缺失值填充:标准化后缺失值通常填 0(即「该股票在此因子上无信息,取行业/截面中位数水平」)。
    为什么不直接删:删股票会缩小可投资域、引入选择偏差;填 0 等价于让缺失股票在该因子上「不表态」,对组合权重影响中性。
import numpy as np, pandas as pd

def mad_clip(s, n=3.0):
    med = s.median()
    mad = (s - med).abs().median() * 1.4826
    return s.clip(med - n*mad, med + n*mad)

def neutralize(factor, ind_dummies, lncap):
    # factor 对 行业哑变量 + ln市值 做截面回归,取残差
    X = pd.concat([ind_dummies, lncap.rename("lncap")], axis=1).values
    y = factor.values
    beta, *_ = np.linalg.lstsq(X, y, rcond=None)
    return pd.Series(y - X @ beta, index=factor.index)

def build_factor(raw, ind_dummies, lncap):
    f = mad_clip(raw)                      # 1. 去极值
    f = (f - f.mean()) / f.std()           # 2. 截面标准化
    f = neutralize(f, ind_dummies, lncap)  # 3. 行业市值中性化
    return f.fillna(0.0)                   # 4. 缺失填 0
⚠️ 常见误区

顺序很关键:去极值 → 标准化 → 中性化。如果先标准化再去极值,极端值已经污染了均值/方差;如果不中性化就直接合成多因子,几个因子可能共同押注同一个行业/规模敞口,看似分散实则集中。

🎯 面试追问演练

:「中性化是回归取残差,那中性化会不会把因子的有效信息也一起去掉了?」

答思路:会去掉的恰恰是「与行业/市值共线的那部分」收益预测力,这部分本来就不该算作 Alpha——它是规模/行业 Beta。如果中性化后因子就没效了,说明它原本的收益主要来自规模或行业暴露,而非独立信号,这正是我们想识别出来的。反之,中性化后仍显著的因子,才是真正能在「同类股票内部」选股的纯净 Alpha。补充:是否中性化也取决于策略目标——如果你就是要做行业轮动,那就不该对行业中性。

Q32什么是因子 IC(Information Coefficient)和 IR(Information Ratio)?
🌱 大白话先懂

IC,就是给因子打的「准头分」,看它猜涨跌准不准,有点像考试正确率。IR,看一个策略每冒一份险能多赚多少,是性价比。有个朴素的道理:哪怕单次准头很低,只要出手次数足够多,也能积少成多、赚到稳稳的钱。

标准答案

  • IC:因子值与下期收益率的截面Rank 相关系数(Spearman)。衡量因子单期选股能力。
    • $IC \gt 0.03$ 就算不错了。
    • 更稳健的变体:RankIC、quantile-spread。
  • ICIR:IC 均值除以 IC 标准差,衡量因子的稳定性:

    $$ICIR = \frac{\overline{IC}}{\sigma_{IC}}$$

    $ICIR \gt 0.5$ 通常认为是优秀因子。

  • IR(策略层面):年化超额收益除以年化跟踪误差,衡量策略承担主动风险的效率:

    $$IR = \frac{\text{年化超额收益}}{\text{年化跟踪误差}}$$

基本定律(Fundamental Law of Active Management)

$$IR \approx IC \times \sqrt{BR}$$

其中 $BR$(Breadth)是独立决策次数。含义:微弱的 IC 也可以通过大量独立决策积累出好的 IR。

🔬 深度拓展:推导 $IR \approx IC\sqrt{BR}$,以及 RankIC / ICIR / t 统计的关系

① 基本定律的直觉推导

把「主动管理」想成一连串赌注。每次决策(每只股票每期)你下一个注,注的「预测准确度」由 IC 衡量,注的「数量」由 BR(独立决策次数)衡量。关键假设:各次决策相互独立

单次决策的信息含量 $\propto IC$。$BR$ 次独立决策叠加时,信号(期望收益)线性累加 $\propto BR\cdot IC$,而噪声(标准差)按独立求和只增长 $\propto\sqrt{BR}$。信噪比 = 信号/噪声:

$$IR=\frac{\text{信号}}{\text{噪声}}\propto\frac{BR\cdot IC}{\sqrt{BR}}=IC\cdot\sqrt{BR}$$

含义有多反直觉:一个 IC 只有 0.05(几乎看不出来)的弱信号,只要能在 1000 次独立机会上反复使用,$IR\approx0.05\times\sqrt{1000}\approx1.58$——这就是「广度战胜深度」。高频/宽截面策略正是靠 BR 取胜,而不是靠某一笔押注特别准。

⚠️ 「独立」是关键漏洞

$\sqrt{BR}$ 假设决策互相独立。现实中同一天 3000 只股票的预测高度相关(共同的市场/行业/因子驱动),有效广度远小于名义广度。Grinold-Kahn 后来引入「转移系数 TC」修正:$IR\approx TC\cdot IC\cdot\sqrt{BR}$,TC 衡量你的实际持仓和理想持仓的相关性(受约束、成本拖累)。面试里能点出「BR 不是简单数股票×天数,要看决策的相关性」就很加分。

② RankIC vs IC(普通 Pearson IC)

  • 普通 IC:因子原始值与收益的 Pearson 相关,对极端值和非线性敏感。
  • RankIC:先把因子值和收益都转成排名再求相关(即 Spearman)。更稳健,不受单调变换影响,能容忍极端值——这也是实务首选。如果一个因子 IC 高但 RankIC 低,多半是几个极端样本撑起来的,不可靠。

③ ICIR 与 t 统计的关系

设有 $N$ 期 IC 观测,检验「IC 均值是否显著大于 0」的 t 统计量为:

$$t=\frac{\overline{IC}}{\sigma_{IC}/\sqrt{N}}=\frac{\overline{IC}}{\sigma_{IC}}\cdot\sqrt{N}=ICIR\cdot\sqrt{N}$$

所以 ICIR 就是「每期的 t 贡献」,而 ICIR(按期)年化后约为 $ICIR_{\text{年}}=ICIR_{\text{月}}\cdot\sqrt{12}$。这把 Q38 的「t 统计量」和这里的 ICIR 打通了:它们度量的是同一件事——信号相对其波动有多稳。

🎯 面试追问演练

:「我有两个因子,A 的 IC 均值 0.08 但 ICIR 0.3,B 的 IC 均值 0.04 但 ICIR 0.8,选哪个?」

答思路:通常优先 B。IC 均值高代表「好的时候很赚」,但 ICIR 低说明 IC 波动大、时灵时不灵,可能某些时期还反向,组合层面贡献的 IR 不稳、回撤大。B 的 IC 虽小但极稳,按 $IR\approx ICIR\cdot(\text{广度调整})$ 它能贡献更可靠的风险调整收益,且更容易和其他因子叠加。当然还要看:两者相关性如何(能否互补)、IC 衰减速度、容量与成本。收尾:「研究里我更看重 ICIR / 稳定性,而不是孤立的 IC 峰值——稳定的弱信号可叠加,不稳的强信号会拖累组合。」

Q33因子的多重共线性问题如何处理?
🌱 大白话先懂

有时几个因子其实在说同一件事(比如都在量股票便不便宜)。把它们一起用,电脑会算糊涂,仓位忽正忽负乱跳。共线性(信息高度重复)的解法不是删掉,而是把重复的部分合并或剥离,只留下每个因子各自独特的信息。

标准答案

当多个因子高度相关时(如 EP 和 BP 都是价值因子),回归系数不稳定,单因子测试有效但组合后失效

处理方法

  1. 正交化:对因子做 Gram-Schmidt 正交化或回归取残差。
  2. PCA 降维:提取主成分作为合成因子。
  3. 因子分组:同类因子等权合成为一个复合因子。
  4. 弹性网络(Elastic Net):L1+L2 正则化自动处理共线性。
  5. VIF 检验:方差膨胀因子 $\gt 10$ 视为严重共线性。
🔬 深度拓展:为什么「单因子有效、组合后失效」?正交化 / 残差法 / VIF 的数值直觉

① 为什么共线性会让组合「失效」?

多元回归 $y=X\beta+\epsilon$ 的系数解是 $\hat\beta=(X^TX)^{-1}X^Ty$。当两列因子高度相关,$X^TX$ 接近奇异(行列式趋近 0),求逆时会被放大——系数方差爆炸

$$\text{Var}(\hat\beta_j)=\frac{\sigma^2}{(1-R_j^2)\sum_i(x_{ij}-\bar x_j)^2}$$

其中 $R_j^2$ 是「因子 j 被其它因子解释的程度」。$R_j^2\to1$(高度共线)时分母 $\to0$,方差 $\to\infty$。后果:系数符号乱跳、一正一负相互抵消(一个因子 +5,相关的另一个 -4.8),样本外稍有扰动权重就翻转——这就是「单测都行、放一起就废」。

② VIF 的数值直觉

方差膨胀因子 $VIF_j=\dfrac{1}{1-R_j^2}$ 就是上式里那个放大倍数。$R_j^2=0.9\Rightarrow VIF=10$(方差被放大 10 倍),$R_j^2=0.95\Rightarrow VIF=20$。所以「VIF>10」对应「某因子 90% 的变动能被其它因子解释」,确实该处理了。

③ 正交化 / 残差法的几何直觉

Gram-Schmidt 正交化:把因子看成向量。要让因子 B 不和 A 共线,就把 B 投影到 A 上的分量减掉,只留下垂直于 A 的残差部分

$$B^{\perp}=B-\frac{\langle B,A\rangle}{\langle A,A\rangle}A$$

这正是「B 对 A 回归取残差」。残差 $B^{\perp}$ 与 A 正交(相关性=0),表达的是「B 中 A 没有的增量信息」。多个因子按顺序逐一对前面所有因子取残差,就得到一组互不相关的正交因子,回归立刻稳定。

⚠️ 正交化的代价:顺序敏感 + 可解释性下降

Gram-Schmidt 结果依赖正交化顺序——先放哪个因子,它就保留全部信息,后面的只拿残差。所以要把「最想保留原貌」的核心因子放前面(业界常称对称正交化 Schmidt 的变体来缓解顺序依赖)。另外残差因子的经济含义会变模糊(「BP 里 EP 没有的部分」不好讲故事)。

④ 各方法适用场景

方法适合缺点
因子分组等权合成同类因子(多个价值代理)粗糙,丢失差异信息
残差正交化有明确主次关系顺序敏感、解释性差
PCA纯预测、不需解释主成分无经济含义
Elastic Net因子很多、想自动筛需调参,黑箱
🎯 面试追问演练

:「既然共线性这么麻烦,为什么不干脆只留一个最强的因子,把相关的都删掉?」

答思路:删因子会丢掉「增量信息」。两个相关因子相关性 0.8 也意味着 36% 的方差不共享——那部分可能正是独立的 Alpha。更好的做法是正交化/合成,保留增量、消除冗余。而且「最强」是样本内结论,样本外哪个更强不一定,多保留几个互补腿能分散单因子失效风险。收尾一句:「共线性的解法是重组信息而不是丢弃信息——目标是让每个因子贡献正交的增量。」

Q34什么是因子拥挤(Factor Crowding)?如何检测和应对?
🌱 大白话先懂

拥挤,就是太多人用同一个赚钱套路、挤在同一批股票上。平时相安无事,可一旦有人急着跑,大家会同时夺路而逃,价格被踩踏暴跌、一起巨亏。应对靠多备几套不同套路、留够现金、别上太多杠杆(借钱放大仓位)。

标准答案

因子拥挤:过多资金追逐同一个因子策略,导致因子估值过高、预期收益下降、崩盘风险上升。

检测信号

  • 因子多空组合的估值价差达到历史极端。
  • 短边借股成本飙升(做空拥挤)。
  • 同类策略的相关性上升。
  • 因子回撤加深且恢复变慢。

历史案例:2007 年 8 月量化危机——大量统计套利基金同时去杠杆,价值和动量因子在几天内回撤超过 20%。

应对

  • 监控因子估值水平和拥挤度指标。
  • 分散因子来源(基本面+量价+另类数据)。
  • 动态调整因子暴露。
  • 保持流动性缓冲。
🔬 深度拓展:2007 年 8 月「Quant Quake」全过程,与去杠杆螺旋

① 事件复盘:2007 年 8 月 6–9 日的三天

当时大量量化多空基金(market-neutral)持有高度相似的因子组合:做多便宜/高质量/有动量的股票,做空贵的/低质量的。它们彼此并不知道仓位重叠有多严重——直到一起被迫平仓。

  1. 导火索:某家(或几家)大基金可能因为信贷市场压力(次贷危机正在酝酿)需要筹集现金,开始平掉股票多空仓位——卖出它的多头、买回它的空头。
  2. 价格逆动:因为大家持仓雷同,它平仓时砸的正是别人的多头、拉的正是别人的空头。于是这些「应该跑赢」的因子组合突然巨亏。
  3. 去杠杆螺旋(deleveraging spiral):亏损 → 触及风控/保证金线 → 被迫减仓 → 减仓又是卖多买空 → 进一步压低因子收益 → 更多基金触线 → 再减仓……正反馈不断自我强化。
  4. 极端反差:8 月 6–8 日因子组合录得 $-5\sigma$ 到 $-10\sigma$ 级别的亏损(按历史波动几乎不可能发生);而 8 月 10 日去杠杆结束后,因子又暴力反弹——这恰恰证明亏损源于流动性踩踏而非基本面,是典型的拥挤+杠杆事故。

关键教训:风险不只来自你的因子本身,还来自谁和你持有一样的仓位、用了多少杠杆。当持仓拥挤 × 高杠杆 × 共同的风控规则,市场就内生了脆弱性——平时低相关的策略会在压力下相关性骤升(correlation goes to 1)。

② 拥挤检测指标(实务)

维度指标拥挤信号
估值因子多空腿的估值价差(如多头 P/E ÷ 空头 P/E)达到历史高分位
做空空头组合的借券成本 / 利用率(short interest)飙升
拥挤度因子组合的成对相关性、机构共同持仓重叠度(13F)上升
动态因子收益自相关、回撤深度与恢复时长回撤变深、恢复变慢
资金流同类 ETF/基金的资金净流入、换手持续大幅流入
🎯 面试追问演练

:「如果你监测到自己主用的因子已经很拥挤,但回测显示它依然有效,你会怎么做?」

答思路:回测的「有效」是历史平均,掩盖了拥挤带来的尾部崩盘风险上升。我会:① 降杠杆、留流动性缓冲(拥挤事故的杀伤主要来自被迫平仓,杠杆是放大器);② 降低该因子权重、增配低相关的因子来源(另类数据、不同频率),稀释共振;③ 提高对该因子的换手/估值门槛,避免在估值极端时还加仓;④ 做压力测试和「拥挤情景」演练,预设强制减仓的纪律而非临时拍脑袋。收尾:「拥挤不是让我放弃因子,而是让我把它从『满仓 all-in』降为『有风险预算、可快速撤离』的配置。」

组合优化(Q35–Q36)

Q35均值-方差优化(MVO)的原理和问题?
🌱 大白话先懂

这是一套帮你算「每只股票该买多少钱」的数学方法,目标是同样风险下收益最大。毛病是它太较真:你给的收益预测稍微偏一点点,它就把仓位调得天翻地覆,还爱把钱全压在少数几只票上,实战里很不稳。

标准答案

原理(Markowitz, 1952)

$$\min_w \frac{1}{2} w^T \Sigma w \quad \text{s.t.} \quad w^T \mu = \mu_{\text{target}}, \quad \mathbf{1}^T w = 1$$

求解得到有效前沿上的最优组合。

实践中的问题

  1. 对输入极度敏感:期望收益率微小变化会导致权重剧烈变动("误差最大化器")。
  2. 估计风险:期望收益率极难准确估计,协方差矩阵含噪。
  3. 集中持仓:最优解常常极度集中在少数资产上。
  4. 忽略交易成本:理论最优组合频繁调仓不现实。

改进方法

  • Black-Litterman 模型(融入主观观点)。
  • 加入正则化约束(如持仓上下限、换手约束)。
  • 风险平价(Risk Parity):权重与波动率近似成反比:$$w_i \propto \frac{1}{\sigma_i}$$
  • 最小方差组合(不需要估计期望收益率)。
  • 收缩估计(Ledoit-Wolf)改进协方差矩阵输入。
🔬 深度拓展:为什么 MVO 是「误差最大化器」?数值直觉与缓解手段

① 为什么叫 error maximizer(误差最大化器)?

无约束 MVO 的解析解是:

$$w^*\propto\Sigma^{-1}\mu$$

问题出在两个地方的乘积:

  • $\mu$ 极难估:期望收益的估计误差巨大(年化收益的标准误差和波动同量级,几乎和噪声一样大)。优化器无法分辨「真的高收益」和「估计噪声导致的虚高」,于是它专挑那些因为估计误差而看起来收益最高的资产重仓——它在系统性地放大、押注估计误差,故称「误差最大化器」。
  • $\Sigma^{-1}$ 放大相关资产的误差:当两资产高度相关,$\Sigma$ 接近奇异,求逆会把微小的 $\mu$ 差异放大成巨大的多空对冲头寸(一个 +300%、一个 -200%),权重剧烈、极端、不稳定。

② 数值直觉(一个小例子)

两个资产相关性 0.9,你对它们期望收益的估计只差 0.1%(完全在噪声范围内)。MVO 会因为这 0.1% 的差,把组合做成「重仓 A、大幅做空 B」的极端对冲——因为在它眼里 A 是「更高收益、可被 B 对冲掉风险」的免费午餐。明天估计翻转 0.1%,权重就整个反过来。输入的噪声 → 输出的剧烈摆动,这就是敏感性。

③ 三类缓解手段,对应不同病根

手段治哪个病机制
约束(如 $0\le w_i\le 5\%$、禁止做空、换手上限)极端/集中权重直接限制解空间,防止优化器走极端;实证上常比「精确最优」更稳
收缩估计(Ledoit-Wolf)$\Sigma$ 含噪、近奇异把样本协方差向结构化目标(如常相关矩阵)收缩,$\hat\Sigma=\delta F+(1-\delta)S$,改善求逆稳定性
Black-Litterman$\mu$ 难估、不稳以市场均衡隐含收益为先验,再用贝叶斯把你的主观观点按置信度融合,得到平滑、合理的 $\mu$,权重不再极端
最小方差 / 风险平价干脆不估 $\mu$绕开最不可靠的输入(期望收益),只用相对可靠的 $\Sigma$

核心思想:MVO 的脆弱来自「把不可靠的输入当成精确真值去优化」。所有缓解手段本质都是降低对输入精度的依赖——要么约束输出、要么平滑输入、要么干脆少用最不可靠的输入。

🎯 面试追问演练

:「为什么等权重(1/N)组合在很多实证里反而能跑赢精心优化的 MVO?」

答思路:DeMiguel et al.(2009) 的著名结论。原因:MVO 要估 $\mu$ 和 $\Sigma$,估计误差带来的损失,常常超过「最优化」相对「天真分散」带来的理论收益——尤其在资产数多、样本期短时。1/N 不需要任何估计,零估计误差、天然分散、零换手,所以稳健。这不是说优化没用,而是提醒我们:模型复杂度要和数据能支撑的估计精度匹配;与其追求脆弱的精确最优,不如用约束/收缩/先验把优化「钝化」到接近等权但略有倾斜。收尾:「1/N 是检验任何优化器的硬基准——跑不赢它,说明你的估计误差吃掉了优化收益。」

Q36什么是风险平价(Risk Parity)?和等权有什么区别?
🌱 大白话先懂

等权,是每样东西都投一样多的钱。风险平价,是让每样东西「惹的麻烦(波动大小)」一样大。股票比债券能折腾,平摊钱反而让股票担了大头风险;风险平价就多买点稳的债券,把各自担的风险扯平。

标准答案

风险平价:使每个资产对组合总风险的贡献相等。

资产 $i$ 的风险贡献:

$$RC_i = w_i \cdot (\Sigma w)_i$$

风险平价要求:

$$RC_1 = RC_2 = \cdots = RC_N = \frac{w^T \Sigma w}{N}$$

vs 等权:等权是 $w_i = 1/N$(权重相等),风险平价是风险贡献相等。在波动率差异大的多资产组合中,等权会让高波动资产主导风险。

典型应用:Bridgewater 的 All Weather 策略。股债配比中,股票波动率远高于债券,等权配比下股票贡献 90%+ 的风险;风险平价下需要大量增配债券(通常加杠杆),使风险贡献均衡。

🔬 深度拓展:推导 $RC_i=w_i(\Sigma w)_i$ 为何「贡献」之和=总风险,及为何要加杠杆配债

① 风险贡献的推导(欧拉分解)

组合波动率 $\sigma_p=\sqrt{w^T\Sigma w}$ 是权重的一次齐次函数(把所有 $w$ 翻倍,$\sigma_p$ 也翻倍)。由欧拉定理,一次齐次函数等于「各变量 × 其偏导」之和:

$$\sigma_p=\sum_i w_i\frac{\partial\sigma_p}{\partial w_i}$$

对 $\sigma_p=\sqrt{w^T\Sigma w}$ 求偏导:

$$\frac{\partial\sigma_p}{\partial w_i}=\frac{(\Sigma w)_i}{\sqrt{w^T\Sigma w}}=\frac{(\Sigma w)_i}{\sigma_p}$$

这叫资产 $i$ 的边际风险贡献(MRC)——多加一点 $i$ 的权重,总风险增加多少。于是资产 $i$ 的总风险贡献

$$RC_i=w_i\cdot\frac{(\Sigma w)_i}{\sigma_p},\qquad \sum_i RC_i=\sigma_p$$

(教材里常省去分母 $\sigma_p$ 写成 $RC_i=w_i(\Sigma w)_i$,此时 $\sum_i RC_i=\sigma_p^2=$ 总方差,本质相同。)关键:风险贡献能干净地加总成组合总风险,这就是「让每块贡献相等」有意义的数学基础。

② 为什么要加杠杆配债?

对两资产、忽略相关性时,风险平价解约为 $w_i\propto 1/\sigma_i$(权重与波动率成反比)。假设股票年化波动 15%、债券 5%:

$$w_{\text{债}}:w_{\text{股}}=\frac{1}{5}:\frac{1}{15}=3:1\Rightarrow w_{\text{债}}=75\%,\ w_{\text{股}}=25\%$$

这样风险贡献才均衡。但问题来了:75% 配债的组合,预期收益太低——债券收益本来就低,重配债把组合收益拉到不够覆盖目标的水平。

解决办法是加杠杆:先得到「风险均衡」的配比,再整体放大(借钱买更多),把组合总波动加到目标水平(比如 10%)。这样既保持了「股债风险贡献相等」的均衡结构,又把收益拉回可接受区间。这正是 Bridgewater All Weather 的精髓:不在低风险资产上少配,而是借杠杆把整个均衡组合放大

⚠️ 杠杆的隐含风险

风险平价靠「股债负相关 + 债券低波动」成立。一旦遇到股债双杀(如 2022 年加息),债券不再对冲股票,杠杆反而放大亏损——这是风险平价被批评最多的软肋。所以它对「相关性稳定」和「融资成本」的假设很敏感。

③ 三种配置法对比

方法均衡的是需要估 $\mu$?典型结果
等权 1/N名义权重高波动资产主导风险
风险平价风险贡献重配低波动资产(需杠杆补收益)
MVO风险调整后收益权重极端、对输入敏感
🎯 面试追问演练

:「风险平价完全不用期望收益,是不是意味着它假设所有资产的夏普比率相等?」

答思路:正解!可以证明:当所有资产两两相关性相同且夏普比率相等时,风险平价组合恰好等于(杠杆调整后的)夏普最优 / 切点组合。所以风险平价隐含的「先验」就是「我不知道谁收益更高,就假设大家风险调整后收益一样好」——这是一个比 MVO「我能精确估出每个 $\mu$」谦逊得多、也稳健得多的假设。它放弃了预测收益的雄心,换来了对估计误差的免疫。收尾:「风险平价不是不做假设,而是把假设从『难估的 $\mu$』转移到了『更温和的等夏普先验』上。」

回测与策略评估(Q37–Q40)

Q37回测中常见的偏差(Bias)有哪些?
🌱 大白话先懂

回测,就是拿历史数据假装重新交易一遍,看策略灵不灵。但很容易自己骗自己:偷看了当时还不知道的未来消息、只统计活下来的赢家(亏没的早被删了)、专挑走势好的时间段……这些都会让成绩虚高,上线就露馅。

标准答案

偏差描述危害
前视偏差(Look-ahead Bias)使用了回测时刻不可得的未来信息收益虚高,致命
幸存者偏差(Survivorship Bias)只用了存续至今的股票/基金数据高估历史收益
过拟合偏差参数过度拟合历史数据样本外表现崩塌
交易成本忽略不考虑滑点、手续费、冲击成本盈利被吃掉
时间段选择偏差选择有利的回测区间不具代表性

如何减轻

  • 严格使用 point-in-time 数据库。
  • 在回测框架中内置时间戳检查。
  • 分样本内 / 样本外 / 前向验证。
  • 纸交易(Paper Trading)验证。
🔬 深度拓展:每种偏差的真实踩坑案例(重点:前视 & 幸存者)

① 前视偏差——最隐蔽、最致命,常常无意中犯

  • 财报日期踩坑:用 12 月 31 日的年报数据,在 1 月 1 日就拿来选股。但年报实际要到 3–4 月才披露!你用了「当时还不存在」的信息。正确做法:用 point-in-time 数据,按实际披露日而非报告期末日对齐。
  • 复权 / 调整后数据踩坑:用「事后复权」的价格、或事后修正过的财务数据回测。这些数字当时根本拿不到。
  • 标准化用了全样本:对整段历史做 z-score 标准化时,用了包含未来的均值和标准差。应当只用截至当期的滚动统计量。
  • 指数成分调整:用「今天的指数成分股」回测过去——成分是事后才纳入的(这其实也是幸存者偏差的近亲)。

真实案例直觉:一个策略回测夏普 3.0,上线后归零。排查发现——信号用了「收盘后才公布的财务修正值」,且按收盘价成交。等于「看到答案再下注」。前视偏差的可怕在于:它让回测看起来非常好,骗过你自己。

② 幸存者偏差——你只看到了赢家

  • 退市股票被剔除:数据库只保留现在还在交易的股票,破产/退市/被并购的公司被删了。回测于是只在「活下来的赢家」上跑,自然高估收益——你从未买到那些归零的公司。
  • 基金业绩:评价共同基金长期收益时,清盘的差基金消失了,只剩活下来的,行业平均收益被系统性高估(学界估计每年高估 1–1.5%)。
  • 经典反直觉:「二战归来轰炸机弹孔分析」——Abraham Wald 指出该加固的是没弹孔的部位,因为中弹那些部位的飞机根本没飞回来。回测里「没飞回来的股票」就是退市股。

正确做法:用包含退市股的「全样本」数据库(含 delisting returns),让破产的票以真实的 -100% 计入。

③ 其余偏差的踩坑速记

偏差真实踩坑
过拟合把参数从「20 日均线」一路试到「19.7 日」直到回测最漂亮——参数在拟合噪声
交易成本忽略日频反转策略毛收益年化 30%,扣掉双边千分之几的成本和冲击后变负
时段选择只回测 2009–2021 长牛,刻意避开 2008 和 2022,策略「从没见过熊市」
🎯 面试追问演练

:「给你一个夏普 4 的回测,你的第一反应是什么?怎么排查它是不是有前视偏差?」

答思路:第一反应是怀疑——夏普 4 在真实世界极罕见,大概率是 bug 或偏差而非天才。排查清单:① 检查每个数据点的可得时间戳,财务数据是否按披露日对齐、价格是否未来复权;② 把所有信号统一滞后一期(lag 1),如果收益断崖式下跌,说明原来在用同期/未来信息;③ 检查标准化/归一化是否用了全样本统计量;④ 检查股票池是否含退市股;⑤ 看收益是否集中在少数几天/几只票(可能是数据错误);⑥ 最后做严格的样本外 + 纸交易。收尾:「好得不真实的回测,先假设它是错的,去证伪——这比急着上线安全得多。」

Q38常用的策略评估指标有哪些?各自的局限?
🌱 大白话先懂

光看赚多少不够,还得看担了多少风险、稳不稳。夏普比率,就是「每担一份险能赚多少」的性价比分。但每个分都有盲点,比如夏普看不出「平时小赚、偶尔巨亏」的隐患,所以要好几个指标一起看。

标准答案

指标公式/含义局限
年化收益率$(1+R_{\text{total}})^{252/T} - 1$不反映风险
夏普比率(Sharpe)$\frac{R_p - R_f}{\sigma_p}$假设正态分布,忽略尾部风险
索提诺比率(Sortino)用下行偏差替代标准差更关注下行风险,但对下行的定义依赖阈值
最大回撤(Max DD)峰值到谷底的最大跌幅只描述单次最坏情况
Calmar 比率年化收益 / 最大回撤对单一极端事件敏感
信息比率(IR)超额收益 / 跟踪误差依赖于基准选择

进阶指标

  • t 统计量:检验夏普比率是否显著异于零(下式中 $SR$ 即上表的夏普比率 Sharpe Ratio,$T$ 为样本期数):$$t = \frac{SR \times \sqrt{T}}{\text{correction}}$$
  • Bailey-López de Prado 建议:至少需要 $t \gt 3$ 才可信(考虑多重检验后)。
🔬 深度拓展:夏普的正态假设缺陷、Deflated Sharpe Ratio、为何要 $t\gt3$

① 夏普比率的正态假设缺陷

夏普比率 $SR=\dfrac{R_p-R_f}{\sigma_p}$ 只用了前两阶矩(均值、方差),隐含假设收益近似正态。但真实策略收益常有:

  • 负偏(left skew):很多策略「平时小赚、偶尔巨亏」(如卖期权、套利、carry)。它们夏普很高,但实际上是在捡硬币于压路机前——尾部藏着毁灭性风险,夏普完全看不到。
  • 肥尾(excess kurtosis):极端事件比正态预测的频繁得多,$\sigma$ 低估了真实风险。

所以两个夏普都等于 2 的策略,一个可能是稳健的,另一个可能是「卖灾难保险」,风险天差地别。索提诺、最大回撤、偏度/峰度就是用来补这块的。

② 为什么需要 $t\gt3$(而不是统计学常规的 $t\gt2$)?

核心问题是多重检验(multiple testing)。常规 $t\gt1.96$(约 2)对应「单次检验 5% 假阳性率」。但量化研究里,你不是只测一个策略——你试了成百上千个因子、参数、组合,然后挑出最好的那个。

如果你独立试 20 个纯随机的策略,按 5% 假阳率,平均就有 1 个会「显著”——纯靠运气。试 1000 个,会有约 50 个假阳性「看起来很棒」。你挑出来的「最佳策略」极可能就是这种幸运噪声。

提高门槛到 $t\gt3$(对应单次 ~0.1% 假阳率)就是在为「我偷看了很多次」付出代价——这正是 Bonferroni 等多重检验校正的精神:试得越多,门槛越高

③ Deflated Sharpe Ratio(DSR)的直觉

Bailey & López de Prado 的 DSR 把上面的逻辑做成公式。直觉三句话:

  1. 你试了 $N$ 个策略,挑出最高夏普——这个最大值本身期望就大于 0,哪怕所有策略真实夏普都是 0(顺序统计量:试得越多,最大值越高)。
  2. DSR 先估出「在你试的次数 $N$、收益的偏度峰度下,纯靠运气能达到的夏普基准是多少」。
  3. 再问:你观测到的夏普,显著超过这个运气基准吗?超过才算真本事。

它同时惩罚:试的次数多($N$ 大)、样本短($T$ 小)、负偏、肥尾。这些都会抬高「运气门槛」、压低 DSR。

⚠️ 关键诚实点:要记录你试了多少次

DSR 需要 $N$(试验次数)。很多人作弊:只报告最后那个漂亮策略,假装只试了一次。诚实的研究流程应当记录所有试过的变体,否则任何多重检验校正都无从谈起——这也是为什么 López de Prado 强调「研究日志」。

🎯 面试追问演练

:「一个策略样本内夏普 2.5、$t=2.2$,你会上线吗?」

答思路:不会,至少不直接上。① $t=2.2$ 只够单次检验的门槛,但我们做了大量搜索,要按多重检验看——$t\gt3$ 才稳,2.2 很可能是搜索出来的运气。② 要先问「试了多少个变体」,算 Deflated Sharpe。③ 检查收益分布的偏度/峰度——夏普 2.5 若来自负偏策略,尾部风险被掩盖。④ 看样本外 / walk-forward 表现是否一致。⑤ 最关键:有没有事前的经济学逻辑,还是纯数据挖掘。收尾:「2.2 不是不能要,而是它要求我先排除『多试出来的运气』和『隐藏的尾部风险』,再用样本外和经济逻辑交叉验证。」

Q39什么是过拟合?如何在策略开发中避免?
🌱 大白话先懂

过拟合,就是策略把历史背得太熟,连碰巧的巧合(噪声)都当成规律记住了,一换新数据就露馅。像死记答案的学生,考原题满分、换道新题就傻眼。防它要用「没见过的数据」检验,还要有讲得通的道理撑着。

标准答案

过拟合:模型/策略在历史数据上表现优异,但在新数据上表现大幅衰减。本质上是拟合了噪声而非信号

判断信号

  • 样本内夏普比率远高于样本外。
  • 策略逻辑过于复杂(大量参数、特殊规则)。
  • 对参数微调极度敏感。

避免方法

  1. 数据层面:训练集/验证集/测试集严格分离;使用 Walk-Forward 验证。
  2. 模型层面:限制参数数量;用简单模型作为基线。
  3. 统计层面:对多重测试做校正(Deflated Sharpe Ratio)。
  4. 经济学层面:策略逻辑必须有合理的经济学解释。
  5. 稳健性检验:更换时间窗口、市场、参数范围看策略是否稳定。

Marcos López de Prado 的提醒:回测更适合承担验证职责,研究本身应先来自假设与机制。

🔬 深度拓展:样本内外夏普落差、Walk-Forward、为何「经济解释优先」

① 样本内 vs 样本外的夏普落差——过拟合的体温计

关键诊断指标是「衰减度」:

$$\text{衰减} = SR_{\text{样本内}} - SR_{\text{样本外}}$$

健康策略只有小幅衰减(信号真实,新数据上仍有效);过拟合策略断崖下跌(样本内 3.0、样本外 0.2),因为它记住的是历史的噪声,而噪声不会重复。López de Prado 的 PBO(Probability of Backtest Overfitting) 就是量化「样本内最优的配置,在样本外排到后半段的概率」——概率越高,越是过拟合。

② Walk-Forward 验证:模拟「真实地往前走」

普通的「随机划分训练/测试」对时间序列是错的(会用未来训练、预测过去,泄漏信息)。Walk-Forward 尊重时间箭头:

窗口1: 训练[2010-2013] → 测试[2014]
窗口2: 训练[2011-2014] → 测试[2015]
窗口3: 训练[2012-2015] → 测试[2016]
...每次只用过去拟合参数,在紧接着的未来段检验,再滚动前移
  • 滚动窗口(rolling):训练窗长度固定,整体往前滑(适应市场变化)。
  • 扩展窗口(anchored/expanding):起点不变,训练集越来越长(用尽所有历史)。

把每个测试段的收益拼起来,得到一条从未被参数拟合污染过的样本外曲线——这比单次样本外更接近真实运行。进阶有 López de Prado 的 CPCV(组合purged交叉验证),用 purge/embargo 切断训练测试间的信息泄漏。

③ 为什么「经济学解释优先」是最强的防过拟合武器?

统计手段(样本外、DSR、Walk-Forward)都是事后检验,能减少但不能消除「碰巧好看」的风险——只要你搜索空间够大,总能撞到通过所有检验的运气策略。

事前的经济逻辑则从源头压缩了搜索空间:你不是盲目暴力搜参数,而是先有一个关于市场为什么会这样定价的假设(行为偏差、风险补偿、结构性约束、流动性供给……),再去数据里验证它。这把「从 10000 个随机想法里挑最好的」变成「检验 1 个有理由的想法」——多重检验的负担骤降,假阳性概率骤降。

López de Prado 的核心倡议正是:回测是验证工具,不是发现工具。先有机制假设,再用回测证伪;而不是对着回测曲线反复调参、让回测来「发明」策略——后者几乎必然过拟合。

✅ 一句话区分

因为 X 经济机制,所以这个信号应该有效,回测确认了」是好研究;「我试出来这组参数回测最好,编一个故事解释它」是过拟合(HARKing:事后编假设)。方向反了。

🎯 面试追问演练

:「Walk-Forward 也通过了,DSR 也达标了,是不是就一定没过拟合?」

答思路:不能保证。① 如果你反复看 Walk-Forward 结果再调策略,样本外其实已经变成了「第二个样本内」——信息泄漏回流,检验失效。② 所有历史检验都只覆盖已发生的市场状态,遇到结构性新情景(新政策、新参与者)仍可能失效。③ 检验本身也是有限样本,存在统计误差。所以最终防线还是经济逻辑 + 小仓位实盘/纸交易 + 持续监控衰减。收尾:「过拟合不能被某个检验『一次性证伪』,它是个需要持续警惕的概率——统计检验降低它,经济逻辑约束它,实盘监控兜底它。」

Q40什么是交易成本模型?如何估计市场冲击成本?
🌱 大白话先懂

买卖股票要花钱:手续费、买价卖价之间的差价,还有你大笔买卖时会把价格推得对自己不利(这叫冲击成本,下单块头越大越费劲)。频繁换股的策略账面上看着赚,扣掉这些成本可能白忙一场。

标准答案

交易成本构成

  • 显性成本:佣金、印花税、交易所费用。
  • 隐性成本:买卖价差(bid-ask spread)、市场冲击(market impact)、时机成本。

市场冲击模型

Almgren-Chriss 模型(经典):

$$\text{Impact} = \sigma \cdot \gamma \cdot \left(\frac{V}{ADV}\right)^{\delta}$$

其中 $V$ 是订单量,$ADV$ 是日均成交量,$\gamma$ 和 $\delta$ 是经验参数。

平方根模型(业界常用简化版):

$$\text{Impact} \approx \sigma \cdot \sqrt{\frac{V}{ADV}}$$

重要性:高换手策略(如短期反转)的收益可能被冲击成本完全吃掉。策略开发时必须将冲击成本纳入回测。

🔬 深度拓展:Almgren-Chriss、平方根定律,与高换手策略为何「赚了寂寞」

① 市场冲击是什么、为什么是凹的(平方根)?

市场冲击 = 你自己的交易把价格推往不利方向的成本。买得多,价格被你买高;卖得多,被你砸低。它和价差不同:价差是「过马路的固定过路费」,冲击是「你块头越大、过得越费劲」的拥挤成本。

实证发现冲击对订单大小是凹函数(平方根而非线性):$\text{Impact}\propto\sqrt{V/ADV}$。直觉——市场有「弹性」,下单后流动性会陆续补充,所以单位冲击随规模递减;但仍随规模上升,因为你消耗了订单簿深度。把订单做成日成交量 1% 和 4%,冲击不是 4 倍而是约 2 倍($\sqrt4=2$)。

② Almgren-Chriss 模型的两难:冲击 vs 时机风险

AC 模型的精髓不只是一个冲击公式,而是一个最优执行框架。当你要清掉一大笔仓位,面临权衡:

  • 交易太快 → 冲击成本大(短时间砸盘/扫货,价格被推得厉害)。
  • 交易太慢 → 时机风险(timing risk)大:拖得越久,价格越可能因市场波动 $\sigma$ 自己漂走,给你带来不确定性。

AC 用「执行成本均值 + $\lambda\times$ 执行成本方差」构造目标函数($\lambda$ 是风险厌恶),解出一条最优交易轨迹(trading trajectory)——风险厌恶越高,越倾向快速完成(少冒时机风险);越不在意波动,越铺开慢慢交易(省冲击)。这就是 VWAP/TWAP/IS 等执行算法的理论根。

③ 为什么高换手策略「收益被冲击吃掉」——短期反转的例子

短期反转策略:买过去一周跌得最多的、卖涨得最多的,赌它们反弹/回落。它在毛收益层面(paper)往往非常漂亮,IC 高、夏普高。但它有两个致命特征:

  1. 极高换手:信号每周(甚至每天)翻新,要不断调仓——年换手可达几十倍。每次调仓都付一次冲击+价差。
  2. 专挑流动性差的票:反转收益常集中在小盘、低流动性股票(它们才会被错杀又反弹),而这些恰恰是 $ADV$ 小、冲击成本最高的票。

组合起来:换手 × 冲击 × 标的流动性差 = 成本爆炸。一个毛年化 30% 的反转策略,扣掉双边价差和按平方根模型估的冲击后,净收益可能归零甚至为负。这就是为什么短期反转「学术上显著、实务上难做」——它的 Alpha 大部分是对承担流动性提供与交易成本的补偿,普通投资者赚不到。

⚠️ 回测必须扣成本,且成本随规模变

致命错误是用「固定 bps」一刀切估成本。冲击是规模的函数:你管 100 万时冲击可忽略,管 100 亿时同一策略可能完全做不动(容量 capacity 问题)。回测应当按 $V/ADV$ 动态估冲击,并据此评估策略的容量上限——很多策略的真正瓶颈不是 Alpha,而是「能装多少钱而不把自己的 Alpha 交易没」。

🎯 面试追问演练

:「两个策略毛夏普都是 2,一个年换手 2 倍、一个 50 倍,你怎么判断哪个更值得做?」

答思路:几乎一定选低换手那个。① 净收益 = 毛收益 − 换手×单位成本,50 倍换手对成本极度敏感,毛夏普 2 扣完可能所剩无几甚至为负;2 倍换手的净夏普衰减小。② 高换手策略容量小——规模一大冲击成本非线性恶化,很快触顶。③ 高换手依赖快速、低成本的执行基础设施,门槛高、脆弱。④ 要具体算:估两者的 $V/ADV$ 和持仓流动性,代入平方根模型算净夏普和容量曲线。收尾:「毛收益骗人,净收益和容量才是真相——同样的毛夏普,低换手的策略几乎总是更值钱、更能放规模。」

✅ 本页小结(面试速记)

Alpha 会衰减成 Beta,靠的是持续生产新信号;② 因子加工流水线「去极值→标准化→中性化」每步都有 WHY;③ $IR\approx IC\sqrt{BR}$ 是广度战胜深度,但「独立」是关键漏洞;④ 共线性的解法是重组信息不是丢信息;⑤ MVO 是误差最大化器,缓解=约束/收缩/先验/少用 μ;⑥ 风险平价靠欧拉分解,隐含「等夏普」先验、需杠杆配债;⑦ 回测的敌人是前视与幸存者偏差;⑧ 多重检验下要 $t\gt3$ 与 Deflated Sharpe;⑨ 防过拟合的终极武器是经济逻辑优先;⑩ 净收益与容量才是真相,冲击成本是平方根定律。