第四章 DV01对冲基础:DV01的定义、计算、组合DV01的构建与动态调整

做利率互换做市,说白了就是跟市场赌方向。但你总不能光着膀子上阵吧?得有个武器。DV01,就是我最常用的那把尺子。

今天咱们聊聊DV01。这东西看着简单,但我在实战中见过太多人栽在细节上。嗯,咱们一步步来。

4.1 DV01到底是什么?

DV01,全称Dollar Value of 1 basis point。翻译成人话就是:利率变动1个基点,你的头寸值多少钱。

举个例子。你持有一个10年期利率互换,收固定付浮动。如果市场利率上升1个基点,你的头寸亏了1000美元。那这个头寸的DV01就是-1000美元。

为什么会这样?因为利率上升,你收的固定利率不变,但浮动的贴现因子变了。说白了,未来现金流的现值缩水了。

核心公式:

DV01 = - (∂P / ∂y) × 0.0001

其中P是头寸价值,y是收益率。

我个人习惯把DV01理解成「风险暴露的标尺」。你想想看,一个10亿名义本金的互换,DV01可能只有几十万。但一个10亿的国债期货,DV01可能上百万。为什么?因为互换的久期更长,但浮动端有对冲效应。

4.2 DV01的计算方法

计算DV01,有两种主流做法。我建议你两种都掌握,因为不同场景下各有优劣。

4.2.1 解析法

对于标准利率互换,可以用公式直接算。假设你有一个固定利率为c、名义本金为N的互换,剩余期限为T年,每年付息m次。

DV01_swap = N × (1/m) × Σ [t_i × DF(t_i)] × 0.0001

其中t_i是第i次付息的时间,DF(t_i)是贴现因子。

这个公式看着复杂,其实逻辑很简单:每个现金流对利率的敏感度,就是它的现值乘以时间。把所有现金流加起来,再除以付息频率,就是DV01。

实战小技巧:

我在做市时,经常用这个公式快速估算。但要注意,它假设收益率曲线是平的。如果曲线很陡,误差会比较大。

4.2.2 数值法

更通用的做法是数值法。把整条收益率曲线向上平移1个基点,重新定价,再减去原价格。这就是DV01。

def calculate_dv01(swap, curve):
    # 原价格
    price_orig = swap.price(curve)
    
    # 曲线向上平移1bp
    curve_shifted = curve.shift(0.0001)
    price_shifted = swap.price(curve_shifted)
    
    # DV01 = 价格变化
    dv01 = price_shifted - price_orig
    return dv01

这段代码我用了好多年。你想想看,它不依赖任何假设,适用于任何复杂的互换结构。但要注意,平移曲线时,要确保所有期限都平移同样的幅度。我曾经见过有人只平移了关键期限点,结果算出来的DV01完全不对。

4.3 组合DV01的构建

做市商手里通常不是一支互换,而是一篮子。你得把每个头寸的DV01加起来,得到组合的净DV01。

组合DV01 = Σ (每个头寸的DV01 × 头寸方向)

方向怎么定?收固定付浮动,DV01为正;付固定收浮动,DV01为负。

举个例子:

头寸 名义本金(百万) DV01(每百万) 方向 贡献DV01
5年互换(收固定) 100 450 +1 45,000
10年互换(付固定) 50 850 -1 -42,500
2年互换(收固定) 200 190 +1 38,000
组合净DV01 40,500

你看,组合净DV01是40,500美元。这意味着利率上升1个基点,组合赚40,500美元。但别高兴太早,这只是静态的。市场一波动,DV01就变了。

4.4 动态调整:为什么不能一劳永逸?

我刚开始做交易时,以为算好DV01就完事了。结果有一次,市场突然波动了50个基点,我的对冲完全失效。为什么?因为DV01本身会随着利率变化而变化。

这就是所谓的「凸性」。利率下降时,DV01变大;利率上升时,DV01变小。你想想看,如果你用国债期货对冲互换,期货的DV01变化和互换的DV01变化可能不同步。结果就是对冲比例跑偏了。

避坑指南:

我曾经在2019年9月做了一笔大额互换,用10年期国债期货对冲。当时算好的对冲比例是1:1.2。结果美联储突然降息,国债期货涨得比互换快。我这边亏了,那边也亏了。后来我才意识到,期货的凸性和互换的凸性不一样,需要动态调整对冲比例。

4.4.1 动态调整的频率

多久调整一次?这取决于市场波动和你对风险的容忍度。

  • 高频调整:每天收盘前重新计算DV01,调整对冲头寸。适合波动大的市场。
  • 低频调整:每周或每月调整一次。适合波动小、头寸稳定的情况。
  • 触发式调整:设定一个阈值,比如DV01偏离目标超过10%时调整。这是我最常用的方法。

我个人习惯用触发式调整。设定一个±5%的容忍区间,超出就调。这样既不会太频繁,也不会让风险失控。

4.4.2 动态调整的步骤

  1. 计算当前组合DV01:用最新的收益率曲线重新计算每个头寸的DV01。
  2. 计算目标DV01:根据你的风险偏好,设定一个目标DV01。做市商通常希望DV01接近0。
  3. 计算对冲缺口:目标DV01 - 当前DV01 = 需要调整的DV01。
  4. 选择对冲工具:用国债期货、利率互换或掉期期权来填补缺口。
  5. 执行调整:买入或卖出对冲工具,使组合DV01回到目标范围。

实战小技巧:

调整时,我建议优先用流动性最好的工具。比如在美国市场,用10年期国债期货调整DV01,成本最低。在欧洲,用欧元区国债期货。别为了省几个基点去用流动性差的互换,到时候平仓都平不掉。

4.5 知识体系总览

下面这张图,是我自己总结的DV01对冲知识体系。你把它存下来,做交易时对照着看,能少走很多弯路。

DV01对冲知识体系 DV01对冲 DV01定义 DV01计算 组合DV01 利率变动1bp 头寸价值变化 解析法 数值法 各头寸DV01加权求和 动态调整 高频调整(每日) 低频调整(周/月) 触发式调整(±5%) 步骤: 1. 计算当前DV01 2. 计算目标DV01 3. 执行对冲调整

这张图把DV01对冲拆成了三个核心模块:定义、计算、组合构建。动态调整是贯穿始终的。你每次做对冲时,都可以对照这张图,看看自己漏了哪一步。

4.6 写在最后

DV01对冲,说白了就是管理利率风险。但别把它想得太复杂。你只要记住三件事:

  • 算清楚:每个头寸的DV01是多少,组合的净DV01是多少。
  • 设目标:你想让组合的DV01接近0,还是留一点方向性敞口。
  • 动态调:市场变了,DV01也会变。别偷懒,定期检查。

我见过太多交易员,一开始算得清清楚楚,后来就懒得调了。结果市场一波动,亏得连裤子都不剩。嗯,希望你不是那一个。


公众号:蓝海资料掘金营,微信deep3321