做市商策略设计原理
做市商策略,说白了就是「低买高卖」的升级版。你想想看,传统交易是赌方向,做市商不赌方向,赚的是买卖价差。我刚开始接触这个领域时,总觉得这活儿简单——不就是挂买单和卖单嘛。结果第一次实盘测试,半小时亏了三千美金。嗯,这里面的门道,比想象中深得多。
今天咱们聊聊做市商策略设计的四个核心模块。我个人习惯把它们看作一个闭环系统:双边报价是引擎,库存管理是方向盘,价差与报价量是油门刹车,风险敞口控制是安全带。缺一个,车就开不稳。
核心观点:做市商不是预测价格,而是管理流动性。你的利润来自为市场提供流动性所获得的「服务费」——也就是买卖价差。
双边报价策略
双边报价,就是同时挂买单和卖单。比如BTC当前价格30000,我挂29980的买单和30020的卖单。有人卖给我,我赚了20块的价差空间;有人买我的,我也赚了20块。听起来很完美?
但现实很骨感。我在项目中遇到过一个问题:如果价格快速下跌,我的买单被吃掉,卖单却挂在高位没人理。结果就是手里全是货,眼睁睁看着价格往下掉。这就是双边报价的第一个坑——不对称成交风险。
怎么解决?我建议采用动态偏移报价:
# 伪代码示例:动态偏移报价
def calculate_quote_price(mid_price, inventory_ratio, spread):
# inventory_ratio: 当前库存占比,正数表示多头,负数表示空头
# spread: 目标价差
# 根据库存调整报价偏移
offset = -inventory_ratio * spread * 0.3 # 偏移系数0.3
bid_price = mid_price - spread/2 + offset
ask_price = mid_price + spread/2 + offset
return bid_price, ask_price
这个逻辑很简单:如果你手里货多了,就把卖单价调低一点,买单价也调低一点,鼓励别人来买你的货。反之亦然。说白了,就是用报价来「赶」库存回归中性。
实战技巧:偏移系数不要设太大。我曾经设了0.5,结果报价偏离市场太远,完全吃不到单。0.2-0.3是个不错的起点。
库存管理基础
库存管理是做市商的核心命门。你想想看,做市商本质上是个「仓库管理员」——货太多怕跌,货太少怕涨。理想状态是库存为零,但现实中不可能。
我常用的库存管理框架分三层:
| 层级 | 目标 | 触发条件 | 操作 |
|---|---|---|---|
| 第一层 | 被动调整 | 库存偏离<10% | 调整报价偏移 |
| 第二层 | 主动对冲 | 库存偏离10%-30% | 使用对冲订单 |
| 第三层 | 紧急平仓 | 库存偏离>30% | 市价单减仓 |
这里有个关键点:库存偏离的计算基准是什么?我见过很多人用「当前持仓数量」除以「最大允许持仓」,这其实不对。应该用价值偏离——也就是持仓市值相对于目标市值的比例。
举个例子:你本金10万美金,目标库存价值为0。现在持有2个BTC,价格5万美金,总价值10万美金。那库存偏离就是100%。这时候你该慌了——整个仓位都在裸奔。
避坑指南:我曾经犯过一个错误——只监控库存数量,不监控库存价值。结果BTC从3万涨到6万,我的库存数量没变,但风险敞口翻了一倍。从那以后,我改用价值维度做库存管理。
价差与报价量设定
价差设多大?报价量设多少?这两个参数直接决定了你的盈利能力和风险暴露。
先聊价差。我总结了一个经验公式:
价差 = 基础价差 + 波动率调整 + 库存调整
基础价差 = 手续费 * 2 + 滑点容忍度
波动率调整 = 近期波动率 * 系数
库存调整 = abs(库存偏离) * 系数
举个例子:如果手续费是0.1%,滑点容忍度0.05%,那基础价差就是0.25%。如果近期波动率是2%,系数取0.1,波动率调整就是0.2%。库存偏离20%,系数取0.5,库存调整就是0.1%。最终价差 = 0.25% + 0.2% + 0.1% = 0.55%。
报价量呢?我建议遵循凯利公式的简化版:
报价量 = 可用资金 * 风险系数 / (价差 * 价格)
# 风险系数一般取0.01-0.05
# 价差用百分比形式
比如可用资金10万美金,风险系数0.02,价差0.55%,BTC价格5万:
报价量 = 100000 * 0.02 / (0.0055 * 50000) ≈ 0.727 BTC
嗯,这里要注意:报价量不能超过交易所的最小交易单位限制,也不能超过你的库存容量。
个人经验:刚开始做的时候,我习惯把报价量设小一点,宁可少赚也别亏。等跑顺了再慢慢加量。这就像开车,新手先慢点开,熟悉了再提速。
风险敞口控制
风险敞口控制,说白了就是「别一把梭哈」。做市商最大的风险不是方向判断错误,而是流动性危机——市场剧烈波动时,你的对手方消失了,只剩你一个人扛着单子。
我常用的风险控制手段:
- 最大持仓限制:总持仓价值不超过净资产的2-3倍
- 单边敞口限制:多头或空头敞口不超过净资产的1倍
- 止损线:当日亏损达到净资产的2%时,暂停交易
- 熔断机制:市场波动率超过阈值时,自动撤单
这里我画了一张流程图,展示整个风险控制体系的运作逻辑:
这个流程图的逻辑很清晰:先检查市场环境,再检查自身状态,最后才决定是否报价。我见过很多人跳过前两步,直接报价,结果就是被市场收割。
重要提醒:风险控制不是事后补救,而是事前预防。我建议在策略启动前就把所有风控参数写死,运行时不允许人工修改。人性经不起考验,尤其在亏损的时候。
最后说一句:做市商策略不是印钞机。它是个精细活,需要不断调参、优化、复盘。我见过太多人上来就想赚大钱,结果亏得连本金都保不住。稳扎稳打,才是长久之道。
公众号:蓝海资料掘金营,微信deep3321