3、做市策略设计基础:对称做市策略、非对称做市策略、库存基准模型(Avellaneda-Stoikov)、做市策略参数(价差宽度、订单规模、更新频率)
做市策略,说白了就是怎么在买卖两边同时挂单,赚那个差价。很多人一开始觉得这事简单——两边挂单等着吃差价就行。但真上手了你会发现,这里面的门道比想象中深得多。我最早做做市的时候,就吃过不少亏,今天把这些基础给你掰开揉碎了讲清楚。
3.1 对称做市策略:最朴素的玩法
对称做市策略,是所有做市策略的起点。它的逻辑非常直白:
- 在中间价两侧,对称地挂买单和卖单
- 买单和卖单的价差宽度一样
- 订单规模也相同
举个例子,假设当前BTC价格是50000 USDT,你设置价差宽度为100 USDT,那么:
- 买单挂在49950 USDT
- 卖单挂在50050 USDT
- 两边各挂1个BTC
嗯,这里要注意——对称策略有个致命问题。我在项目中遇到过,市场一旦出现单边行情,你的库存会迅速失衡。比如价格一直涨,你的买单不断成交,卖单却一直没被吃掉。结果就是手里全是货,浮亏越来越大。
3.2 非对称做市策略:聪明一点的玩法
非对称做市策略,说白了就是根据你的库存情况,动态调整买卖单的价差和规模。你想想看,如果你手里已经有很多货了,是不是应该把卖单挂近一点、买单挂远一点?
我个人的习惯是,把库存偏离度作为调整依据:
- 库存为正(手里货多):卖单价差缩小,买单价差扩大
- 库存为负(手里货少):买单价差缩小,卖单价差扩大
- 库存为零:回归对称策略
举个例子,假设你目标库存是10个ETH,现在手里有15个:
- 卖单价差从0.1%缩小到0.05%
- 买单从0.1%扩大到0.15%
- 卖单规模从5个增加到8个
- 买单规模从5个减少到3个
这样做的好处很明显——你主动把货甩出去,同时减少进货。我曾经在ETH上用过这个策略,效果比对称策略好不少,至少库存不会失控。
3.3 库存基准模型:Avellaneda-Stoikov
说到做市策略,就绕不开Avellaneda-Stoikov模型。这是2008年提出来的,到现在还是很多量化团队的基础框架。为什么?因为它把做市问题数学化了。
这个模型的核心思想是:做市商应该在库存偏离目标时,主动调整报价来引导库存回归。它给出了一个明确的公式:
# Avellaneda-Stoikov 模型核心公式
# 最优报价 = 中间价 - 库存偏移项 - 风险规避项
# 库存偏移项 = gamma * sigma^2 * (T - t) * q_t
# 风险规避项 = gamma * sigma^2 * (T - t) * (1/2)
# 其中:
# gamma: 风险厌恶系数
# sigma: 波动率
# T - t: 剩余时间
# q_t: 当前库存偏离度
我刚开始看这个公式的时候,也觉得头大。但实际用起来,你只需要关注几个关键参数:
| 参数 | 含义 | 经验值 |
|---|---|---|
| gamma | 风险厌恶系数 | 0.01 - 0.1 |
| sigma | 波动率 | 根据历史数据计算 |
| T | 做市周期 | 1小时 - 1天 |
| q_t | 库存偏离度 | 实时计算 |
为什么这个模型这么重要?因为它给出了一个理论上的最优解。你想想看,如果你能精确计算出每个时刻的最优报价,那做市就变成了一个数学问题,而不是凭感觉。
3.4 做市策略参数:价差宽度、订单规模、更新频率
做市策略的核心参数就三个:价差宽度、订单规模、更新频率。这三个参数决定了你的策略是赚是赔。
3.4.1 价差宽度
价差宽度,就是买单和卖单之间的价格差距。它直接影响你的盈利和成交概率:
- 价差越大:单笔盈利高,但成交概率低
- 价差越小:单笔盈利低,但成交概率高
我个人的经验是,价差宽度应该根据市场波动率动态调整。波动率大的时候,价差要放宽;波动率小的时候,价差可以收窄。一个常用的公式是:
# 动态价差宽度计算
spread = base_spread * (1 + k * (current_volatility / avg_volatility - 1))
# 其中:
# base_spread: 基准价差,通常设为0.1% - 0.5%
# k: 调整系数,通常设为1 - 3
# current_volatility: 当前波动率
# avg_volatility: 平均波动率
3.4.2 订单规模
订单规模决定了你每次挂多少量。这里有个常见的误区——很多人觉得规模越大越好。其实不是。
订单规模受两个因素制约:
- 你的资金量:总资金决定了你能承受的最大库存
- 市场深度:订单规模不能超过市场深度的10%,否则容易造成滑点
我记得有一次在某个小币种上做市,订单规模设得太大,结果一个买单直接把价格拉高了2%。从那以后,我每次都会先看市场深度再决定规模。
3.4.3 更新频率
更新频率,就是你多久重新计算一次报价。这个参数很微妙:
- 更新太快:容易造成订单频繁撤改,增加交易成本
- 更新太慢:报价跟不上市场变化,容易吃大亏
我建议的更新频率是:
| 市场状态 | 更新频率 | 说明 |
|---|---|---|
| 正常波动 | 1 - 5秒 | 足够应对大部分情况 |
| 高波动 | 0.1 - 1秒 | 需要快速响应 |
| 低波动 | 10 - 30秒 | 减少不必要的操作 |
3.5 知识体系总览
为了让你更直观地理解这些概念之间的关系,我画了一张图:
这张图把今天讲的内容串起来了。你可以看到,对称和非对称策略是基础玩法,Avellaneda-Stoikov模型提供了理论支撑,而三个参数则是你实际调优的抓手。
做市策略设计,说白了就是在盈利和风险之间找平衡。没有完美的策略,只有适合当前市场的策略。我建议你从对称策略开始,逐步加入非对称调整,最后再用Avellaneda-Stoikov模型做精细化优化。一步一个脚印,别想一口吃成胖子。