第四章:做市商风险管理
做市商这活儿,表面看是低买高卖赚差价。实际上呢?你是在跟整个市场对赌。我做了这么多年,见过太多人死在风险管理上。今天咱们就聊聊做市商最头疼的三个风险:库存风险、逆向选择风险,还有存货成本与对冲。
核心观点:做市商的本质不是预测方向,而是管理风险敞口。你赚的是流动性溢价,不是方向性收益。
4.1 库存风险:你手里的货,是资产也是炸弹
库存风险,说白了就是你手里囤了一堆资产,价格一跌你就亏钱。做市商不像普通交易者,你不能随便清仓——你的职责是持续提供双边报价。
我记得刚入行那会儿,有次做ETH的做市,库存建得有点大。结果半夜一条利空消息,价格直接砸了5%。那一晚我基本没睡,盯着盘面手动调报价。嗯,从那以后我就再也不敢忽视库存管理了。
库存风险的核心指标
| 指标 | 定义 | 我的经验阈值 |
|---|---|---|
| 库存敞口 | 当前持仓数量 / 目标持仓数量 | 超过±30%就要警惕 |
| 库存久期 | 按当前成交量清空库存所需时间 | 超过2小时就偏高了 |
| 库存成本 | 平均建仓成本 vs 当前市价 | 亏损超过0.5%必须行动 |
库存管理的基本策略
- 偏移报价:库存偏多时,把卖价调低、买价调高,吸引对手方向成交。我在项目中习惯用指数衰减函数来调整偏移量。
- 库存上限:设定硬性上限,到了就暂停做市。别贪,活着最重要。
- 时间衰减:持仓时间越长,容忍度越低。我一般设30分钟为一个衰减周期。
我的小技巧:用波动率来动态调整库存上限。波动率大的时候,库存上限砍一半。别问我怎么知道的——亏出来的经验。
4.2 逆向选择风险:你以为是套利,其实是送钱
逆向选择,这个词听着高大上。说白了就是:你报了个价,结果只有懂行的人来跟你成交。你想想看,如果你报的买价被成交了,大概率是因为有人知道这个价格要涨。你报的卖价被成交了,大概率是因为有人知道要跌。
为什么会这样?因为信息不对称。市场上总有比你更聪明、更快、信息更灵通的交易者。你报的每一个价格,都是在给这些人送期权。
逆向选择的典型场景
- 大单拆分:机构用算法把大单拆成小单,专门吃你的报价。我曾经在BTC上遇到过,一个小时内被吃了20多次,后来才发现是同一家机构在扫货。
- 新闻驱动:重大消息出来前,总有人先知道。你的报价就成了他们的提款机。
- 跨市场套利:其他交易所价格变了,你的报价还没更新。这时候来成交的,全是套利机器人。
如何防范逆向选择
| 方法 | 原理 | 实现难度 |
|---|---|---|
| 延迟报价更新 | 收到成交后延迟更新报价,防止被连续吃 | 低 |
| 成交量监控 | 单边成交量异常时,主动缩小报价宽度 | 中 |
| 毒丸策略 | 检测到逆向选择时,临时报出极差价格 | 高 |
避坑指南:我曾经犯过一个错误——为了抢成交量,把报价宽度收得很窄。结果被套利机器人盯上了,一天亏了3%的库存价值。记住:报价宽度是你的保护层,别为了面子丢了里子。
4.3 存货成本与对冲策略
存货成本不只是你买资产花的钱。还有资金成本、机会成本、滑点成本。我习惯把存货成本拆成三块来看:
- 资金成本:你占用资金做市,这笔钱如果不做市,放理财也有收益。这部分就是你的隐形成本。
- 持仓成本:特别是永续合约做市,每天的资金费率会吃掉你的利润。别小看这个,年化下来可能超过20%。
- 滑点成本:你调整仓位时,大单进出造成的价格不利变动。这个在流动性差的品种上特别明显。
对冲策略实战
我个人最常用的对冲方式有三种:
- 期货对冲:持有现货多头时,做空等量期货。这样库存价值不变,但方向性风险被锁住了。我在ETH上常用这个,效果不错。
- 期权保护:买一个虚值看跌期权,防止黑天鹅。成本不高,但能保命。我记得2020年3月那次暴跌,有期权保护的朋友基本没受伤。
- 跨品种对冲:相关性高的品种之间做对冲。比如BTC和ETH,虽然不完全同步,但大部分时间走势一致。
关键公式:对冲比率 = 现货持仓价值 × 贝塔系数 / 期货合约价值。别问我贝塔怎么算——用过去30天的日收益率做线性回归就行。
一个完整的对冲流程示例
# 伪代码:库存风险监控与对冲
def risk_monitor(position, market_data):
# 计算当前库存敞口
inventory_exposure = position.current / position.target
# 如果敞口过大,启动对冲
if abs(inventory_exposure) > 0.3:
hedge_size = position.current * 0.5 # 对冲50%敞口
# 选择对冲工具
if market_data.volatility < 0.02:
# 低波动用期货
futures_hedge(hedge_size)
else:
# 高波动用期权
options_hedge(hedge_size, strike='OTM')
# 记录对冲成本
log_hedge_cost(hedge_size, market_data.spread)
我的经验:别试图完美对冲。对冲是有成本的,你每对冲一次,就损失一次买卖价差。我一般只对冲50%-70%的敞口,留一部分风险敞口来赚取流动性溢价。完全对冲等于完全放弃做市利润,那你还做什么市?
4.4 风险管理的整体框架
说了这么多,咱们来画个图,把这三个风险串起来看看。
你看这张图就明白了。三个风险不是孤立的——库存大了,逆向选择风险也跟着大;对冲做多了,存货成本就上去了。你需要找到一个平衡点。
我个人习惯每天收盘后做一次风险评估,看看三个指标的数值。如果任何一个指标亮红灯,第二天就调整策略。别等到爆仓了才想起来风险管理——那时候已经晚了。
最后说一句:做市商这行,活得久比赚得多重要。风险管理不是成本,是保险。你永远不知道黑天鹅什么时候来,但你可以确保自己扛得住。