三、库存度量指标:库存周转率、库存天数、库存价值波动

做市商这行,说白了就是靠库存吃饭的。库存管得好不好,直接决定了你是赚钱还是亏钱。我见过太多团队,策略模型跑得漂亮,但库存管理一塌糊涂,最后利润全被库存风险吃掉了。

今天咱们聊聊三个核心指标:库存周转率库存天数库存价值波动。这三个指标,就像汽车的仪表盘——转速表、油表、速度表,缺一个你都开不稳。

3.1 库存周转率

先问个问题:你手里的币,多久能卖一轮?

库存周转率,就是衡量这个速度的指标。公式很简单:

库存周转率 = 期间成交量 / 平均库存价值

举个例子。假设你一个月成交了1000万U,平均库存价值是200万U。那周转率就是5次。这意味着你一个月把库存"翻新"了5遍。

周转率高了,说明什么?

  • 你的做市策略活跃,买卖频繁
  • 库存占用资金少,资金效率高
  • 但也要小心——周转太快,可能意味着你在频繁吃单,滑点成本高

周转率低了,又说明什么?

  • 库存积压,资金被锁死
  • 策略可能不够积极,或者市场流动性太差
  • 嗯,还有一种情况——你故意囤货等涨,但那不是做市商的活
我的经验:我个人习惯把周转率控制在5-15次/月。低于5次,说明策略太保守;高于15次,交易成本会吃掉利润。当然,不同币种、不同市场环境,这个区间会变。你想想看,比特币和山寨币的周转率能一样吗?

3.2 库存天数

库存天数,是周转率的"亲戚"。它告诉你:按现在的交易速度,库存里的货要多少天才能卖完。

库存天数 = 30天 / 库存周转率

还是刚才的例子。周转率5次,库存天数就是6天。也就是说,你手里的货,平均6天就能轮一遍。

这个指标有什么用?

  • 判断库存压力。天数越长,风险越大
  • 辅助仓位管理。比如,库存天数超过10天,我就考虑减仓
  • 对比不同币种。有些币天生流动性差,库存天数自然高
避坑指南:我曾经犯过一个错——只看库存天数,不看市场深度。有一次某个币的库存天数只有3天,看起来挺健康。结果市场突然暴跌,深度瞬间消失,那3天的货硬是卖了2周才出完。所以,库存天数要结合订单簿深度一起看,别被数字骗了。

3.3 库存价值波动

这个指标,是我最看重的。它衡量的是:你的库存价值,一天之内能波动多少。

库存价值波动 = 库存价值 × 价格波动率

更精确的做法,是用VaR(在险价值)来算:

VaR = 库存价值 × 价格波动率 × Z值 × √时间

其中Z值取决于置信水平。95%置信度下,Z=1.65;99%置信度下,Z=2.33。

为什么要关注这个?

  • 库存价值波动直接决定了你的风险敞口
  • 波动太大,一个黑天鹅事件就能让你爆仓
  • 波动太小,说明你做的币种太"死",做市利润也薄
实战案例:我记得有一次,团队做ETH的做市。库存价值500万U,ETH日波动率4%。算下来,一天之内库存价值可能波动20万U。这个数字,已经超过了我们当天的做市利润。我建议立即减仓,同时加了对冲。结果第二天ETH真的跌了6%,但因为提前做了对冲,库存损失被控制住了。要是没管这个指标,那天就得亏掉一个月的利润。

3.4 三个指标怎么配合用?

单独看一个指标,意义不大。三个指标放一起,才能看出门道。

场景 周转率 库存天数 价值波动 建议操作
健康状态 适中 维持现状
库存积压 立即减仓+对冲
过度交易 极高 极低 降低频率,减少滑点
风险暴露 适中 适中 极高 加对冲,或换币种

说白了,这三个指标就是帮你回答三个问题:

  • 我的资金效率高不高?(周转率)
  • 我的库存压力大不大?(库存天数)
  • 我的风险敞口能不能承受?(价值波动)
我的习惯:每天开盘前,我会花5分钟扫一眼这三个指标。如果任何一个指标偏离了正常范围,我就知道今天得盯紧点。你想想看,做市商最怕什么?不是亏钱,而是亏了钱还不知道怎么亏的。这三个指标,就是你的"预警雷达"。

3.5 代码实现

最后,给一个简单的Python代码,帮你自动计算这三个指标。我建议你把它集成到你的监控系统里。

import pandas as pd
import numpy as np

def inventory_metrics(trades_df, inventory_df, confidence=0.95):
    """
    计算库存管理核心指标
    
    参数:
        trades_df: 交易记录DataFrame,包含'time', 'volume', 'price'
        inventory_df: 库存快照DataFrame,包含'time', 'value'
        confidence: VaR置信水平,默认95%
    
    返回:
        dict: 包含周转率、库存天数、价值波动
    """
    # 1. 库存周转率
    total_volume = trades_df['volume'].sum()
    avg_inventory = inventory_df['value'].mean()
    turnover = total_volume / avg_inventory if avg_inventory > 0 else 0
    
    # 2. 库存天数
    days = 30 / turnover if turnover > 0 else float('inf')
    
    # 3. 库存价值波动 (VaR)
    # 计算日收益率
    inventory_df = inventory_df.sort_values('time')
    inventory_df['return'] = inventory_df['value'].pct_change()
    vol = inventory_df['return'].std()
    
    # Z值
    z = 1.65 if confidence == 0.95 else 2.33
    
    # 当前库存价值
    current_value = inventory_df['value'].iloc[-1]
    
    # 日VaR
    var_daily = current_value * vol * z
    
    return {
        'turnover': round(turnover, 2),
        'days': round(days, 1),
        'var_daily': round(var_daily, 2),
        'volatility': round(vol, 4)
    }

# 使用示例
# metrics = inventory_metrics(trades, inventory)
# print(f"周转率: {metrics['turnover']} 次/月")
# print(f"库存天数: {metrics['days']} 天")
# print(f"日VaR: {metrics['var_daily']} U")

嗯,代码不长,但很实用。我建议你跑一下历史数据,看看自己的库存管理到底怎么样。很多时候,数据会告诉你一些你没想到的东西。

好了,这一章就到这里。下一章咱们聊聊库存对冲的具体策略——怎么用期货、期权来保护你的库存。到时候我会分享几个我踩过的坑,保证让你少走弯路。