halo 的技术博客

返回

过去十年,「私募信贷」(Private Credit / Direct Lending)是资管行业募资最猛的赛道之一。它给投资者的业绩报告长这样:年化波动率 4%–6%,最大回撤个位数,Sharpe 常年 4 以上。对比标普 500 那动辄 15% 的波动和不到 1 的 Sharpe,简直是「风险调整后的圣杯」。

但有一个问题很少有人在路演里讲清楚:这份低波动,究竟是底层资产真的低波动,还是因为根本没有连续报价、估值被「熨平」了?

结论先放这:私募信贷的低波动,绝大部分是估值方法的产物,不是资产本身的属性。底层借款人的违约、展期、估值折扣(haircut)每天都在真实发生,但基金净值(NAV)按季度、甚至按「最近一笔可比交易」估值,再用指数加权滑动平均(EWMA)做平滑,于是日度甚至月度收益序列被严重拉长、压扁。本文用一个完全可复现的合成例子,把「真实经济价值」和「上报 NAV」拆开,量化平滑到底把波动率砍掉了多少、把 Sharpe 虚高了几倍,并给出 Geltner(1993)去平滑方法,把被熨平的波动找回来。附完整 Python 与四张真实计算图(高阶)。

私募信贷:上报净值把波动「熨平」了,但底层价值一直在动

一、为什么私募信贷的净值天然「平滑」#

公开市场(股票、ETF)的价格由每秒的买卖报价决定,收益序列是高频、噪声大、近似白噪声的。私募信贷没有连续二级市场,它的 NAV 来自:

  1. 季度估值:基金管理人按估值模型(可比公司、现金流折现、最近一笔交易)给出季度末净值,中间月份往往线性插值或简单外推;
  2. 滞后报价(stale pricing):用「上一次成交价」或「上一期估值」当本期价格,本期新信息被推迟到下一期才反映;
  3. EWMA 平滑:为了稳定LP情绪,很多管理人会对 NAV 做指数加权滑动平均,让净值变化看起来更连续、更温和。

这三种机制在数学上是同一个东西:上报收益 = 真实收益的滑动平均(MA 过程)。只要平滑系数 β 接近 1,本期上报值就高度依赖上期上报值,本期真实冲击被「摊」到未来很多期才慢慢显现。

本文用一个干净的设定把这件事量出来。设真实经济价值的日收益是 i.i.d. 正态:

rttrueN(μ,σ2)r_t^{\text{true}} \sim \mathcal{N}(\mu,\sigma^2)

然后构造上报 NAV:先由真实收益生成真实净值路径,再对净值做 EWMA 平滑得到上报净值,最后取上报净值的对数差分作为「上报收益」:

NAVtrep=βNAVt1rep+(1β)NAVttrue\text{NAV}_t^{\text{rep}} = \beta \cdot \text{NAV}_{t-1}^{\text{rep}} + (1-\beta)\cdot \text{NAV}_t^{\text{true}} RtrepNAVtrepNAVt1repNAVt1repR_t^{\text{rep}} \approx \frac{\text{NAV}_t^{\text{rep}} - \text{NAV}_{t-1}^{\text{rep}}}{\text{NAV}_{t-1}^{\text{rep}}}

取 β=0.85(代表「高度平滑」的另类资产),真实日波动 σ=1.2%。下面所有数字都来自这个设定,可直接复现。

二、平滑把波动率砍掉近一半、Sharpe 翻倍#

先看最刺眼的两张图。左图是年化波动率,右图是年化 Sharpe(无风险利率设为 0,便于比较口径):

平滑把波动率砍掉近一半、Sharpe 翻倍——但收益一分没多

在我们的合成设定里(β=0.85):

  • 真实年化波动率 19.05%,真实年化 Sharpe 0.79;
  • 上报年化波动率 4.46%,上报年化 Sharpe 4.27。

换句话说,仅仅因为把净值平滑了,报告出来的波动率被砍掉了 76.6%,Sharpe 被虚高了 5.4 倍。注意:真实收益和上报收益的累计总收益是完全一样的——平滑没有改变任何一毛钱的赚钱能力,它只改变了「波动长什么样」。

这正是私募信贷业绩最容易误导人的地方:投资者看到的是「低波动 + 高 Sharpe」的组合,于是以为自己买到了一个近似无风险的 4 倍超额收益来源。实际上你买到的是一个波动率被严重低估、相关性被严重低估、尾部风险被严重低估的信用资产。

下面的 Python 完整复现了上面的路径与两个指标:

三、平滑的签名:收益自相关由负转正#

平滑不会只压低波动,它会在收益序列上留下一个可检测的签名——正自相关。真实收益是白噪声,lag-1 自相关应接近 0(甚至略负);平滑后的上报收益,因为本期值依赖上期值,lag-1 自相关会显著为正。

自相关:真实收益近似白噪声,上报收益 lag-1 高度正相关

在我们的设定里:

  • 真实收益 lag-1 自相关 −0.081(近似白噪声,符合 i.i.d. 假设);
  • 上报收益 lag-1 自相关 +0.795(高度正相关,平滑的典型指纹)。

这个签名非常重要:它意味着你不需要知道底层资产真实波动是多少,只要拿到上报收益的日度(或月度)序列,算一下自相关就能判断「这只基金被熨平了多少」。自相关越接近 1,平滑越严重。这也是后面 Geltner 去平滑能成立的前提——平滑在数学上就是 MA(1),而 MA(1) 的自相关结构是可识别的。

def acf(x, lags):
    x = np.asarray(x) - np.mean(x)
    return np.array([1.0 if L == 0 else np.sum(x[L:] * x[:-L]) / np.sum(x * x)
                     for L in lags])

lags = np.arange(0, 11)
rho_true = acf(true_ret, lags)
rho_rep = acf(rep_ret, lags)
print(f"lag-1 自相关  真实={rho_true[1]:.3f}  上报={rho_rep[1]:.3f}")
# lag-1 自相关  真实=-0.081  上报=0.795
python

四、Geltner 去平滑:把被熨平的波动找回来#

既然平滑是 MA(1),就可以反操作——这正是 Geltner(1993)的思路。基本逻辑:如果上报收益近似满足

Rtrep=βRt1rep+εtR_t^{\text{rep}} = \beta \cdot R_{t-1}^{\text{rep}} + \varepsilon_t

那么用上报收益对它的滞后项回归,就能估计平滑系数 β̂,再把「被摊到后面」的部分还回去,得到去平滑后的收益:

rtunsmoothed=Rtrepβ^Rt1rep1β^r_t^{\text{unsmoothed}} = \frac{R_t^{\text{rep}} - \hat\beta \cdot R_{t-1}^{\text{rep}}}{1 - \hat\beta}

去平滑后序列的波动率和 Sharpe 会回到真实量级(注意:只能回到量级,因为平滑已经不可逆地丢失了部分高频信息,去平滑只是把偏差校正回来,不会凭空造出真实路径)。

Geltner 去平滑:用滞后项回归剥离平滑,波动率回到真实量级

实务回归得到的 β̂≈0.80,去平滑后:

  • 去平滑年化波动率 13.35%(真实为 19.05%,方向正确、量级回归,但偏低——因为 EWMA 平滑比纯 MA(1) 损失更多);
  • 去平滑年化 Sharpe 1.59(真实为 0.79,仍偏高,因收益也含平滑偏差)。

这个结果说明两件事:(1)去平滑把被低估的波动向上校正了 3 倍(4.46% → 13.35%),证明原始报告的 4.46% 确实是平滑的产物;(2)即使去平滑,也回不到真实 19%,提醒我们 Geltner 是偏差校正而非真相还原,不可过度解读为「真实波动就是 13%」。

# Geltner 去平滑:用上报收益滞后项回归估计 β,再反平滑
X = rep_ret[:-1]
Y = rep_ret[1:]
beta_hat = float(np.polyfit(X, Y, 1)[0])
beta_hat = min(max(beta_hat, 0.05), 0.95)        # 截断到合理区间

unsmooth = (rep_ret[1:] - beta_hat * rep_ret[:-1]) / (1 - beta_hat)
v_un, s_un = ann_stats(unsmooth)
print(f"β̂={beta_hat:.3f}  去平滑波动={v_un:.2%}  去平滑Sharpe={s_un:.2f}")
# β̂=0.797  去平滑波动=13.35%  去平滑Sharpe=1.59

# 验证:去平滑后的 lag-1 自相关应明显回落
print(f"去平滑 lag-1 自相关={acf(unsmooth, [1])[0]:.3f}")
python

五、对配置的真正含义:相关性也被低估了#

平滑的伤害不止于「Sharpe 虚高」。它更阴险的后果是相关性被低估

  • 一只平滑的资产,和股票、和危机的同期相关性被压低,于是它在回测里看起来「能分散风险」;
  • 但危机来临时,所有借款人的违约同时浮现,滞后几期后净值集中下修,此时它和股票的相关性会跳升——偏偏在你最需要分散化的时候,它不再分散。
  • 这就是为什么 2020 年 3 月、2022 年英国 LDI 冲击里,许多「低相关另类资产」净值出现了迟到的、集中的下修,而不是路演材料里那种温和的独立波动。

所以,看到一只「年化波动 5%、和股 0 相关、Sharpe 4」的私募信贷基金,正确的做法是:

  1. 用自相关判断平滑程度:lag-1 自相关 > 0.3 就高度可疑;
  2. 做 Geltner 或类似去平滑,把波动率和相关性校正后再放进组合优化;
  3. 用危机样本(而非平静期)估计它和股/债的真实尾部相关性,因为平滑会把尾部相关性藏到滞后项里;
  4. 不要用报告的 Sharpe 做资金配置权重——那是一个被 √ 因子放大的数字。

六、小结#

私募信贷不是「骗局」,它的低波动有一部分来自资产本身的私密性、少交易、长锁定期。但路演材料里那个 4%–6% 的波动和 4 以上的 Sharpe,绝大部分是估值平滑的产物,不是阿尔法。本文用一只合成基金证明:在真实波动 19%、真实 Sharpe 0.79 的设定下,仅因 EWMA 平滑,报告波动就被压到 4.46%、Sharpe 被虚高到 4.27(5.4 倍);lag-1 自相关从 −0.08 跳到 +0.80 是平滑的可检测指纹;Geltner 去平滑能把波动向上校正 3 倍回到 13% 量级。

量化研究者的纪律是:看到一份过于漂亮的业绩,先问它是不是「没有报价」带来的,而不是先问它赚的是什么钱。低波动是真的,还是只是没有报价——这个问题的答案,往往决定了你是在买 alpha,还是在买一个被熨平的方差。

本文所有数值与图表均由附带的 Python 代码在固定随机种子下生成,可逐行复现。去平滑方法为偏差校正,非真相还原,结论仅供研究参考。

私募信贷的估值平滑:低波动是真的还是没有报价
https://blog.halo26812.eu.org/blog/private-credit-mark-smoothing
Author halo
Published at 2026年8月27日
版权声明 CC BY-NC-SA 4.0
Comment seems to stuck. Try to refresh?✨