做市商策略基础:双边报价、库存与价差管理
做市商策略,说白了就是同时挂买单和卖单,赚取中间的价差。听起来简单吧?但实际跑起来,坑多得很。我刚开始做市商策略时,以为就是无脑挂单,结果一天亏了3%的库存价值。嗯,从那以后我再也不敢小看这个策略了。
双边报价原理
双边报价的核心逻辑:同时挂出买单和卖单。比如BTC当前价格30000 USDT,我挂29980的买单和30020的卖单。如果两边都成交,我就赚了40 USDT的价差。
但这里有个关键问题:成交顺序不可控。可能买单先成交,也可能卖单先成交。如果买单先成交,我就持有了多头仓位;如果卖单先成交,我就持有了空头仓位。这就是库存风险的来源。
双边报价的三种模式:
- 对称报价:买卖价差对称分布在中间价两侧。比如中间价100,买价99.8,卖价100.2。我个人习惯用这种,逻辑简单,容易监控。
- 非对称报价:根据库存情况调整买卖报价的偏移量。库存多了就压低卖价,库存少了就抬高买价。
- 动态报价:结合市场波动率、订单簿深度实时调整报价。这个最复杂,但收益也最高。
我在项目中遇到过一个问题:对称报价在震荡行情中表现很好,但一旦出现趋势行情,库存会迅速积累。比如BTC持续上涨,我的卖单不断成交,买单一直不成交,结果我就变成了空头。嗯,这就是典型的「库存漂移」。
库存风险管理
库存风险是做市商策略最大的敌人。你想想看,如果库存方向和市场方向相反,亏损速度比手续费还快。
库存管理的核心指标:
| 指标 | 定义 | 我的经验值 |
|---|---|---|
| 库存比率 | 当前库存 / 目标库存 | 控制在0.8-1.2之间 |
| 库存偏离度 | (实际库存 - 目标库存) / 目标库存 | 超过0.3就要强制调整 |
| 库存Delta | 库存对价格变动的敏感度 | 控制在总资金的5%以内 |
我曾经踩过的坑:
有一次ETH出现剧烈波动,我的库存比率从1.0瞬间飙到1.8。因为我的调整策略是每5分钟检查一次,结果这5分钟里价格已经跑了2%。从那以后,我把检查频率改成了每笔成交后立即检查,并且设置了硬止损线——库存比率超过1.5就强制平掉一半库存。
库存调整的三种方法:
- 报价偏移法:调整买卖报价,让成交偏向于减少库存的方向。比如库存多了,就降低卖价,提高买价,让卖单更容易成交。
- 对冲交易法:在永续合约或期货市场开反向仓位。这个方法成本高,但速度快。我一般只在极端行情下用。
- 时间加权法:分批次调整,避免一次性冲击市场。比如我要平掉100个ETH,分成10次,每次10个,间隔30秒。
报价价差动态调整
价差设置是做市商策略的核心参数。价差太宽,成交少,赚不到钱;价差太窄,成交多,但每笔利润薄,而且容易被套利者盯上。
影响价差的因素:
- 市场波动率:波动率越高,价差应该越宽。我一般用过去N分钟的波动率作为参考,N取10-30之间。
- 订单簿深度:深度越浅,价差越宽。因为深度浅意味着流动性差,成交后很难快速调整库存。
- 库存状态:库存偏离目标时,可以适当收窄价差,加速库存调整。
- 手续费率:手续费越高,价差需要越宽。这个很多人会忽略,但实际影响很大。
我的价差计算公式:
base_spread = 0.001 # 基础价差0.1%
volatility_factor = 1 + (current_volatility / reference_volatility) * 0.5
depth_factor = 1 + (reference_depth / current_depth) * 0.3
inventory_factor = 1 + abs(inventory_deviation) * 0.2
final_spread = base_spread * volatility_factor * depth_factor * inventory_factor
这个公式我用了两年,效果还不错。但要注意,参数需要根据市场情况定期调整。比如在牛市里,volatility_factor的权重可以调高一些。
为什么会这样?因为不同市场环境下,各因素的影响力是不同的。熊市里流动性差,depth_factor的权重应该更高;牛市里波动大,volatility_factor更重要。
盈亏计算与归因
做市商策略的盈亏来源很复杂,不能只看总盈亏。我见过很多人赚了钱不知道为什么赚,亏了钱也不知道为什么亏。嗯,这就是缺乏归因分析。
盈亏的四个来源:
- 价差收益:买卖成交的价差收入。这是做市商策略的主要收入来源。
- 库存损益:库存价格变动带来的浮动盈亏。这个方向不确定,可能赚也可能亏。
- 手续费返还:交易所给做市商的手续费折扣或返佣。这个比例不低,我见过最高的能到80%返佣。
- 资金费用:永续合约的资金费用。如果库存方向和市场方向一致,还能赚一笔资金费。
归因分析框架:
| 盈亏来源 | 计算方法 | 监控频率 |
|---|---|---|
| 价差收益 | Σ(卖价 - 买价) × 成交量 | 每笔成交后 |
| 库存损益 | 当前库存价值 - 初始库存价值 | 每分钟 |
| 手续费返还 | 成交额 × 返佣比例 | 每日 |
| 资金费用 | 持仓量 × 资金费率 | 每8小时 |
归因分析的核心逻辑:
把总盈亏拆解到各个来源,看看哪个环节出了问题。比如总盈利1000 USDT,但库存损益亏了500 USDT,说明价差收益其实赚了1500 USDT。这时候要检查库存管理是不是出了问题。
我习惯每天做一次归因分析,每周做一次深度复盘。曾经有一次我发现连续三天库存损益都是负的,仔细一看,原来是报价偏移参数设置错了,导致库存一直在朝不利方向积累。调整参数后,库存损益立刻转正。
知识体系总览
下面这张图是我自己做市商策略的知识框架,你可以参考一下:
这张图把做市商策略的四个核心模块串起来了。双边报价是基础,库存管理是风控,价差调整是优化,盈亏归因是复盘。四个模块缺一不可。
我的建议:
刚开始做市商策略时,先用模拟盘跑一个月。把双边报价、库存管理、价差调整这三个模块分别测试,确保每个模块都稳定了再上实盘。盈亏归因分析要每天做,发现问题及时调整。我曾经在模拟盘上跑了两个月才敢上实盘,结果第一个月就盈利了。
做市商策略不是一蹴而就的,需要不断迭代优化。记住一句话:控制好库存风险,你就赢了一半。
公众号:蓝海资料掘金营,微信deep3321