折扣率顺周期性:风控参数如何在危机中自我强化
「波动率涨了就提高折扣率」在风控例会上无法被反驳,而折扣率的倒数是杠杆:+1pp 在 h=2% 处逼出 33.33% 强制抛售、h=20% 处只逼出 4.76%,相差精确 7.00 倍(解析误差 7.11e-15)——「+1pp」根本不是可比的单位。200 条路径受控模拟:同一条外生基本面路径下规则自己砸出 −3.194 pp(放大 1.213x),穿越周期只砸 −1.879 pp,杠杆 7.74x→3.72x、累计抛售 78.4% 市场。三条安慰剂精确归零(价格冲击=0 得 0.000000、无杠杆 2.13e-16、零重叠 0.000000):螺旋 = 杠杆 × 拥挤 × 冲击,三个因子数学上完全对称,而拥挤度几乎不出现在任何风险报告里(剂量反应 R²=0.9998)。两条通道次可加:各值 1.848/1.879 pp、相加 3.727 超过实际 3.194,因为它们卖的是同一批头寸,折扣率通道边际值只有 1.315 pp。下限从 2% 抬到 8% 内生减少 45.8%,代价是平静期杠杆 7.74x→5.51x。波动率窗口 250→5 日放大 1.55 倍。最反直觉的是非单调:冲击 −3% 放大 1.291x、−20% 只有 1.141x。97.5% 路径顺周期更惨,但同一消息最低点从 −0.73% 到 −39.88%。12 宇宙 CV=0.0272
核心结论:折扣率顺周期性的问题不在于「危机时提高折扣率」这个决定,而在于折扣率的倒数是杠杆——同样 1pp 的调整,在高杠杆处的强制抛售量是低杠杆处的 7 倍。这是一条恒等式,不是一个可以靠”审慎判断”绕开的经验规律。
每一家清算所、每一个回购交易台都在做同一件事:波动率涨了,提高抵押品折扣率。这个决定在单机构层面无可指摘——它就是 VaR 模型的正确输出。
问题在于,折扣率 和杠杆 的关系是
这是个二阶关系。而风控委员会讨论的单位永远是「上调 1 个百分点」。

一、「+1pp」不是一个可比的单位#
先看纯恒等式,不涉及任何模拟。折扣率从 上调到 ,机构被迫卖出的资产占比是
h_grid = np.array([0.02, 0.03, 0.05, 0.08, 0.10, 0.15, 0.20, 0.30])
for h in h_grid:
h2 = h + 0.01
forced = (h2 - h) / h2 # 强制抛售占总资产比例
print(f"h={h*100:.1f}% → {h2*100:.1f}% 杠杆 {1/h:.2f}x → {1/h2:.2f}x "
f"被迫卖出 {forced*100:.2f}%")python| 折扣率 | 杠杆变化 | 被迫卖出总资产的 |
|---|---|---|
| 2% → 3% | 50.00x → 33.33x | 33.33% |
| 3% → 4% | 33.33x → 25.00x | 25.00% |
| 5% → 6% | 20.00x → 16.67x | 16.67% |
| 10% → 11% | 10.00x → 9.09x | 9.09% |
| 20% → 21% | 5.00x → 4.76x | 4.76% |
| 30% → 31% | 3.33x → 3.23x | 3.23% |
同样的「+1pp」,在 h=2% 处逼出 33.33% 的抛售,在 h=20% 处只逼出 4.76%——相差 7.00 倍。
解析核对:比值应精确等于 ,实测 7.000000,误差 7.11e-15。
这条恒等式的实践含义是:同一份风控文件里写的「压力情景下折扣率上调 1-2 个百分点」,对不同杠杆的交易对手是完全不同的政策。 而文件通常只写一个数字。
二、受控模拟:规则自己砸出多少#
模拟设定 100 家杠杆异质的基金,持有同一类资产。基本面路径外生给定,与折扣率规则完全无关——这是全部归因的基准线。
真值由构造给定:平静期日波动 0.80%、压力期额外波动 1.30%(合成 1.53%)、基本面累计冲击 −10%、平静期目标杠杆 8x、VaR 乘数 。
def run_system(r_fund, procyclical=True, ...):
for t in range(n):
sig_hat = np.std(hist[-vol_win:])
if procyclical:
h_t = np.clip(K_VAR * sig_hat, h_floor, H_CAP) # 点时 VaR
else:
h_t = h_ttc # 穿越周期恒定
A_cap = util_i * E / h_t # 约束上限
sell = np.maximum(A - A_cap, 0.0) # 只被迫减仓
r_t = max(r_fund[t] - lam * sell.sum() * crowd / MKT_DEPTH, R_FLOOR)
A = np.minimum(A, A_cap) # 先减仓
E = E + A * r_t # 再承受损益
A = A * (1 + r_t)python所有情景跑同一批 200 条基本面路径并取集合均值(paired)。单条路径的结论是运气不是证据——这句话在第八节会有量化版本。
| 口径 | 危机最低点 | 内生放大 |
|---|---|---|
| 基本面路径(外生给定) | −14.98% | — |
| 穿越周期折扣率 | −16.86% | −1.879 pp |
| 顺周期折扣率 | −18.17% | −3.194 pp |
顺周期规则的放大倍数是 1.213x,比穿越周期多跌 1.315 pp,内生部分是后者的 1.70 倍。
配套读数:折扣率峰值 11.60%(穿越周期 7.33%),平均杠杆从 7.74x 掉到 3.72x(去杠杆 51.9%),累计强制抛售 78.4% 市场(穿越周期 46.7%,1.68x)。
注意这里一个容易被忽略的事实:穿越周期规则也砸出了 1.879 pp。 它不是无害的。原因在下一节。
三、两条通道:为什么关掉折扣率只省下一半#
去杠杆螺旋有两条独立的通道:
- 权益通道:亏损 → 净值缩水 → 即使 一动不动,按同样杠杆倍数也必须减仓
- 折扣率通道:波动率上升 → 上调 → 即使一分钱没亏也必须减仓
用冻结实验分离:
| 情景 | 内生放大 | 占总内生 |
|---|---|---|
| 仅折扣率通道(冻结权益) | −1.848 pp | 57.9% |
| 仅权益通道(h 恒定) | −1.879 pp | 58.8% |
| 两者相加 | −3.727 pp | 116.7% |
| 实际总内生 | −3.194 pp | 100% |
两条通道单独跑各值约 1.85 pp,相加 3.727 pp,超过实际的 3.194 pp——交互项是 +0.533 pp(次可加)。
原因很实在:两条通道卖的是同一批头寸。 关掉其中一条,另一条会把大部分抛压补回来。所以折扣率通道的边际贡献只有 1.315 pp,而它「自己」看起来值 1.848 pp——单独测量会高估 1.41 倍。
这是一个对政策评估有直接影响的结论:改折扣率规则能拿到的收益,比”折扣率通道占 58%“这个数字暗示的要小。 权益通道是杠杆本身的属性,改不掉。
四、三条安慰剂:螺旋的三个必要因子#

| 情景 | 内生放大 | 偏差 |
|---|---|---|
| 基准(全效应) | −3.194248 pp | — |
| 安慰剂B 价格冲击 = 0 | +0.000000 pp | 0.000e+00 |
| 安慰剂C 无杠杆(A=E) | −0.000000 pp | 2.13e-16 |
| 安慰剂D 持仓零重叠 | +0.000000 pp | 0.000e+00 |
三条全部精确归零。结论可以写成一个乘积:
任一因子为零,螺旋在数值上完全不存在。
值得停一下的是这三个因子在数学上完全对称,但在公共讨论里的待遇天差地别:杠杆被反复讨论,价格冲击偶尔被提及,拥挤度几乎不出现在任何一份标准风险报告里。
而拥挤度给出的剂量反应是全文最干净的一条:
| 持仓重叠度 | 内生放大 |
|---|---|
| 0% | +0.000 pp |
| 20% | −0.614 pp |
| 40% | −1.240 pp |
| 60% | −1.879 pp |
| 80% | −2.530 pp |
| 100% | −3.194 pp |
斜率 −0.0319 pp/百分点重叠,R²=0.9998,截距 0.0209。近乎完美的线性。
这里有个讽刺:监管统一折扣率规则的初衷是公平和可比,而统一规则本身就在制造拥挤。 所有人用同一个 VaR 模型、同一个窗口、同一个置信水平,就会在同一天收到同一个减仓信号。
五、折扣率下限:最便宜的旋钮,但不免费#
| 折扣率下限 | 平静期杠杆 | 内生放大 | 累计抛售 |
|---|---|---|---|
| 2% | 7.74x | −3.194 pp | 78.4% 市场 |
| 4% | 7.73x | −3.190 pp | 78.2% |
| 6% | 7.02x | −2.689 pp | 66.1% |
| 8% | 5.51x | −1.730 pp | 42.7% |
| 10% | 4.46x | −1.113 pp | 27.7% |
| 14% | 3.24x | −0.544 pp | 13.6% |
| 20% | 2.30x | −0.244 pp | 6.1% |
下限从 2% 抬到 8%:内生放大减少 45.8%,抛售量从 78.4% 砍到 42.7% 市场。
但这不是免费的午餐——代价是平静期杠杆从 7.74x 降到 5.51x。这是一笔真实的、每天都在支付的成本,而它换来的收益只在危机中兑现。这就是为什么下限总是被设得太低:成本天天可见,收益十年一次。
注意 2% 和 4% 几乎没有区别(−3.194 vs −3.190)。因为在这条路径上,点时 VaR 算出的折扣率本来就在 5.88% 附近,下限低于它时根本不绑定。下限只有在真正咬住的时候才有用——这听起来像废话,但它意味着「我们设了下限」这句话本身不包含任何信息。
六、波动率窗口:风控以为在提高精度#
| 估计窗口 | 折扣率峰值 | 内生放大 | 累计抛售 |
|---|---|---|---|
| 5 日 | 15.32% | −4.379 pp | 107.2% |
| 10 日 | 13.02% | −3.466 pp | 85.3% |
| 20 日 | 11.60% | −3.194 pp | 78.4% |
| 40 日 | 9.85% | −2.989 pp | 73.5% |
| 60 日 | 8.88% | −2.945 pp | 72.5% |
| 125 日 | 7.38% | −2.867 pp | 70.6% |
| 250 日 | 6.67% | −2.816 pp | 69.5% |
窗口从 250 日缩到 5 日,内生放大从 2.816 涨到 4.379 pp——1.55 倍。
缩短窗口在模型验证的语境里叫「提高对当前市场状态的敏感度」,是加分项。而它在系统层面的效果是提高顺周期性。这两件事是同一个操作的两个名字。
七、非单调:冲击越大,相对放大反而越小#
| 基本面冲击 | 基本面最低 | 实际最低 | 内生放大 | 放大倍数 |
|---|---|---|---|---|
| −3% | −9.87% | −12.75% | −2.875 pp | 1.291x |
| −5% | −11.22% | −14.24% | −3.023 pp | 1.270x |
| −8% | −13.44% | −16.59% | −3.148 pp | 1.234x |
| −10% | −14.98% | −18.17% | −3.194 pp | 1.213x |
| −14% | −18.08% | −21.32% | −3.239 pp | 1.179x |
| −20% | −22.74% | −25.96% | −3.214 pp | 1.141x |
这是全文最反直觉的一条:冲击越大,放大倍数反而越小。
原因是内生项本身几乎是常数(2.9~3.2 pp,因为杠杆和折扣率的调整幅度有天花板),而分母在变大。
实践含义很不舒服:用大危机的历史数据去校准顺周期性的严重程度,会系统性低估它在中等冲击下的相对影响。 而中等冲击的发生频率比大危机高一个数量级。
八、分布:97.5% 更惨,但你只活在一条路径上#

| 口径 | 均值 | 5/95 分位 |
|---|---|---|
| 基本面 | −14.98% | [−25.96%, −3.35%] |
| 穿越周期 | −16.86% | — |
| 顺周期 | −18.17% | [−28.74%, −5.87%] |
- 放大倍数:均值 1.283x,中位 1.207x,95 分位 1.686x,最大 2.644x
- 放大 >1.5x 的路径占 10.5%,>2x 占 2.0%
- 顺周期比穿越周期更惨的路径占 97.5%
97.5% 这个数字很重要:方向上几乎没有争议。 顺周期规则在绝大多数路径上都更糟。
但幅度上争议巨大——同一个消息、同一批基金、同一套规则,最低点从 −0.73% 到 −39.88%。
所以事后复盘里那句「市场反应过度了」,说的可能只是这条极差里的位置,而不是任何关于机制的判断。
九、样本量红线:为什么这场争论吵了快 20 年#
单次危机中「顺周期 − 穿越周期」的最低点差是 −1.315 ± 0.821 pp。
| 要确认的差异 | 需要独立危机数 |
|---|---|
| 0.5 pp | 10.8 次 |
| 1.0 pp | 2.7 次 |
| 实际差异 1.32 pp | 1.6 次 |
系统性危机大约 10 年一次,所以确认 1.32 pp 需要约 16 年。
这个数字比大多数人预期的要小——这是本文少有的好消息。但它有个前提:你得能观测到「同一场危机在穿越周期规则下会怎样」,而这是反事实,现实中不存在。
现实中能观测到的只有实际路径,而实际路径的离散度(5/95 分位跨度 22.9 pp)比规则差异(1.3 pp)大一个数量级。这就是为什么顺周期性的争论从 2008 年吵到现在还没有结论:不是样本量不够,是识别问题无解。
12 宇宙稳健性:内生放大均值 −3.144 pp,SD 0.0855,CV=0.0272。
十、实践清单#
如果你在管理一个受折扣率约束的杠杆组合:
- 不要用「折扣率上调 X pp」做压力测试,用「强制抛售占资产 Y%」。前者不可比,后者才是你真正要面对的东西
- 算一下你的拥挤度,不是你的杠杆。杠杆是你自己的数字,拥挤度是你和别人共有的数字,而后者在数学上同样重要
- 穿越周期折扣率不能救你,它只减少 41%(1.879 vs 3.194 pp)。权益通道改不掉
- 警惕缩短波动率窗口的提议。它在模型验证里是加分项,在系统层面是加分项的反面
- 中等冲击下的相对放大比大危机更严重(1.291x vs 1.141x)。用 2008 校准的顺周期性会低估日常风险
而如果你是在设计规则的那一边:折扣率下限是唯一在这个模型里同时降低内生放大和抛售量的旋钮,代价明确、可计算、每天支付。至于这笔保费值不值——那不是模型能回答的问题。