美元流动性指数:公式详解与历史数据检验
对国盛证券金融工程《美联储流动性的量价解构与资产配置应用——宏观经济量化系列之五》 (2025-05-19,林志朋 / 刘富兵 / 汪宜生)所构建的「美元流动性扩散指数」的完整逆向工程、 公开数据复刻与独立实证检验。
来源更正:数据底稿文件名标注「天风金工」,但 PDF 正文与文件元数据 (
docProps/core.xml的dc:creator = yish wang,即研报署名研究助理汪宜生)均指向国盛证券。 下文统称「国盛指数」。底稿创建于 2025-03-27,数据截至 2026-03-20。
所有数字均由 research/usd_liquidity/ 下的脚本实测产出,可复跑。
0. 一页速览
| 问题 | 结论 |
|---|---|
| 平滑算子是什么 | Holt 线性(二次)指数平滑,非 EWMA。周频 α=1/14、β=1/50;日频 α=1/64、β=1/250 |
| 有没有前视偏差 | 没有。平滑单边因果、周频数据周五才生效(周四 16:30 已发布) |
| 指数怎么合成 | 5 个 ±1 分项 求和后除以 5,缺失分项按 0 计(不是「可用分项均值」) |
| 与美股是什么关系 | 同步偏滞后。CCF 峰值在 k=−20 交易日,对未来收益相关性≈0 |
| 能预警吗 | 不能。但能削减回撤——因为回撤有持续性,不是因为它有预见性 |
| 信号干净吗 | 不干净。36 次清仓信号 56% 是亏的,中位数 −1.63% |
| 收益从哪来 | 3~5 次极端事件。剔除最大的 3 次,其余 33 次合计 −18.9% |
| 统计上显著吗 | 不显著。block bootstrap p = 0.14~0.53 |
| 免费能复刻吗 | 数量维度 100% 精确复刻;市场隐含可代理;预期引导不行 |
1. 公式详解
1.1 总体结构
美元流动性指数(t) = Σ_{i=1..5} signal_i(t) × 0.2 # 缺失分项 signal_i := 0
signal_i ∈ {−1, 0, +1} # +1=宽松, −1=收紧
取值集合 {−1.0, −0.8, …, +0.8, +1.0}——这就是曲线呈阶梯状的原因。
底稿 流动性指数 表的原生公式印证了这一点:
流动性指数!G2 = SUM(B2:F2)
流动性指数!B2 = VLOOKUP(A2, 净流动性!A:G, 7, TRUE)/5
SUM 对空单元格记 0,所以分母恒为 5,而不是当时可用的分项数。
实测:sum(5列, NaN→0) 与总指数一致率 1.0000;mean(skipna) 仅 0.2112。
1.2 Holt 线性指数平滑
研报正文只写「近一年平滑」。实测不是 EWMA、不是滚动均值、不是 HP 滤波,而是 Holt 线性(二次)指数平滑——含 level 与 trend 两个状态:
L[0] = x[0] , T[0] = 0
L[i] = α·x[i] + (1−α)·(L[i−1] + T[i−1]) # level ← 这一列就是底稿的「平滑」
T[i] = β·(L[i] − L[i−1]) + (1−β)·T[i−1] # trend
平滑值 := L
参数(Nelder-Mead 数值精解)
| 频率 | 适用分项 | α | β | 近似形式 |
|---|---|---|---|---|
| 周 | 净流动性、信用支持 | 0.0713735 | 0.0198122 | α≈1/14, β≈1/50 |
| 日 | 预期引导、市场隐含 | 0.0156216 | 0.0039936 | α≈1/64, β≈1/250 |
日/周参数之比 ≈ 4.6 与 5.0,与每周 5 个交易日自洽。
是怎么定位到 Holt 的:先假设 EWMA,用递推式反解每步隐含 α
α_t = (y_t − y_{t−1}) / (x_t − y_{t−1})
得到的 α 不是常数(首值 0.0374、中位 0.0628)→ 排除一阶 EWMA。 α 随时间漂移意味着滤波器存在第二个状态变量(趋势项)或是双边滤波。 分两路验证:双边路线(HP 滤波 λ∈[10,1e9]、居中滚动均值)拟合很差; 二阶因果路线(Holt)relRMSE 直接降到 0.0028。
同时排除的候选(最好也有 5~15% 相对误差):ewm 的 adjust=True/False × span/halflife/com
各参数、各窗口滚动均值、双重 EWMA、roll→ewm、ewm→roll。
ewm(adjust=True)可解析排除:其首步隐含 α 应 ≈ 0.5,实测 0.037。
Holt 是严格单边因果滤波器 → 平滑环节不含前视。
1.3 五个分项
① 净流动性(数量维度)
净流动性 = 流通现金 + 存款准备金
signal = +sign( Holt(净流动性, 1/14, 1/50).diff(13) ) # 13 周 = 1 季度
等价于「总资产 − TGA − 逆回购 − 其他负债与资本」,即基础货币。
② 联储信用支持(数量维度)
基于 Howell (2020) 的抵押品分级:D = 现金/准备金/逆回购,C1 = 中长期国债,C2 = 机构债 + MBS。
流动性供应(D) = 流通现金 + 存款准备金 + 逆回购
期限转换(C1) = 所有国债 − 短期国债
信用增级(C2) = 联邦机构债 + MBS
信用支持 = (C1 + C2) / D
signal = +sign( Holt(信用支持, 1/14, 1/50).diff(52) ) # 52 周 = 同比
③ 预期引导(价格维度)
signal = −sign( Holt(BloombergFedSentiment, 1/64, 1/250).diff(63) ) # 63 交易日
⚠️ 研报正文与底稿矛盾:正文称「方向为正则认为边际宽松」, 但底稿实际用
−sign(),即 Fed Sentiment 上升 = 鹰派 = 收紧。以底稿为准。 实测:+sign一致率 0.0000,−sign一致率 1.0000——恰好为 0 而非 0.5, 说明是整列符号反了,不是随机错位。
④ 市场隐含(价格维度)
基于下次 FOMC 会议当月到期的联邦基金期货推算隐含加息幅度:
期货隐含利率 = 100 − 期货价格
会议当月 EFFR 均值 = (d_before·EFFR_now + d_after·EFFR_implied) / d_month
隐含加息幅度 = EFFR_implied − EFFR_now
signal = −sign( Holt(隐含加息幅度, 1/64, 1/250).diff(63) )
⑤ 公告意外(价格维度)
Kuttner (2001) / Jarociński-Karadi (2020) 高频识别:
surprise_FF4HF = 会议 3 个月后到期的 FF 期货,在会议前后 30 分钟的价格变化
signal = −sign(surprise_FF4HF)
底稿原生公式 公告意外!G2 = IF(F2<0, 1, IF(F2>0, -1, 0)),216 次会议 100% 一致、0 例外。
数据瑕疵:2017-02 至 2017-09 共 6 次会议的
surprise_FF4HF是用公式=D143从surprise_FF1(当月合约)拷来的,并非 30 分钟高频值。其中 3 次因 FF1=0 使信号变成 0, 另 2 次 FF1 与 FF4 符号相反。研报正文自己论证过 FF1 有噪声应弃用,缺数时却又用了它。
1.4 日频装配
周频信号 → 日频:以标注的【周五】为生效日,reindex(method='ffill') 一致率 1.0000
公告意外 → 日频:以【会议日(美东) + 2 个日历日】为生效日,ffill 一致率 0.9997
公告意外那个 +2 天来自底稿用 date_CHN(北京时间,带 03:15 时间戳)做 VLOOKUP(..., TRUE)
近似匹配——带时间戳的键要到次日才命中,等价于美东会议日 +2 天。属保守处理。
1.5 完整伪代码
def holt(x, a, b):
L = np.empty(len(x)); T = np.zeros(len(x)); L[0] = x[0]
for i in range(1, len(x)):
prev = L[i-1] + T[i-1]
L[i] = a*x[i] + (1-a)*prev
T[i] = b*(L[i]-L[i-1]) + (1-b)*T[i-1]
return L
A_W, B_W = 1/14, 1/50 # 周频
A_D, B_D = 1/64, 1/250 # 日频
s_nl = +np.sign(holt(净流动性, A_W, B_W).diff(13))
s_cs = +np.sign(holt(信用支持, A_W, B_W).diff(52))
s_eg = -np.sign(holt(FedSentiment, A_D, B_D).diff(63))
s_mi = -np.sign(holt(隐含加息幅度, A_D, B_D).diff(63))
s_as = -np.sign(surprise_FF4HF)
指数 = (s_nl + s_cs + s_eg + s_mi + s_as).fillna(0) / 5
1.6 复现精度
| 分项 | 平滑 relRMSE | 差分 RMSE | 端到端信号一致率 |
|---|---|---|---|
| 净流动性 | 2.38e−03 | 3.5e−12 | 99.25% |
| 信用支持 | 4.72e−03 | 2.8e−15 | 99.66% |
| 预期引导 | 1.98e−03 | ~1e−14 | 99.66% |
| 市场隐含 | 3.71e−03 | ~1e−16 | 99.79% |
差分环节是精确解(RMSE≈1e−12~1e−16),不是拟合。平滑残差未到机器精度, 最可能是 H.4.1 事后修订——底稿的平滑列算于更早的数据 vintage。
1.7 前视偏差检验:结论是没有
底稿标注周五,H.4.1 是周三时点——需判定是同周周三还是下周周三(后者即 5 天前视)。
用 FRED WCURCIR 做偏移检验:
| Excel周五 + offset → FRED周三 | 水平值 corr | 周度变化量 corr |
|---|---|---|
| −9d | 0.99997 | 0.135 |
| −2d(同周三) | 0.99999 | 0.841 |
| +5d(下周三 = 前视) | 0.99999 | 0.767 |
| +12d | 0.99996 | 0.098 |
关键方法点:水平值在每个偏移上都是 0.9999(强趋势序列),完全无法分辨; 只有周度变化量能分开。结论:同周周三,周四 16:30 发布、周五才生效 → 无前视,且偏保守。
1.8 ⚠️ 结构性缺陷:值域随分项上线跳变
因缺失分项按 0 计而分母恒为 5:
| 起始日 | 活跃分项 | 理论值域 |
|---|---|---|
| 2000-02-04 | 1(仅公告意外) | [−0.2, +0.2] |
| 2002-12-20 | 3 | [−0.6, +0.6] |
| 2009-04-03 | 4 | [−0.8, +0.8] |
| 2015-04-04 | 5 | [−1.0, +1.0] |
后果:
- 研报图表 36「极度收紧 [−1,−0.6] → 标普500 年化 −14.2%」只可能取自 2015-04 之后。
- 2000–2002 年的「美元流动性指数」实质等于 FOMC 公告意外的符号,与流动性无关。
- 2020 年 COVID 崩盘期间指数从未进入「极度收紧」档(实际只走到 −0.6)。
- 任何「2000 年以来」的统计都是 4 个不同指标混合的结果。
2. 数据来源映射
研报全文 47 处「资料来源」全部只写厂商名(Wind 18 次、Wind+Bloomberg 18 次、Bloomberg 8 次),
没有任何一处给出可查询的代码。底稿 46,496 个公式全是内部引用,四个子表是纯粘贴值,
无 Wind WSD() / Bloomberg BDH() 插件公式,即零来源元数据。下表是本项目补出来的。
2.1 数量维度(100% 免费、已精确复刻,MAE = 0)
来自美联储 H.4.1 周报表(周三时点,周四约 16:30 ET 发布)。
| 底稿字段 | FRED ID | Fed DDP series | 关键说明 |
|---|---|---|---|
| 流通现金 | WLFN |
RESPPLLN_N.WW |
联储票据扣除联储自持。≠WCURCIR(含硬币,差约 42bn) |
| 存款准备金 | WLODLL |
RESPPLLDD_N.WW |
存款性机构其他存款。≠WRESBAL |
| 逆回购 | WLRRAL |
RESPPLLR_N.WW |
逆回购总额(含外国官方)。≠RRPONTSYD(仅 ON RRP) |
| 所有国债 | TREAST |
RESPPALGUM_N.WW |
|
| 短期国债 | WSHOBL |
— | 期限转换 = 所有国债 − 短期国债 |
| 联邦机构债 | FEDDT |
— | 信用增级 = 机构债 + MBS |
| MBS | WSHOMCB |
— | |
| 总资产 / TGA | WALCL / WDTGAL |
— | 交叉验证 |
与底稿 1213 周逐点比对:5 个核心输入全部 MAE = 0。样本核对(2002-12-20): 流通现金 645.599 / 存款准备金 17.943 / 净流动性 663.542 / 信用支持 0.587536——全部精确吻合。
口径对齐的方法论:不能只看相关系数——常数偏移下相关系数照样 0.9999。 要看
mean(差)与sd(差):sd≈0 才是同一口径,只有 mean 偏移说明是「近亲」序列。
2.2 价格维度(部分可代理)
| 底稿分项 | 最佳公开代理 | 原始序列 corr | 信号一致率 | 判定 |
|---|---|---|---|---|
| 市场隐含 | DGS6MO − DFF |
0.937 | 83.7% | ✅ 可用 |
| 市场隐含 | DGS3MO − DFF |
0.771 | 82.9% | ✅ 次选 |
| 预期引导 | DGS2 |
0.541 | 71.4% | ⚠️ 实测加进去反而拖累 |
| 预期引导 | NFCI(负) |
0.182 | 50.1% | ❌ 等于抛硬币 |
| 公告意外 | 会议日 DGS2 日变化 |
0.352 | 52.3% | ❌ 无效 |
| 公告意外 | Bauer & Swanson (2023) MPS |
0.824 | 82.3% | ✅ 可用(非实时) |
| 公告意外 | Bauer-Swanson ED2 |
0.801 | 82.4% | ✅ 次选 |
公告意外的日频代理注定失败:底稿自带的
surprise_FF4(前后 1 天)与surprise_FF4HF(前后 30 分钟)符号一致率只有 63.4%——日内窗口不可省。 但 Bauer-Swanson 公开数据集可替代(剔除 vendor 恰为 0 的 53 次会议后 n=147)。 该数据集截至 2023-12-13 且非实时更新:可回测,不能盯盘。
小结:回测用途下四项可免费重建,只有 Fed Sentiment 不行;实时盯盘只有三项。
3. 历史数据检验
标的:标普500全收益(^SP500TR)。现金腿:DTB3。
执行:T+1、单边 5bp。区间:2000-02-04 → 2026-07-23。
3.1 领先、同步,还是滞后?
corr(指数_t, 标普500 从 t+k 到 t+k+21 的收益):
| k(交易日) | −250 | −125 | −63 | −21 | −5 | 0 | +5 | +21 | +63 | +125 | +250 |
|---|---|---|---|---|---|---|---|---|---|---|---|
| corr | 0.015 | 0.092 | 0.012 | 0.171 | 0.147 | 0.127 | 0.113 | 0.053 | −0.017 | 0.055 | −0.082 |
- 峰值在 k = −20,即与过去一个月的收益最相关 → 同步偏滞后。
- k<0 均值 0.044 / k=0 为 0.127 / k>0 均值 −0.014 → 对未来收益的线性信息含量≈0。
3.2 事件研究:7 轮大回撤
| 前高日 | 谷底日 | 跌幅 | 指数首次转负 | 相对前高 | 转负时跌幅已走完 | 转负后还跌 |
|---|---|---|---|---|---|---|
| 2000-03-24 | 2002-10-09 | −47.4% | 2000-05-18 | +55天 | 12% | −44.2% |
| 2007-10-09 | 2009-03-09 | −55.3% | 2008-04-04 | +178天 | 21% | −49.4% |
| 2015-05-21 | 2016-02-11 | −12.8% | 2015-08-03 | +74天 | 9% | −11.7% |
| 2018-09-20 | 2018-12-24 | −19.4% | 2018-09-20 | 0天 | 0% | −19.4% |
| 2020-02-19 | 2020-03-23 | −33.8% | 2020-02-19 | 0天 | 0% | −33.8% |
| 2022-01-03 | 2022-10-12 | −24.5% | 2022-01-06 | +3天 | 8% | −22.9% |
| 2025-02-19 | 2025-04-08 | −18.7% | 2025-02-19 | 0天 | 0% | −18.7% |
每轮开始时指数都已是或立刻转为负值,且转负后仍有 −11.7%~−49.4% 下跌空间。 这就是回撤能被削减的机制——靠回撤的持续性,不是靠预见性。
3.3 误报率 vs 无条件基准率
「指数<0」在 2000–2026 共 36 个独立事件段(中位 34 交易日、均值 52、最长 209)。
| 判据 | 命中率 | 无条件基准率 | 提升 |
|---|---|---|---|
| 后 126 日内 ≥10% 回撤 | 53% (19/36) | 36% | +16pp |
| 后 126 日内 ≥15% 回撤 | 31% (11/36) | 23% | +7pp |
| 后 252 日内 ≥10% 回撤 | 67% (24/36) | 54% | +12pp |
| 后 252 日内 ≥15% 回撤 | 42% (15/36) | 42% | 0pp |
3.4 逐次得失分解:这是尾部保险,不是准确信号
对 36 段清仓信号逐次计算「空仓 vs 持股」的得失:
| 躲对 | 16 次(44%) |
| 躲错 | 20 次(56%) |
| 躲对时平均 | +9.00% |
| 躲错时平均 | −4.63% |
| 中位数 | −1.63% |
| 合计 | +51.5% |
贡献最大的 5 次
| 起 | 止 | 交易日 | 得失 |
|---|---|---|---|
| 2022-01-06 | 2022-11-03 | 209 | +26.5% |
| 2001-02-02 | 2001-03-21 | 33 | +22.9% |
| 2020-01-31 | 2020-03-13 | 30 | +20.9% |
| 2008-09-18 | 2008-10-08 | 15 | +17.3% |
| 2000-08-24 | 2000-11-16 | 60 | +11.0% |
这 5 次合计 +98.6%,占全部正贡献的 68%。 剔除最大的 3 次,其余 33 次合计 −18.9%。
最差的几次(牛市假警报,每次空仓 3~5 个月):2012-11 −11.5%、2016-10 −10.5%、 2009-06 −7.0%、2019-08 −6.9%、2018-12 −6.6%。
这解释了 2009–2015 段跑输基准 −5.69pp/年,也解释了为什么整体不显著。
3.5 择时回测与分期归因
规则:指数>0 持股、<0 持 3M 国库券、=0 维持仓位。
方法论坑:必须先在全样本上算出持仓序列,再按区间切片。 先截断信号再算持仓会重置每段起点仓位,结论会完全反过来(本项目第一版即踩此坑)。
| 区间 | 择时年化 | 基准年化 | 超额 | 择时回撤 | 基准回撤 | 择时夏普 | 基准夏普 |
|---|---|---|---|---|---|---|---|
| 全样本 2000-02→2026-07 (26.4y) | 11.32% | 8.42% | +2.90pp | −40.0% | −55.3% | 0.597 | 0.337 |
| ① 仅公告意外 1 项 (3.1y) | −2.75% | −13.27% | +10.52pp | −38.0% | −47.4% | −0.328 | −0.718 |
| ② 3 项 (6.0y) | 5.62% | 1.17% | +4.45pp | −40.0% | −55.3% | 0.147 | −0.067 |
| ③ 4 项 (6.0y) | 13.15% | 18.84% | −5.69pp | −18.6% | −18.6% | 0.869 | 1.135 |
| ④ 5 项齐备 2015-04→2026-07 (11.3y) | 17.81% | 13.94% | +3.87pp | −13.9% | −33.8% | 1.313 | 0.662 |
全样本 +2.90pp 与研报自称(+2.8pp、夏普 0.65 vs 0.39)复刻成功。 但最大单段超额来自指数还不是「流动性指数」的那 3 年;4 项期显著跑输。
3.6 分项拆解:价值来自哪里
| 组合 | 2015+ 夏普 | 2015+ 回撤 | 2003+ 夏普 | 2003+ 回撤 | 可得性 |
|---|---|---|---|---|---|
| 全部 5 项 | 1.313 | −13.9% | 0.761 | −40.0% | 需彭博 |
| 仅价格 3 项 | 1.283 | −11.5% | 0.616 | −37.4% | 需彭博 |
| 仅预期引导(Fed Sentiment) | 1.236 | −10.2% | 0.850 | −16.2% | 需彭博 |
| 仅市场隐含 | 0.982 | −15.6% | 0.663 | −15.6% | ⚠️可代理 |
| 仅信用支持 | 0.823 | −19.4% | 0.721 | −19.4% | ✅免费 |
| 仅数量 2 项 | 0.688 | −18.7% | 0.664 | −18.7% | ✅免费 |
| 【基准】买入持有 | 0.662 | −33.8% | 0.534 | −55.3% | — |
| 仅净流动性 | 0.639 | −33.8% | 0.421 | −55.0% | ✅免费但无效 |
三条反直觉结论:
- 大部分价值来自价格维度——恰好是需要彭博的那三项。单项最强是 Fed Sentiment。
- 最有名的「净流动性」是最差的一项,23 年夏普 0.421,跑输买入持有,回撤几乎没削减。
- 最有价值的免费分项是「联储信用支持」——研报里最不起眼、最少被抄的那个。
3.7 交易规则变体网格
全样本,T+1、5bp。按夏普排序(节选 21 个变体中的代表):
| 规则 | 年化 | 回撤 | 夏普 | 持股 | 年换手 |
|---|---|---|---|---|---|
| 清仓确认 0 日 / 回补确认 21 日 | 10.09% | −34.60% | 0.60 | 61% | 1.97 |
| 原始:转负立刻清仓 | 11.32% | −39.98% | 0.60 | 70% | 2.42 |
| 仅 200 日均线(不用指数) | 7.86% | −20.98% | 0.54 | 72% | 6.02 |
| 双向确认 10 日 | 9.88% | −43.00% | 0.52 | 70% | 1.97 |
| 清仓确认 21 日 / 回补 0 日 | 10.46% | −54.83% | 0.51 | 79% | 1.82 |
| 线性仓位 (指数+1)/2 | 6.95% | −33.71% | 0.47 | 56% | 1.44 |
| 迟滞:出≤−0.4 / 进≥0.2 | 9.33% | −55.03% | 0.43 | 83% | 0.91 |
| 【基准】买入持有 | 8.42% | −55.25% | 0.34 | 100% | 0.04 |
| 迟滞:出≤−0.8 / 进≥0.2 | 7.98% | −55.25% | 0.33 | 92% | 0.34 |
方向性结论(数字本身在噪音里,方向是稳的)
- 出场不能延迟。 等 21 日确认再清仓,回撤退回 −54.8%——削减回撤这个唯一价值被完全抹掉。 因为它同步:等确认完,跌幅已走掉大半。领先指标可以等确认,同步指标不能。
- 迟滞阈值同样失败。 「跌到 ≤−0.4/−0.6 才清仓」全部退化到 −55% 回撤: 指数到 −0.6 只有 14 次,到那时太晚。
- 不确定性应该在回补端消化。 立刻出 + 回补确认 21 日,是唯一在两个子样本里 方向一致地压低回撤的改良(全样本 −40.0%→−34.6%,2015+ −13.9%→−9.5%),代价是少赚。
- 别用部分仓位。 100/50、100/70、线性仓位在每个子区间都更差——交出了大半回撤保护, 收益却没保住。这是开关,不是刻度盘。
| 变体 | 全样本夏普 | 2015+ 夏普 | 2015+ 回撤 |
|---|---|---|---|
| 100/0 | 0.60 | 1.31 | −13.9% |
| 100/50 部分减仓 | 0.47 | 1.00 | −21.2% |
| 100/70 部分减仓 | 0.42 | 0.86 | −26.5% |
3.8 显著性检验
Block bootstrap(1 年块长、4000 次、中心化后检验累计超额>0):
| 样本 | 版本 | 年化超额 | p 值 | 判定 |
|---|---|---|---|---|
| 2004→2026 (22.5y) | 国盛指数 | +1.62% | 0.22 | 不显著 |
| 2004→2026 | free3 免费复刻 | +0.91% | 0.32 | 不显著 |
| 2015→2026 (11.3y) | 国盛指数 | +3.34% | 0.14 | 不显著 |
| 2015→2026 | free3 免费复刻 | −0.29% | 0.53 | 不显著 |
没有一个超额收益在统计上显著。 1999 年以来标普500 峰→谷回撤 ≥10% 只有 9 段、 ≥15% 只有 6 段——独立样本量是个位数,这个量级下不可能显著。 回撤削减(−55%→−22%~−40%)比收益提升可靠得多,因为它不依赖均值估计。
4. 横向赛马:有没有更准的指标
规则事先指定不做优化:方向类 = Holt 平滑后差分符号;水平类 = 相对扩张窗口中位数(严格 PIT)。
lift = 信号后 126 日内出现 ≥10% 回撤的命中率 − 无条件基准率。
2003-03 起(23 年长样本)
| 指标 | 年化 | 最大回撤 | 夏普 | lift |
|---|---|---|---|---|
| NFCICREDIT_13周变化 | 10.56% | −27.0% | 0.86 | −2.6 |
| NFCI_13周变化 | 10.52% | −26.5% | 0.85 | −2.0 |
| NFCI_水平(vs 扩张中位数) | 11.70% | −19.4% | 0.81 | +13.3 |
| NFCIRISK_水平 | 11.51% | −26.6% | 0.76 | +13.3 |
| 国盛美元流动性指数 | 13.34% | −40.0% | 0.76 | +11.8 |
| 标普500 200 日均线 | 8.74% | −21.0% | 0.60 | +10.4 |
| 【基准】买入持有 | 11.69% | −55.3% | 0.53 | — |
| 净流动性 WALCL−TGA−RRP | 9.44% | −53.2% | 0.47 | +6.8 |
| BAA10Y 信用利差水平 | 3.94% | −31.4% | 0.24 | −4.0 |
2015-04 起(11.3 年):国盛指数夏普 1.31 一枝独秀,其次 NFCICREDIT 0.95、 NFCI 水平 0.84、200 日均线 0.69、买入持有 0.66。但该指数 2025 年发布时已知这段全部历史, 有过拟合嫌疑;真正的样本外只有 2025-05 至今约 1 年。
4.1 两个必须分开的类别
- 真正外生的流动性指标:净流动性、信用支持、SOFR−IORB、准备金充裕度——独立于股价
- 与股价同义反复的指标:VIX、信用利差、NFCI(含权益波动率等市场变量)
NFCI 属后者,所以它赢得「漂亮」要打折扣。若要一个真正外生的免费指标,用「联储信用支持」。
4.2 推荐的免费复刻组合
free3 = sign(Δ13周 净流动性) + sign(Δ52周 信用支持) + (−sign(Δ63日 (DGS6MO − DFF)))
| 版本 | 2015+ 夏普 | 回撤 | 2004+ 夏普 | 回撤 |
|---|---|---|---|---|
| 国盛指数(需彭博) | 1.313 | −13.9% | 0.715 | −40.0% |
| ★free3(全免费) | 0.879 | −22.3% | 0.773 | −22.3% |
| 仅信用支持(最简) | 0.801 | −19.4% | 0.715 | −19.4% |
| 【基准】买入持有 | 0.662 | −33.8% | 0.485 | −55.3% |
22.5 年长样本上全免费的 free3 夏普 0.773 反而高于原版 0.715,回撤 −22.3% vs −40.0%。
加 DGS2 代理「预期引导」会把 2015+ 夏普从 0.879 拖到 0.769,不要加。
free3 的三个分项要到 2004-01 才全部就位(信用支持需 52 周同比)。 它在 2000–02 年的「空仓」只是没有数据,不是规避了互联网泡沫。
5. 怎么用
- 它不预测,只跟随。 指数转正只是「不再收紧」,不是「该进场」。它能做的唯一一件事, 是在已经开始的下跌里让你别硬扛。
- 出场立刻执行,回补可以等。 延迟出场会毁掉全部价值;持续时间的不确定性放在回补端消化 (回补确认 ~21 日)。
- 二元开关,不要部分仓位。
- 产出是「回撤更小」,不是「赚得更多」。 若目标函数是收益最大化,这个指标不值得用。
- 接受高误报。 十次里有五六次会白白空仓一两个月并小亏,换取下一次真是 2008/2020/2022 时能少跌 20 个点。这是买保险的逻辑。
- 更新节奏:H.4.1 每周四 16:30 ET 发布周三数据 → 周五开盘前跑一次即可,无前视。
6. 局限
- 统计功效不足。 26 年只有 6~9 次独立大回撤;所有超额收益 p=0.14~0.53,无一显著。 日频重叠样本算出的 t 统计量被严重高估。
- 收益高度集中。 剔除最大的 3 次事件,其余 33 次信号合计 −18.9%。
- 结构性断点。 指数在 2003/2009/2015 三次改变值域,跨期统计是 4 个不同指标的混合。
- 过拟合风险。 研报 2025-05 发布,2015–2025 的靓丽表现处在设计者可见的样本内。
- 多重检验。 本文测了 20+ 个规则变体、20+ 个候选指标,未做系统性 FDR 校正—— 只有方向性结论可靠,具体数字不可靠。
- 同义反复。 赛马中胜出的 NFCI/VIX/信用利差含市场价格成分,不是纯粹的「流动性」。
- 数据修订。 H.4.1 会被修订,实时值与事后值有差异。
- 制度变迁。 准备金充裕框架、ON RRP 归零、QT 结束都会改变这些指标的含义。
附录:可复跑脚本
| 文件 | 用途 |
|---|---|
verified_rules.py |
逆向工程的逐列验证(平滑参数、差分窗口、信号规则、日频装配) |
fetch_quantity.py |
从 FRED / Fed DDP 重建数量维度两条原始序列 |
build_index.py |
构建 free3 免费复刻指数 + 回测 + 打印当前信号 |
horserace_mc.py |
候选指标横向赛马 |
chart.html + chart_data.json |
交互式对照图源码 |
踩过的坑(复用时注意):
- FRED
fredgraph.csv在并发下返回被截断的响应且不报错——落盘前必须校验最后一行是合法日期。 - ICE BofA 系列(
BAMLH0A0HYM2等)公开端点只给最近 ~3 年;长历史信用利差用BAA10Y。 - 高频拉取触发 IP 限流,表现为
SSL_ERROR_SYSCALL/ HTTP2INTERNAL_ERROR,像证书故障其实是限流。 - 分期回测必须先算全样本持仓再切片。
本文为量化研究记录,不构成投资建议。