11、量化联动指标:构建联动强度指标、动态相关系数、信息溢出指数

各位同学,咱们今天聊点硬核的。波动率曲面和宏观数据之间到底有没有关系?关系有多深?是宏观数据在牵着波动率走,还是反过来?

这些问题,光靠拍脑袋可不行。我们需要一套量化联动指标,把这种模糊的关联变成可计算、可交易的信号。

我个人习惯把这套指标分成三个层次:强度、方向、因果。说白了,就是先看有没有关系,再看关系是正还是负,最后看谁影响谁。

11.1 联动强度指标:先测测“粘性”

联动强度,我理解就是两个变量之间的“粘性”。粘性越大,说明它们同涨同跌或者反向波动的概率越高。

最基础的做法是计算滚动相关系数。但这里有个坑——直接用原始收益率算,噪声太大。我在项目中遇到过这种情况:算出来相关系数忽高忽低,根本没法用。

我建议的做法是:先对数据进行去噪平滑。比如用指数加权移动平均(EWMA)来替代简单平均。

核心公式:
ρ_t = Cov_ewma(R_vix, R_macro) / (σ_ewma(VIX) * σ_ewma(Macro))

其中,R_vix 是波动率曲面的日度变化率,R_macro 是宏观指标的日度变化率。衰减因子 λ 我一般取 0.94,这是 RiskMetrics 的标准做法。

嗯,这里要注意:不要直接用原始VIX指数。波动率曲面包含多个期限和行权价的信息,我习惯用期限结构斜率或者偏度作为代表变量。

11.2 动态相关系数:捕捉时变关系

静态相关系数有个致命问题——它假设关系是恒定的。但金融市场哪有什么恒定?08年危机前后,VIX和GDP的关系完全变了样。

所以我们需要动态相关系数。我个人最常用的是DCC-GARCH模型(动态条件相关系数模型)。

这个模型的核心思想是:让相关系数随时间变化,而且变化过程本身也有记忆性。

# Python伪代码示例
from arch import arch_model
import numpy as np

# 假设我们有两个收益率序列:vix_ret 和 macro_ret
# 第一步:分别拟合GARCH(1,1)
model_vix = arch_model(vix_ret, vol='Garch', p=1, q=1)
res_vix = model_vix.fit(update_freq=5)

model_macro = arch_model(macro_ret, vol='Garch', p=1, q=1)
res_macro = model_macro.fit(update_freq=5)

# 第二步:提取标准化残差
std_resid_vix = res_vix.resid / res_vix.conditional_volatility
std_resid_macro = res_macro.resid / res_macro.conditional_volatility

# 第三步:计算动态相关系数(简化版)
# 实际DCC需要迭代估计,这里只展示逻辑
rolling_corr = pd.Series(index=vix_ret.index)
for i in range(20, len(std_resid_vix)):
    window_vix = std_resid_vix.iloc[i-20:i]
    window_macro = std_resid_macro.iloc[i-20:i]
    rolling_corr.iloc[i] = np.corrcoef(window_vix, window_macro)[0,1]
避坑指南: 我曾经用20天的滚动窗口算动态相关系数,结果发现参数不稳定。后来改用60天窗口,效果好了很多。你想想看,宏观数据本身变化慢,窗口太短捕捉到的全是噪声。

11.3 信息溢出指数:谁在主导谁?

相关系数只能告诉你“有关系”,但没法告诉你“谁影响谁”。这时候就需要信息溢出指数了。

这个概念来自Diebold和Yilmaz(2012)的论文。核心思想是:用方差分解来度量一个变量对另一个变量预测误差的贡献度。

说白了,就是看宏观数据的“意外波动”有多少能传导到波动率曲面上去。

信息溢出指数公式:
S_{i→j} = (预测误差中来自变量i的方差占比) / (总预测方差)

这个指数范围在0到1之间。0.8以上说明强溢出,0.2以下基本可以忽略。

我建议用滚动窗口的VAR模型来估计。窗口长度我一般选250个交易日(约一年),这样既能捕捉结构性变化,又不会太敏感。

溢出方向 指数值 解读
宏观 → 波动率曲面 0.65 宏观数据对波动率有较强引导作用
波动率曲面 → 宏观 0.12 波动率对宏观的反馈较弱
双向溢出 0.35 存在一定程度的双向互动

你看这个表格,宏观到波动率的溢出指数是0.65,反过来只有0.12。这说明什么?说明在大多数时候,是宏观数据在驱动波动率曲面,而不是反过来。

但别急着下结论。我在2020年3月做过一次测试,发现波动率曲面到宏观的溢出指数突然飙升到0.4以上。为什么?因为当时市场恐慌到极致,VIX本身就成了一个宏观指标。

重要提醒: 信息溢出指数对模型阶数(lag order)非常敏感。我建议用AIC或BIC准则自动选择最优滞后阶数,不要拍脑袋定。我曾经因为用了固定滞后阶数,结果算出来的溢出指数完全反常识。

11.4 实战中的联动指标组合

单独用任何一个指标都有局限性。我个人习惯构建一个联动指标组合

  • 短期联动:用5天滚动相关系数,捕捉快速反应
  • 中期联动:用DCC-GARCH动态相关系数,捕捉趋势变化
  • 因果联动:用信息溢出指数,判断主导方向

这三个指标放在一起,基本能覆盖大部分场景。举个例子:

如果短期联动突然飙升到0.8以上,同时信息溢出指数显示宏观→波动率方向占主导,那大概率是宏观数据超预期了。这时候可以考虑做多波动率。

反过来,如果短期联动下降,但中期联动还在高位,说明市场可能正在消化之前的冲击,但趋势还没结束。

嗯,这里要提醒一句:联动指标不是交易信号。它只是告诉你“有关系”,至于怎么交易,还得结合具体的策略逻辑。

11.5 本章知识体系

下面这张图是我自己整理的联动指标知识框架,你可以把它当作一个速查表:

量化联动指标知识体系 联动强度指标 动态相关系数 信息溢出指数 EWMA相关系数 DCC-GARCH模型 VAR方差分解 λ=0.94 (衰减因子) 窗口=60天 滞后阶数=AIC/BIC 实战组合:短期联动 + 中期联动 + 因果联动 三个指标相互补充,共同构成完整的联动分析框架

这张图把三个核心指标、它们对应的计算方法、关键参数以及实战组合都串起来了。你可以把它当作一个检查清单——每次做联动分析时,看看这三个维度是不是都覆盖到了。

好了,这一章的内容就到这里。联动指标是连接宏观数据和波动率曲面的桥梁,但记住:指标只是工具,逻辑才是核心。下一章我们会把这些指标应用到具体的交易策略中去。


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