第四章 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 动态调整的步骤
- 计算当前组合DV01:用最新的收益率曲线重新计算每个头寸的DV01。
- 计算目标DV01:根据你的风险偏好,设定一个目标DV01。做市商通常希望DV01接近0。
- 计算对冲缺口:目标DV01 - 当前DV01 = 需要调整的DV01。
- 选择对冲工具:用国债期货、利率互换或掉期期权来填补缺口。
- 执行调整:买入或卖出对冲工具,使组合DV01回到目标范围。
实战小技巧:
调整时,我建议优先用流动性最好的工具。比如在美国市场,用10年期国债期货调整DV01,成本最低。在欧洲,用欧元区国债期货。别为了省几个基点去用流动性差的互换,到时候平仓都平不掉。
4.5 知识体系总览
下面这张图,是我自己总结的DV01对冲知识体系。你把它存下来,做交易时对照着看,能少走很多弯路。
这张图把DV01对冲拆成了三个核心模块:定义、计算、组合构建。动态调整是贯穿始终的。你每次做对冲时,都可以对照这张图,看看自己漏了哪一步。
4.6 写在最后
DV01对冲,说白了就是管理利率风险。但别把它想得太复杂。你只要记住三件事:
- 算清楚:每个头寸的DV01是多少,组合的净DV01是多少。
- 设目标:你想让组合的DV01接近0,还是留一点方向性敞口。
- 动态调:市场变了,DV01也会变。别偷懒,定期检查。
我见过太多交易员,一开始算得清清楚楚,后来就懒得调了。结果市场一波动,亏得连裤子都不剩。嗯,希望你不是那一个。
公众号:蓝海资料掘金营,微信deep3321