第19章:做市策略进阶:网格做市、趋势跟随做市、波动率做市、组合策略
做市策略做到一定程度,你会发现一个尴尬的事实——单一策略总有失效的时候。我见过太多团队,一套网格跑了大半年,突然某天行情突变,直接穿仓。所以今天咱们聊聊进阶玩法:网格、趋势跟随、波动率,以及怎么把它们组合起来。
一、网格做市:最朴素的赚钱机器
网格做市,说白了就是在价格区间内挂一堆买单和卖单。价格跌了买,涨了卖,赚的就是这个差价。我最早接触做市时,用的就是网格策略,简单到令人发指,但坑也多到令人发指。
核心逻辑:在价格区间 [L, H] 内,等间距或不等间距地挂出 N 层买单和 N 层卖单。每层挂单数量可以固定,也可以根据波动率动态调整。
# 一个简单的等距网格示例
def build_grid(price, low, high, layers, volume_per_layer):
step = (high - low) / layers
grid = []
for i in range(layers):
buy_price = low + i * step
sell_price = low + (i + 1) * step
grid.append({
'buy': {'price': buy_price, 'volume': volume_per_layer},
'sell': {'price': sell_price, 'volume': volume_per_layer}
})
return grid
嗯,这里要注意一个关键点——网格的上下边界怎么定?我个人习惯用ATR(平均真实波幅)来动态调整。比如以当前价格为中心,上下各3倍ATR作为边界。这样网格能自适应市场波动。
避坑指南:我曾经在2018年大熊市里用固定网格做BTC,结果价格直接跌破下边界,所有买单全部成交,然后一路跌到地板上。后来我学乖了——网格必须带止损,或者用期权对冲尾部风险。
二、趋势跟随做市:顺势而为
网格做市有个致命弱点——单边行情里会亏得很惨。你想啊,价格一直涨,你不断卖出,结果卖飞了。这时候就需要趋势跟随做市来补位。
趋势跟随做市的核心思路是:当检测到趋势时,调整挂单方向,让做市行为与趋势同向。说白了,就是涨的时候多买点,跌的时候多卖点。
| 趋势方向 | 挂单策略 | 库存管理 |
|---|---|---|
| 上涨趋势 | 加大买单深度,减少卖单 | 积累正库存 |
| 下跌趋势 | 加大卖单深度,减少买单 | 积累负库存 |
| 震荡趋势 | 均衡挂单 | 维持中性 |
怎么判断趋势?我常用的方法是用EMA均线组合。比如快线(5周期)上穿慢线(20周期)视为上涨趋势,反之亦然。但别太依赖单一指标,我见过有人用MACD+RSI组合,效果也不错。
个人经验:趋势跟随做市最怕的是假突破。我踩过这个坑——价格刚突破均线,我立马调整挂单,结果价格又回来了,两边打脸。后来我加了一个确认机制:突破后必须站稳3根K线才行动。
三、波动率做市:赚波动的钱
波动率做市,本质上是在赌波动率会回归均值。当波动率过高时,你提供流动性赚取高额价差;当波动率过低时,你减少挂单甚至反向操作。
具体怎么做?我一般用历史波动率(HV)和隐含波动率(IV)的差值来决策:
- HV > IV:实际波动比市场预期的低,适合做市,赚价差
- HV < IV:实际波动比市场预期的高,减少做市,甚至做方向性交易
# 波动率做市的核心逻辑
def volatility_market_making(current_price, hv, iv, spread_base):
if hv > iv * 1.2: # 实际波动远低于预期
spread = spread_base * 0.8 # 收窄价差,积极做市
volume_multiplier = 1.5
elif hv < iv * 0.8: # 实际波动远高于预期
spread = spread_base * 1.5 # 扩大价差,减少风险
volume_multiplier = 0.5
else:
spread = spread_base
volume_multiplier = 1.0
return spread, volume_multiplier
关键点:波动率做市需要实时计算HV和IV。HV可以用过去20天的日收益率标准差,IV则需要从期权市场获取。如果没有期权数据,可以用ATR替代IV作为参考。
四、组合策略:1+1 > 2
单一策略都有短板,组合起来才能稳健。我目前在生产环境跑的组合策略是这样的:
- 基础层:网格做市(60%权重)——提供稳定收益
- 趋势层:趋势跟随做市(25%权重)——捕捉单边行情
- 波动率层:波动率做市(15%权重)——对冲极端行情
三层策略通过一个风险预算分配器来协调。比如当波动率飙升时,波动率层的权重自动提升,网格层的权重降低。这样整个系统就有了自适应能力。
我的做法:组合策略最怕的是策略之间互相冲突。比如网格在卖,趋势在买,那就乱套了。我加了一个冲突检测模块——如果两个策略的信号方向相反,就暂停其中一个,直到信号一致再恢复。
五、知识体系总览
下面这张图是我自己梳理的做市策略进阶路线,你可以对照着看看自己处在哪个阶段:
你看,从基础到进阶再到组合,每一步都有明确的路径。我个人建议不要一上来就搞组合策略,先把单一策略跑通、跑稳,再慢慢叠加。我见过太多人一上来就搞大而全的系统,结果出了问题都不知道是哪个策略的锅。
最后提醒一句:任何策略都有失效的时候。组合策略不是万能药,它只是降低了单一策略失效时的冲击。真正的护城河在于——你能否在策略失效时快速识别并切换。我自己的系统里有一个「策略健康度仪表盘」,实时监控每个策略的夏普比率、最大回撤、胜率等指标,一旦某个指标恶化到阈值,自动降低该策略的权重。
好了,这一章的内容就到这里。网格、趋势、波动率,这三板斧你掌握了,再配合组合策略的思路,基本上就能应对大部分市场环境了。记住,做市不是预测市场,而是管理风险。把风险管好了,收益自然就来了。