3、波动率环境识别
做市这行,说白了就是跟波动率打交道。你连对手的脾气都摸不清,怎么赚钱?
我个人习惯,每天开盘前先花五分钟看看波动率环境。这五分钟,能帮我省下后面五小时的麻烦。今天我们就聊聊怎么识别波动率环境——低波动、高波动、突变,还有那个让人头疼的聚类效应。
3.1 低波动率环境特征
低波动率环境,我称之为「温水煮青蛙」阶段。市场看起来风平浪静,但往往是大行情的前夜。
具体特征有哪些?
- 日内振幅收窄:比如BTC,平时日内波动3%-5%,现在连续几天只有1%以内
- 订单簿深度增加:买卖盘口挂单量变大,价差收窄。做市商都在抢着吃这口饭
- 成交量萎缩:没人交易了,流动性都躲起来了
- 隐含波动率低于历史波动率:期权市场在告诉你,大家预期未来会更平静
核心指标:我一般用20日滚动波动率,如果低于历史30%分位数,就标记为低波动环境。
我在项目中遇到过一件事。有一次ETH连续三天波动率不到0.5%,我的做市策略还在按正常参数跑。结果第四天一根大阳线,库存直接亏了2%。嗯,从那以后我加了个低波动预警模块。
避坑指南:低波动率环境下,千万别盲目扩大做市规模。你以为风险小了,其实风险在积累。我曾经吃过这个亏,现在每次低波动都会主动缩窄报价宽度,降低库存敞口。
3.2 高波动率环境特征
高波动率环境,就是市场在「发疯」。这时候做市商最容易亏钱,但也最有机会赚钱。
特征很明显:
- 日内振幅剧烈:动不动5%以上,甚至10%
- 订单簿变薄:流动性提供者纷纷撤单,价差拉大
- 成交量暴增:恐慌盘和抄底盘同时涌入
- 隐含波动率飙升:期权价格贵得离谱
| 指标 | 低波动 | 高波动 |
|---|---|---|
| 20日滚动波动率 | < 30%分位数 | > 70%分位数 |
| 日内振幅 | < 1% | > 5% |
| 订单簿深度 | 深 | 浅 |
| 价差 | 窄 | 宽 |
你想想看,高波动率的时候,你的做市策略该怎么调?我建议把报价宽度放大到平时的1.5-2倍,同时降低每个价位的挂单量。说白了,就是别跟市场硬刚。
警告:高波动率环境下,不要使用固定参数的做市策略。我见过太多团队,参数没调,结果一次黑天鹅事件直接爆仓。记住,波动率越高,你的风控阈值应该越紧。
3.3 波动率突变(Jump)的识别
波动率突变,就是市场突然「变脸」。前一秒还风平浪静,下一秒就狂风暴雨。
怎么识别?我常用的方法:
- 价格跳跃检测:连续两个tick的价格变化超过3个标准差
- 成交量异常:突然出现平时10倍以上的成交量
- 订单簿失衡:买卖盘口深度比例突然失衡,比如买盘深度是卖盘的5倍
- 波动率指数突破:比如DVOL(比特币波动率指数)突然突破前期高点
# 一个简单的跳跃检测函数
def detect_jump(price_series, window=20, threshold=3):
returns = np.diff(price_series) / price_series[:-1]
rolling_mean = np.mean(returns[-window:])
rolling_std = np.std(returns[-window:])
latest_return = returns[-1]
z_score = (latest_return - rolling_mean) / rolling_std
if abs(z_score) > threshold:
return True, z_score
return False, z_score
这个代码我用了好几年,简单但有效。不过要注意,阈值设得太低会频繁误报,设得太高又会漏报。我个人习惯设3倍标准差,但如果你做的是高频做市,可以降到2.5倍。
经验之谈:波动率突变往往伴随着流动性枯竭。我曾经在2021年5月19日那天,看到BTC价格在10分钟内跌了15%,订单簿几乎空了。这时候做市商最该做的是——暂停做市,等市场稳定再说。
3.4 波动率聚类效应
波动率聚类,说白了就是「祸不单行」。高波动率之后往往跟着高波动率,低波动率之后往往跟着低波动率。
为什么会这样?因为市场参与者的情绪会传染。恐慌引发更多恐慌,贪婪引发更多贪婪。
我一般用GARCH模型来捕捉这个效应:
from arch import arch_model
def fit_garch(returns):
model = arch_model(returns * 100, vol='Garch', p=1, q=1)
result = model.fit(disp='off')
return result
# 使用示例
result = fit_garch(btc_returns)
print(result.summary())
GARCH模型的参数p和q,我一般设1,1就够用了。设多了反而过拟合,你想想看,做市策略又不是搞学术研究,够用就行。
核心逻辑:波动率聚类意味着,如果你今天看到高波动率,明天大概率也是高波动率。做市策略应该根据这个规律动态调整参数,而不是假设波动率会回归均值。
我记得有一次,BTC连续五天高波动率,我的策略在第三天就自动把报价宽度调到了最大。结果第四天波动率更高,但因为提前调整了,反而赚了钱。这就是利用聚类效应的好处。
知识体系总览
下面这张图,是我自己梳理的波动率环境识别框架。每次做策略调整前,我都会过一遍这个流程:
这张图我每次做策略评审都会拿出来看一遍。四个维度缺一不可,少一个都可能出问题。
最后提醒一句:波动率环境识别不是一次性工作,而是持续的过程。我每天收盘后都会重新计算一遍这些指标,看看有没有变化。做市这行,最怕的就是「我以为」。