一、库存管理概述:做市商库存风险的本质

做市商的库存管理,说白了就是管好你手里那一堆「货」。

我刚开始做市商那会儿,总觉得只要把买卖价差拉大点就能赚钱。结果呢?有一次我在ETH上囤了太多货,市场突然暴跌,那一晚上我亏掉了三个月的利润。嗯,从那以后我才真正明白——库存风险才是做市商最大的敌人

库存风险的本质是什么?

你想想看,做市商的核心工作就是两边报价。有人买,你卖;有人卖,你买。正常情况下,你赚的是买卖之间的价差。但问题来了——

买卖不可能永远平衡

比如某只股票一直有人买,没人卖。你的库存就会越来越少,最后手里没货了,还怎么做市?反过来,如果一直有人卖没人买,你的库存就会越堆越多,价格一跌,全砸手里了。

这就是库存风险的本质:持仓方向与市场走势不一致导致的潜在亏损

核心观点:做市商不是投机者,我们不赌方向。库存管理的目标就是让持仓尽量中性,减少方向性风险暴露。

库存管理的三个目标

我个人习惯把库存管理目标归纳为三点:

  1. 控制风险 — 别让库存暴露太大,别赌方向
  2. 保证流动性 — 手里始终有货可卖,有钱可买
  3. 优化收益 — 在控制风险的前提下,尽量多赚价差和资金效率

这三个目标有时候是冲突的。比如你想控制风险,就得频繁调仓,但调仓有成本。你想多赚价差,就得扩大报价宽度,但这样成交率会下降。怎么平衡?这就是库存管理的艺术所在。

库存管理的核心指标

做库存管理,你得盯住几个关键数字。我每天开盘前必看这三个指标:

1. 库存周转率

说白了就是你的货多久能换一轮。

公式: 库存周转率 = 成交量 / 平均库存价值

周转率高,说明你的货走得快,流动性好。周转率低,说明货压在手里不动,风险在积累。

我的经验: 在BTC/ETH这种高流动性品种上,我一般要求周转率不低于20。如果是冷门小币种,周转率能到5就算不错了。低于这个数,我会主动降价出货。

2. 库存价值

这个好理解,就是你手里所有持仓的总价值。

但要注意,库存价值不是一成不变的。市场在动,你的持仓价值也在动。我习惯用VaR(风险价值)来评估库存价值可能的最大回撤。

库存规模 建议最大VaR 对应风控措施
小(<100万) 不超过5% 手动监控+止损
中(100-1000万) 不超过3% 自动对冲+限额
大(>1000万) 不超过1.5% 多策略分散+实时风控

3. 库存久期

这个概念是从债券市场借来的。库存久期衡量的是你的持仓对价格变化的敏感度。

公式: 库存久期 = Σ(每个持仓的市值 × 该持仓的久期) / 总库存价值

久期越大,你的库存对价格波动越敏感。比如你手里全是高波动的山寨币,久期就很大。如果全是稳定币,久期就很小。

我曾经踩过的坑: 有一年我同时持有了大量DOGE和SHIB,久期高得吓人。结果马斯克一条推文,价格上下波动20%,我的库存价值一天内坐了两次过山车。后来我强制要求自己,久期超过3的品种,单品种持仓不能超过总库存的10%。

知识体系总览

下面这张图是我自己整理的库存管理知识框架,你可以对照着看:

库存管理 库存风险本质 管理目标 核心指标 方向性风险 流动性风险 控制风险 保证流动性 优化收益 库存周转率 库存价值 库存久期 核心目标:保持库存中性,控制方向性风险暴露 周转率 > 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