21. 波动率曲面与商品期权:原油、黄金的波动率特征
聊完股指和外汇,咱们今天来啃一块硬骨头——商品期权。原油和黄金,这两个品种我做了快十年,说实话,它们的波动率脾气跟股票完全不一样。你拿做 equity vol 那套逻辑去套商品,大概率要吃亏。
我刚开始交易原油期权时,就犯过这个错。当时以为波动率曲面就是微笑,结果被原油的「反向偏斜」打得鼻青脸肿。后来才明白,商品有它自己的物理属性——存储、运输、季节性,这些都会刻在波动率曲面上。
21.1 原油波动率:地缘政治与库存的博弈
原油的波动率曲面,说白了就是一张「恐慌地图」。它不像股指那样对称,而是有明显的偏斜(skew)。
核心特征:
- 反向偏斜(Reverse Skew):虚值看跌期权(OTM Puts)的隐含波动率远高于虚值看涨期权。为什么?因为市场永远在担心「黑天鹅」——战争、制裁、供应中断。我记得2019年沙特阿美遇袭那天,WTI 的虚值看跌 IV 直接飙了40%。
- 期限结构(Term Structure):近月波动率通常高于远月。这跟原油的存储成本有关。你想想看,现货没法长期囤积,所以近月的供需冲击会直接反映在波动率上。
- 季节性:夏季驾驶旺季和飓风季,波动率会系统性偏高。我一般会在5月就开始布局夏季 vol 的多头。
实战经验: 原油波动率曲面最怕「突发性事件」。我曾经在2020年4月做空 WTI 近月波动率,结果负油价事件直接把我的头寸打爆。后来我学乖了——近月期权永远留一手对冲,或者干脆用价差策略。
21.2 黄金波动率:避险与利率的双重驱动
黄金的波动率曲面,跟原油完全是两个物种。它更像一个「利率期权」和「恐慌指数」的混合体。
核心特征:
- 对称微笑(Symmetric Smile):黄金的波动率曲面相对对称,虚值看涨和看跌的 IV 差距不大。为什么?因为黄金既是避险资产,也是风险资产——市场恐慌时买黄金,市场乐观时也买黄金(抗通胀)。
- 利率敏感:实际利率是黄金 vol 的核心驱动。我记得2022年美联储激进加息时,黄金的隐含波动率跟美债收益率曲线高度相关。我习惯用 TIPS 收益率来预判黄金 vol 的方向。
- 低季节性:黄金没有原油那种明显的季节性。但有个规律——每年1月和8月,亚洲实物需求会推高波动率。
我的小技巧: 交易黄金波动率时,我一般会同时看 VIX 和美元指数。如果 VIX 飙升但美元也在涨,黄金 vol 往往会被压制——因为美元流动性危机时,黄金也会被抛售。这个「负相关」关系,我吃过亏才记住的。
21.3 商品波动率曲面的构建差异
做商品期权,你没法直接拿标的价格来算波动率。因为商品期货有展期成本(roll yield),这个会影响隐含波动率的计算。
关键差异点:
| 维度 | 原油 | 黄金 |
|---|---|---|
| 偏斜形态 | 反向偏斜(看跌贵) | 对称微笑 |
| 期限结构 | 近月高,远月低(升水) | 近月低,远月高(贴水) |
| 主要驱动 | 地缘政治、库存 | 实际利率、避险情绪 |
| 季节性 | 强(夏季、飓风季) | 弱(亚洲需求) |
| 展期影响 | 大(contango/backwardation) | 小(长期持有成本) |
嗯,这里要注意:原油的期限结构会剧烈变化。当市场从 contango(远期升水)切换到 backwardation(远期贴水)时,波动率曲面会整个翻转。我见过不少新手在这个切换中爆仓。
21.4 一个简单的波动率曲面拟合代码
下面是我常用的一个 SVI(Stochastic Volatility Inspired)模型拟合代码。它能把离散的期权报价,拟合成连续的波动率曲面。
import numpy as np
from scipy.optimize import minimize
def svi_model(k, a, b, rho, m, sigma):
"""SVI参数化模型"""
return a + b * (rho * (k - m) + np.sqrt((k - m)**2 + sigma**2))
def fit_svi(strikes, ivs, initial_guess=None):
"""拟合SVI参数"""
if initial_guess is None:
initial_guess = [0.1, 0.2, -0.5, 0.0, 0.2]
def objective(params):
a, b, rho, m, sigma = params
# 约束:b > 0, sigma > 0, |rho| < 1
if b <= 0 or sigma <= 0 or abs(rho) >= 1:
return 1e10
k = np.log(strikes / strikes.mean())
pred = svi_model(k, a, b, rho, m, sigma)
return np.sum((pred - ivs)**2)
result = minimize(objective, initial_guess, method='L-BFGS-B')
return result.x
# 示例:拟合原油期权数据
strikes = np.array([50, 55, 60, 65, 70, 75, 80])
ivs = np.array([0.35, 0.32, 0.30, 0.29, 0.30, 0.32, 0.35])
params = fit_svi(strikes, ivs)
print(f"拟合参数: a={params[0]:.3f}, b={params[1]:.3f}, rho={params[2]:.3f}")
避坑指南: 我曾经用这个模型拟合黄金期权时,发现参数 rho 总是接近0。后来才意识到——黄金的波动率曲面太对称了,SVI 的偏斜参数根本用不上。所以别盲目套模型,先看看数据长什么样。
21.5 知识体系:商品波动率曲面核心逻辑
下面这张图,是我自己总结的商品波动率交易框架。你把它存下来,做策略时对照着看。
这张图的核心逻辑是:标的物特征(存储、季节性)决定市场微观结构(升贴水、持仓),再叠加宏观环境(利率、地缘),最终形成波动率曲面的具体形态。你交易时,得从下往上反推——看到曲面异常,先问自己:是哪个底层因子变了?
好了,原油和黄金的波动率特征就聊到这儿。记住一句话:商品 vol 不是金融 vol 的简单映射,它有自己独立的物理逻辑。下次你看到原油的偏斜突然变陡,先查查库存数据,别急着下单。