2、对冲比率概念:对冲比率的定义、静态对冲与动态对冲的区别、Beta中性对冲
2.1 对冲比率到底是个啥?
说白了,对冲比率就是告诉你——买一份资产A,需要卖空多少份资产B,才能把组合的风险压到最低。
我刚开始做配对交易那会儿,总觉得这玩意儿就是个简单的比例。后来踩了坑才明白,它其实是整个策略的灵魂参数。你想想看,比例算错了,对冲就成了对赌,风险反而更大。
数学上,对冲比率 h 的定义很简单:
h = Cov(ra, rb) / Var(rb)
其中:
- ra 是资产A的收益率
- rb 是资产B的收益率
- Cov 是协方差
- Var 是方差
嗯,这里要注意——这个公式算出来的 h,就是最小方差对冲比率。它的目标不是让你赚钱,而是让组合的波动最小化。
核心理解:对冲比率 = 你卖空资产B的数量 / 你买入资产A的数量。比如 h=0.6,意味着每买入1份A,就卖空0.6份B。
2.2 静态对冲 vs 动态对冲——我踩过的坑
这两个概念,我当年花了整整一个月才真正搞明白。咱们一个一个说。
静态对冲:简单但危险
静态对冲,就是算一次比率,用到底。你拿过去一年的数据算出一个 h,然后整个交易周期都不变。
我在2019年做过一个能源股的配对策略,用的就是静态对冲。刚开始两个月效果不错,后来市场风格一变,对冲比率完全失效,组合波动直接翻倍。那次亏了不少钱。
静态对冲的优缺点:
- 优点:计算简单,回测方便,适合新手入门
- 缺点:市场结构变了它不变,容易翻车
动态对冲:累但值得
动态对冲,就是每隔一段时间重新算一次 h。比如每天、每周、或者每触发某个条件就更新。
我个人习惯用滚动窗口法——取过去60个交易日的数据,每天收盘后重新算一次对冲比率。这样市场变了,我的对冲也跟着变。
# 滚动窗口计算动态对冲比率
import numpy as np
import pandas as pd
def rolling_hedge_ratio(price_a, price_b, window=60):
"""
滚动计算对冲比率
price_a, price_b: 价格序列
window: 滚动窗口大小
"""
returns_a = price_a.pct_change().dropna()
returns_b = price_b.pct_change().dropna()
hedge_ratios = []
for i in range(window, len(returns_a)):
ra = returns_a[i-window:i]
rb = returns_b[i-window:i]
cov = np.cov(ra, rb)[0][1]
var = np.var(rb)
h = cov / var
hedge_ratios.append(h)
return hedge_ratios
我的经验:窗口大小选60-90个交易日比较稳。太短了噪声大,太长了反应慢。我曾经试过20天的窗口,结果对冲比率天天跳,根本没法用。
2.3 Beta中性对冲——机构玩家的玩法
Beta中性对冲,说白了就是把市场风险彻底剥离。你赚的钱只来自两只股票之间的价差,跟大盘涨跌没关系。
怎么做到?很简单——让组合的Beta等于0。
公式是这样的:
Beta(组合) = Beta(A) - h * Beta(B) = 0
=> h = Beta(A) / Beta(B)
这里的 h 就是Beta中性对冲比率。跟最小方差对冲比率不一样,它只关注市场风险,不关心个股之间的协方差。
| 对冲类型 | 目标 | 适用场景 |
|---|---|---|
| 最小方差对冲 | 组合波动最小 | 追求稳定收益 |
| Beta中性对冲 | 市场风险为零 | 剥离大盘影响 |
我记得有一次做科技股的配对交易,两只股票都是高Beta品种。如果用最小方差对冲,组合还是跟着大盘上蹿下跳。换成Beta中性对冲之后,净值曲线平滑了很多。
注意:Beta中性对冲有个大坑——Beta本身也是会变的!你算的时候Beta是1.2,过一个月可能变成1.5。所以Beta中性对冲本质上也是动态的,需要定期更新。
2.4 三种对冲比率的对比
咱们把三种方法放在一起看看:
- 静态最小方差对冲:简单,适合短期、稳定的市场
- 动态最小方差对冲:灵活,适合中长期、波动大的市场
- Beta中性对冲:干净,适合想剥离市场风险的策略
我个人建议:新手先从静态最小方差做起,跑通了再升级到动态。别一上来就搞Beta中性,那个坑更多。
一句话总结:对冲比率不是算出来就完事的,它需要你根据市场变化不断调整。静态是偷懒,动态是勤奋,Beta中性是追求极致。