一、库存管理概述:做市商库存风险的本质
做市商的库存管理,说白了就是管好你手里那一堆「货」。
我刚开始做市商那会儿,总觉得只要把买卖价差拉大点就能赚钱。结果呢?有一次我在ETH上囤了太多货,市场突然暴跌,那一晚上我亏掉了三个月的利润。嗯,从那以后我才真正明白——库存风险才是做市商最大的敌人。
库存风险的本质是什么?
你想想看,做市商的核心工作就是两边报价。有人买,你卖;有人卖,你买。正常情况下,你赚的是买卖之间的价差。但问题来了——
买卖不可能永远平衡。
比如某只股票一直有人买,没人卖。你的库存就会越来越少,最后手里没货了,还怎么做市?反过来,如果一直有人卖没人买,你的库存就会越堆越多,价格一跌,全砸手里了。
这就是库存风险的本质:持仓方向与市场走势不一致导致的潜在亏损。
核心观点:做市商不是投机者,我们不赌方向。库存管理的目标就是让持仓尽量中性,减少方向性风险暴露。
库存管理的三个目标
我个人习惯把库存管理目标归纳为三点:
- 控制风险 — 别让库存暴露太大,别赌方向
- 保证流动性 — 手里始终有货可卖,有钱可买
- 优化收益 — 在控制风险的前提下,尽量多赚价差和资金效率
这三个目标有时候是冲突的。比如你想控制风险,就得频繁调仓,但调仓有成本。你想多赚价差,就得扩大报价宽度,但这样成交率会下降。怎么平衡?这就是库存管理的艺术所在。
库存管理的核心指标
做库存管理,你得盯住几个关键数字。我每天开盘前必看这三个指标:
1. 库存周转率
说白了就是你的货多久能换一轮。
公式: 库存周转率 = 成交量 / 平均库存价值
周转率高,说明你的货走得快,流动性好。周转率低,说明货压在手里不动,风险在积累。
我的经验: 在BTC/ETH这种高流动性品种上,我一般要求周转率不低于20。如果是冷门小币种,周转率能到5就算不错了。低于这个数,我会主动降价出货。
2. 库存价值
这个好理解,就是你手里所有持仓的总价值。
但要注意,库存价值不是一成不变的。市场在动,你的持仓价值也在动。我习惯用VaR(风险价值)来评估库存价值可能的最大回撤。
| 库存规模 | 建议最大VaR | 对应风控措施 |
|---|---|---|
| 小(<100万) | 不超过5% | 手动监控+止损 |
| 中(100-1000万) | 不超过3% | 自动对冲+限额 |
| 大(>1000万) | 不超过1.5% | 多策略分散+实时风控 |
3. 库存久期
这个概念是从债券市场借来的。库存久期衡量的是你的持仓对价格变化的敏感度。
公式: 库存久期 = Σ(每个持仓的市值 × 该持仓的久期) / 总库存价值
久期越大,你的库存对价格波动越敏感。比如你手里全是高波动的山寨币,久期就很大。如果全是稳定币,久期就很小。
我曾经踩过的坑: 有一年我同时持有了大量DOGE和SHIB,久期高得吓人。结果马斯克一条推文,价格上下波动20%,我的库存价值一天内坐了两次过山车。后来我强制要求自己,久期超过3的品种,单品种持仓不能超过总库存的10%。
知识体系总览
下面这张图是我自己整理的库存管理知识框架,你可以对照着看:
一个简单的库存监控代码
下面是我自己用的一个库存监控脚本片段,帮你快速计算这三个核心指标:
def inventory_monitor(positions, market_data):
"""
库存监控函数
positions: 持仓列表 [{'symbol':'BTC','qty':10,'price':50000}, ...]
market_data: 市场数据 {'BTC': {'bid':49900,'ask':50100}, ...}
"""
total_value = 0
turnover = 0
weighted_duration = 0
for pos in positions:
sym = pos['symbol']
value = pos['qty'] * pos['price']
total_value += value
# 计算周转率(假设日成交量已知)
daily_vol = market_data[sym]['volume_24h']
turnover += daily_vol / value if value > 0 else 0
# 计算久期(这里用波动率近似)
vol = market_data[sym]['volatility']
weighted_duration += value * vol
avg_turnover = turnover / len(positions)
avg_duration = weighted_duration / total_value if total_value > 0 else 0
return {
'total_value': total_value,
'avg_turnover': avg_turnover,
'avg_duration': avg_duration
}
小建议: 这个脚本我每天跑一次,配合定时任务自动报警。如果周转率低于阈值或者久期超标,系统会自动给我发消息。别等到收盘才发现问题,那时候已经晚了。
好了,库存管理的基础框架就这些。记住三个核心指标:周转率、库存价值、库存久期。这三个数字盯住了,你的库存风险就控制住了一大半。
公众号:蓝海资料掘金营,微信deep3321