halo 的技术博客

返回

核心结论:债券 ETF 的「流动性转换」不是产品创造的,是投资者的分歧创造的。而它在二级市场报出的折价,绝大部分不是脱锚,是分母算错了——底层几天才成交一次,NAV 是个滞后量。

关于债券 ETF,有两句话被反复引用,方向相反但同样流行:

  • 卖方版本:「它把不流动的资产变成了日内可交易的份额。」
  • 空方版本:「它是流动性错配,危机时一定会断。」

这两句话都对,也都没说清楚是什么东西在转换,以及转换比取决于谁。本文把它拆成两个可以分别度量、分别用安慰剂证伪的机制。

左:流动性转换比只是投资者流量相关性的函数,有闭式解,与产品设计无关;右:底层 5 日才成交一次时,账面 NAV 是真实价值的滞后平滑,折溢价波动的 96.9% 来自这个缺口

一、转换比有闭式解,而它与 ETF 无关#

设有 NN 个独立资金方,每个的日流量 fif_i 服从相同分布、两两相关系数为 ρ\rho

  • 二级市场毛成交额fi\sum |f_i|
  • 必须进入一级申赎的净额 = fi|\sum f_i|

比值就是流动性转换比:

T=E[fi]Efi=N1+(N1)ρT = \frac{E[\sum|f_i|]}{E|\sum f_i|} = \sqrt{\frac{N}{1 + (N-1)\rho}}

用 500 个资金方、20 万次抽样暴力核对:

情景毛成交额净额转换比(实测)解析
平静期 ρ=0.0027.979% NAV/日0.504%15.843x15.819x
压力期 ρ=0.257.978% NAV/日4.000%1.995x1.994x

相对误差 1.47e-03

注意毛成交额在两个情景下几乎完全相同(7.979 vs 7.978)。塌掉 87.4% 的不是交易量,是抵消率。

两条安慰剂锁死机制#

安慰剂结果含义
ρ=1(所有人完全同向)转换比 1.000000x,偏差 0.000e+00流动性转换在数学上完全消失,ETF 一分钱也没创造
ρ=0(完全独立)22.2054x vs 理论 sqrt(500)=22.3607,误差 6.94e-03上界是 N\sqrt{N},不是 NN

第二条比第一条更有实践价值:上界是根号级的。投资者数量翻一倍,转换能力只多买到 41%。「我们这只 ETF 持有人非常分散」这句话的边际收益递减得比直觉快得多。

二、剂量反应:0.05 的相关性就够了#

ρ转换比净额 %NAV触发一级申赎的天数占比
0.000022.316x0.35850.23%
0.002015.796x0.50563.85%
0.01009.109x0.87678.48%
0.05004.369x1.82689.61%
0.25001.997x3.99695.19%
1.00001.000x8.01797.67%

ρ 从 0 涨到 0.05,转换比损失 80.4%。

0.05 的相关系数在任何一份风险报告里都会被描述成「几乎不相关」。而它已经吃掉了这个产品五分之四的核心功能。

这里的结构性问题是:ρ 不是外生参数,它是市场状态的函数。 平静期投资者因为各自的现金流需求交易,彼此抵消;压力期所有人读同一条新闻。转换比恰恰在你最需要它的时候消失——这不是产品缺陷,是这个数学式的必然。

三、第二个机制:「折价」的分母本身就是错的#

债券和股票有个根本区别:一只债券可能一周才成交一次。

基金公司必须每天报一个 NAV,做法是用最后成交价(或对标估值)。在 MM \to \infty 的极限下,如果每只债券每天以概率 pp 成交,账面 NAV 服从:

NAVt=(1p)NAVt1+pVt\text{NAV}_t = (1-p)\,\text{NAV}_{t-1} + p \cdot V_t

一个指数平滑器。于是陈旧缺口 gt=VtNAVtg_t = V_t - \text{NAV}_t 的稳态标准差有闭式解:

SD(g)=1p1(1p)2σdaily\text{SD}(g) = \frac{1-p}{\sqrt{1-(1-p)^2}} \cdot \sigma_{\text{daily}}

设底层真实年化波动 8%、p=0.20p=0.20(平均 5 个交易日成交一次)、真实脱锚(AP 无套利带内噪声)SD = 0.12%:

分量SD占折溢价方差
陈旧缺口(分母错了)0.6721%(解析 0.6719%,误差 2.85e-0496.92%
真实脱锚(ETF 定价偏离)0.1199%3.08%
观测折溢价合计0.6829%100%

观测到的折溢价波动,96.92% 是 NAV 陈旧,只有 3.08% 是 ETF 本身偏离。

三层验证#

检验结果
安慰剂 C:p=1(底层每日成交)陈旧缺口 SD = 0.000e+00,观测折溢价塌到 0.1199% ≈ 真实脱锚
安慰剂 D:底层零波动陈旧缺口 SD = 0.000e+00
暴力核对:M=400 只债券逐只模拟最后成交价0.6712% vs 极限解析 0.6719%,相对误差 0.0011

陈旧缺口 = 成交稀疏 × 真实波动。任一为零则精确消失——这排除了实现 bug,也给了这个量一个干净的名字。

四、同一个机制让债券基金的风险报告系统性低估波动#

这是个几乎没人提、但影响所有债券基金业绩归因的推论。

如果 NAV 是真实价值的指数平滑,那么用 NAV 算出来的收益率序列,波动被系统性压缩

σNAVσ真实=p2p\frac{\sigma_{\text{NAV}}}{\sigma_{\text{真实}}} = \sqrt{\frac{p}{2-p}}

左:p 越小 NAV 报出的波动越低,Sharpe 被系统性放大;中:两个机制不可加,交互项 -6.05%;右:AP 库存缓冲在平静期几乎免费,在压力期几乎无效

p平均成交间隔σ_NAV/σ_真实解析NAV 收益一阶自相关Sharpe 虚高倍数
1.001.0 日1.00001.00000.00351.00x
0.502.0 日0.57790.57740.50121.73x
0.205.0 日0.33340.33330.79873.00x
0.1010.0 日0.22930.22940.89774.36x
0.0520.0 日0.15980.16010.94706.26x

同一个组合、同一段收益,仅仅因为底层 5 日成交一次,报出的 Sharpe 就被放大 3.00 倍。

而且这个失真是可检测的:NAV 收益的一阶自相关在 p=0.2 时高达 0.7987。真实的日收益序列不该有这个自相关。任何一份债券基金业绩报告,只要收益序列的一阶自相关显著为正,波动率和 Sharpe 就都不能按面值采信。

顺带一提,这也解释了为什么私募信贷、非上市地产这类资产的「低波动高 Sharpe」在数学上是自动的——它们的 pp 比债券还小一个数量级。

五、压力期的 -7.73% 折价,99.95% 是分母#

把两个机制放进压力期设定:p=0.05p=0.05(20 日成交一次)、真实波动 25%、ρ=0.25\rho=0.25、底层日承接量 0.25% NAV。

分量数值
① 陈旧缺口(不是脱锚)5 分位 −7.729%,SD 4.675%
② AP 变现冲击(真实成本)平均 319.4 bp,99 分位 926.3 bp(平静期平均 10.1 bp,放大 31.7 倍
③ 真实脱锚(AP 带内噪声)SD 0.12%
观测折溢价5 分位 −7.733%,1 分位 −11.03%

一个 −7.73% 的「折价」里,99.95% 是分母陈旧

这给 2020 年 3 月债券 ETF 大幅折价一个不同的读法:不是 ETF 脱锚了,是 NAV 那一侧根本没有价格。 当底层 20 天才成交一次,NAV 引用的是三周前的市场;而 ETF 二级市场的价格是此刻真实成交出来的。

此时该被怀疑的是 NAV,不是 ETF。 ETF 价格是可交易、可证伪的;NAV 是一个用陈旧报价拼出来的会计量。把前者叫做「脱锚」,等于用一个更差的价格去指责一个更好的价格。

需要说清楚的是:这不意味着折价里没有真实成本。 那一项是真的——AP 要变现一篮子没人买的债券,冲击成本平均 319 bp、99 分位 926 bp。只是它的量级(个位数 bp 到几百 bp)和陈旧缺口(几个百分点)差一个数量级。

六、两个机制不可加:它们共享同一个触发器#

分别打开两个开关,再一起打开:

情景转换比净额%冲击 99 分位陈旧 SD观测折价 1 分位
平静15.83x0.50429.7 bp0.667%−1.87%
只有流量相关性上升1.99x4.016232.2 bp0.667%−3.90%
只有底层成交枯竭15.91x0.501116.6 bp4.723%−12.11%
两者同时1.99x4.016923.9 bp4.723%−20.18%

单独效应相加 −12.26%,实际同时发生 −18.31%,交互项 −6.05%

这两个机制不是可加的,因为它们由同一个事件触发。 风险偏好逆转会同时做两件事:让所有投资者同向(ρ↑),让做市商停止报价(p↓)。

于是「净额变大」和「篮子没有价格」精确地发生在同一天。这也是为什么分别压力测试两个维度会低估三分之一的尾部——而分开测试恰恰是标准做法。

七、AP 库存缓冲:平静期几乎免费,压力期几乎无效#

左:压力期与平静期的折溢价分布;中:一级申赎触发率随 ρ 单调上升;右:12 个独立宇宙 CV=0.0002

AP 会持有一定库存来吸收小额净流量,不必每天做一级申赎。

缓冲 %NAV平静期触发率压力期触发率平静残余净额压力残余净额
0.00100.00%100.00%0.504%4.000%
0.3063.47%95.21%0.259%3.707%
1.0011.40%84.14%0.031%3.079%
2.000.14%68.99%0.000%2.315%
4.000.00%42.66%0.000%1.209%

0.3% NAV 的缓冲在平静期挡掉 36.5% 的申赎触发,压力期只挡掉 4.8%

要在压力期挡掉一半,需要 4% NAV 的库存——那不再是「做市库存」,那是一只自营基金。而 AP 没有任何做市义务,也没有理由为一个年化收入有限的业务扛这么大的头寸。

缓冲的成本在平静期支付,收益在压力期兑现,而两者相差一个数量级。 这个结构决定了它总是被设得太薄,和折扣率下限、和银行流动性缓冲是同一类问题。

八、样本量红线:能测准的不重要,重要的测不准#

单个 1 年窗口的转换比估计:均值 15.878x,SD 0.754

要检出的恶化需要样本
0.5x9.1 年
1.0x2.3 年
2.0x0.6 年

看起来相当好测——15.8x 掉到 2.0x 是 13.8x 的差距,一年数据绰绰有余。

但这个塌陷只在危机的那几周发生,而年度均值会把它稀释掉:

一年中进入压力状态的交易日占比年度口径测到的转换比真实塌陷值
2.0%13.91x1.99x
5.0%11.76x1.99x
10.0%9.35x1.99x
20.0%6.63x1.99x

一年里有 5% 的交易日(约 13 天)转换比塌到 1.99x,年度报告上写的仍然是 11.76x。

这不是样本量问题,是聚合口径问题。用年度平均评估流动性韧性,测的是「平常有多好」,而这个产品的风险全部在「不平常的那 13 天」。

12 宇宙稳健性:陈旧占折溢价方差比例均值 96.909%,SD 0.0188,CV=0.0002

九、实践清单#

  1. 不要用「日均成交额」评价债券 ETF 的流动性。它测的是毛成交,而危机时消失的是抵消率。要看的是持有人结构的分歧程度
  2. 折价不等于脱锚。看到债券 ETF 折价 3%,第一反应应该是「底层多久没成交了」,不是「ETF 出问题了」
  3. 压力期该被怀疑的是 NAV。ETF 价格是此刻成交出来的,NAV 是用陈旧报价拼的
  4. 任何债券 / 私募信贷 / 非上市资产基金的 Sharpe,先查收益序列的一阶自相关。显著为正,波动率和 Sharpe 就都要打折看。p=0.2 时 Sharpe 虚高 3 倍
  5. 分开做流量压力测试和底层流动性压力测试会低估三分之一。它们由同一个事件触发,必须联合建模
  6. AP 缓冲是个安慰剂级别的旋钮。要在压力期起作用需要 4% NAV 量级的库存,而没有人有义务提供它

最后回到开头那两句话。它们其实说的是同一件事的两半:

债券 ETF 确实创造了流动性——但那份流动性来自持有人之间的分歧,不来自基金结构。 分歧存在时,转换比 15x;分歧消失时,转换比精确等于 1,而这个数是数学恒等式,不是压力测试假设。

这不是缺陷,也不是骗局。这是「把不同意的人凑在一起」这门生意的定价方式。 而它唯一的坏消息是:这门生意的产能,恰好在最需要它的那天归零。

债券 ETF 的流动性转换:日内可交易的底层其实一周才成交一次
https://blog.halo26812.eu.org/blog/bond-etf-liquidity-transformation
Author halo
Published at 2026年8月7日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨