4、库存平衡策略:目标库存水平设定、库存偏离的调整机制、均值回归策略、库存平衡的数学建模
库存管理,说白了就是做市商的核心命门。你策略再牛,订单流再快,库存管不好,一把就能把你打回原形。我见过太多团队,alpha 因子挖得漂亮,最后却栽在库存失衡上——方向做反了,仓位扛不住,爆仓离场。
这一章,咱们就聊聊怎么把库存管明白。我会从目标水平设定讲起,再到偏离后的调整机制,最后用数学把整个逻辑串起来。
4.1 目标库存水平设定
先问个问题:你的库存应该维持在多少?
很多人觉得是零。嗯,零库存确实最安全,没有方向性风险。但你想过没有,零库存也意味着你放弃了所有库存带来的收益机会。比如你判断某个币种短期会涨,手里没货,那这波行情你就只能干瞪眼。
我个人习惯把目标库存设为一个动态区间,而不是一个固定值。具体来说:
- 基准库存:根据历史波动率和流动性,算出一个中性水平。比如 BTC/USDT 这个交易对,我通常设基准为 0。
- 上下边界:在基准基础上加减一个容忍度。容忍度怎么定?看你的风险预算。我一般用 VaR 的 1% 分位数来算。
- 方向性偏移:如果你有短期方向性判断,可以主动偏移目标。比如我看多,就把目标库存上调 10%。
核心公式:目标库存 = 基准库存 + 方向性偏移
其中,方向性偏移 = 信号强度 × 最大偏移量
举个例子。假设 ETH/USDT 的基准库存是 0,最大偏移量是 100 ETH。如果我的短期信号强度是 0.3(范围 0~1),那目标库存就是 0 + 0.3 × 100 = 30 ETH。这意味着我允许自己持有 30 个 ETH 的多头仓位。
4.2 库存偏离的调整机制
设好了目标,接下来就是执行。实际交易中,库存会不断偏离目标——可能是被动吃单导致的,也可能是主动做市积累的。
偏离了怎么办?我的做法分三步:
- 监测偏离度:实时计算当前库存与目标库存的差值。偏离度 = 当前库存 - 目标库存。
- 触发阈值:设定一个阈值,比如 20 ETH。偏离超过这个值,就启动调整。
- 执行调整:通过调整报价或直接交易,把库存拉回目标区间。
这里有个坑。我曾经在某个项目里,把调整阈值设得太小,结果市场稍微一波动,系统就频繁调整,手续费吃掉了一大块利润。后来我学乖了,阈值至少设成日均成交量的 0.5%。
避坑指南:调整频率不要太高。我曾经在 2021 年的牛市中,把调整间隔设成 1 秒,结果系统在震荡行情里来回折腾,一天亏了 3% 的手续费。后来改成每 10 秒检查一次,效果好了很多。
调整机制的具体实现,我通常用两种方式:
- 被动调整:调整买卖报价的价差和深度。比如库存偏多,就降低卖价、提高买价,吸引对手方来吃你的单。
- 主动调整:直接下市价单或限价单,把库存平掉一部分。这种方式成本高,但速度快。
我个人更倾向于被动调整,因为成本低。只有在偏离特别严重(比如超过 2 倍阈值)时,才会用主动调整。
4.3 均值回归策略
均值回归,说白了就是赌库存会回到目标水平。这个策略在震荡市中特别好用,但在趋势市中容易被打脸。
核心逻辑很简单:当库存偏离目标时,你预期它会回归,所以你在偏离方向上加大做市力度。比如库存偏多,你就更积极地卖,同时减少买。
具体怎么实现?我一般用这个公式:
# 均值回归调整系数
deviation = current_inventory - target_inventory
adjustment = -k * deviation
# 调整后的报价
adjusted_bid = base_bid + adjustment
adjusted_ask = base_ask + adjustment
这里的 k 是回归速度系数。k 越大,调整越激进。我通常设 k = 0.1,这样偏离 100 ETH 时,报价会偏移 10 个 tick。
小技巧:k 值可以根据市场波动率动态调整。波动率大时,k 设小一点,避免被来回打脸;波动率小时,k 可以设大一点,加速回归。
我记得在 2022 年的一个项目中,市场突然进入低波动期,我忘了调 k 值,结果库存偏离后调整太慢,错过了好几波回归行情。后来我写了个自动调参模块,根据 5 分钟波动率实时更新 k 值,效果立竿见影。
4.4 库存平衡的数学建模
最后,咱们用数学把整个逻辑串起来。库存平衡本质上是一个随机控制问题。
先定义几个变量:
- I(t):t 时刻的库存
- I*:目标库存
- D(t) = I(t) - I*:库存偏离
- λ:调整强度
- σ:库存波动率
库存的动态可以用随机微分方程描述:
dI(t) = -λ * D(t) * dt + σ * dW(t)
这个方程的意思是:库存的变化由两部分组成。第一部分是均值回归项,-λ * D(t) * dt,它会把库存拉向目标。第二部分是随机项,σ * dW(t),代表市场噪声。
解这个方程,可以得到库存偏离的期望和方差:
| 指标 | 公式 | 说明 |
|---|---|---|
| 期望偏离 | E[D(t)] = D(0) * e^(-λt) | 偏离会指数衰减到 0 |
| 方差 | Var[D(t)] = σ² / (2λ) * (1 - e^(-2λt)) | 方差会收敛到 σ²/(2λ) |
这个模型告诉我们两件事:
- λ 越大,回归越快,但方差也越小——说白了就是更稳定。
- σ 越大,库存波动越剧烈,需要更强的调整力度。
在实际应用中,我通常用这个模型来校准参数。比如,我希望库存偏离在 10 秒内衰减到初始值的 10%,那就可以解出 λ = -ln(0.1) / 10 ≈ 0.23。
实战建议:不要盲目追求快速回归。λ 太大,会导致报价频繁跳动,增加滑点成本。我一般把 λ 控制在 0.1~0.3 之间,具体看交易对的流动性。
下面这张图展示了整个库存平衡策略的流程:
嗯,这个流程看起来简单,但每个环节都有细节。比如阈值怎么设、调整力度怎么控、回归速度怎么调,都需要根据实际数据反复校准。
最后说一句:库存平衡不是一劳永逸的事。市场在变,你的参数也得跟着变。我每周都会回测一次模型,看看参数是否还适用。如果发现偏离回归的速度变慢了,就调一调 λ;如果波动率变了,就改一改阈值。
做市商这行,细节决定成败。库存管理更是如此。