3. 库存风险模型:库存风险定义、库存风险度量、库存风险来源

做市这行,说白了就是赚买卖差价。但你手里拿着货,就得承担货价波动的风险。这个风险,我们叫它库存风险

我刚开始做市的时候,吃过一次大亏。当时觉得某个币基本面不错,手里囤了不少。结果半夜一条利空消息,价格直接砸穿了我的止损线。那一晚我深刻理解了——库存风险不是理论,是真金白银的教训

3.1 库存风险定义

库存风险,简单讲就是:你手里持有的资产,因为市场价格不利变动,导致你亏损的可能性

做市商不是投机者。我们的核心任务是提供流动性,赚取买卖价差。但为了提供流动性,你必须持有一定数量的资产。这些资产就像一把双刃剑——没有它你做不了生意,有了它你就得承担价格波动的风险

举个例子:

  • 你在BTC/USDT交易对上做市,手里持有10个BTC
  • 你的理想状态是净头寸为0,即买入和卖出的量基本平衡
  • 但市场是动态的,总会有单边行情让你积累库存
  • 如果BTC价格下跌1%,你的库存就亏损0.1个BTC

嗯,这里要注意:库存风险不是说你一定会亏,而是说你暴露在价格波动的敞口下。敞口越大,风险越高。

核心定义:库存风险 = 持仓方向 × 持仓规模 × 价格波动率

方向错了,规模越大,波动越剧烈,风险就越高。

3.2 库存风险度量

光知道风险存在还不够,你得能量化它。我常用的度量方法有几种,各有各的适用场景。

3.2.1 绝对库存敞口

最直观的度量。就是看你的净头寸绝对值。

# 绝对库存敞口计算
def calc_absolute_inventory(base_asset_qty, quote_asset_qty, current_price):
    """
    base_asset_qty: 基础资产数量(如BTC)
    quote_asset_qty: 报价资产数量(如USDT)
    current_price: 当前价格
    """
    net_base = base_asset_qty  # 净基础资产头寸
    net_value = net_base * current_price  # 以报价资产计价的库存价值
    return abs(net_value)

这个指标简单粗暴。但有个问题——它不考虑你的总资产规模。一个100万美金账户持有10万美金库存,和一个10万美金账户持有10万美金库存,风险完全不一样。

3.2.2 相对库存敞口

我更常用的是相对敞口。它把库存价值和总资产挂钩。

# 相对库存敞口计算
def calc_relative_inventory(net_inventory_value, total_equity):
    """
    net_inventory_value: 净库存价值
    total_equity: 总权益
    """
    if total_equity == 0:
        return 0
    return net_inventory_value / total_equity

我个人习惯把相对敞口控制在±20%以内。超过这个范围,我就会启动对冲机制。

3.2.3 VaR(在险价值)

这个更专业一些。它回答的问题是:在95%的置信水平下,未来1小时内我的最大可能亏损是多少?

# 简化的VaR计算
def calc_var(inventory_value, volatility, confidence_level=0.95, time_horizon=1):
    """
    inventory_value: 库存价值
    volatility: 年化波动率
    confidence_level: 置信水平
    time_horizon: 时间窗口(小时)
    """
    from scipy.stats import norm
    z_score = norm.ppf(confidence_level)  # 95%置信水平对应1.645
    hourly_vol = volatility / sqrt(365 * 24)  # 转换为小时波动率
    var = inventory_value * z_score * hourly_vol * sqrt(time_horizon)
    return var

我在项目中遇到过一个问题:VaR假设价格服从正态分布,但实际市场有肥尾效应。所以我会额外加一个压力测试,模拟极端行情下的亏损。

3.2.4 库存周转率

这个指标衡量你处理库存的速度。周转越快,库存风险暴露时间越短。

指标 公式 说明
库存周转率 成交量 / 平均库存价值 越高越好,说明库存处理快
库存持有时间 1 / 库存周转率 越低越好,风险暴露时间短

实战技巧:我一般同时监控绝对敞口和相对敞口。绝对敞口用来设置硬止损,相对敞口用来动态调整做市策略的激进程度。

3.3 库存风险来源

知道了怎么度量,还得知道风险从哪来。我总结下来,主要有三个来源。

3.3.1 方向性风险

这是最直接的。你持有多头,价格跌了;你持有空头,价格涨了。

为什么会这样?因为做市商不是全知全能的。你挂的买单和卖单,不可能永远平衡。当市场出现单边行情时,你的订单簿就会偏向一边。

举个例子:

  • 市场突然出现大量买单,你的卖单被吃掉
  • 你的净头寸变成多头
  • 如果价格继续上涨,你赚了——但这是运气
  • 如果价格反转下跌,你就亏了——这是风险

我曾经在ETH上吃过这个亏。当时市场情绪高涨,我不断被吃卖单,库存越积越多。结果一根大阴线下来,直接把一周的利润全吐回去了。

3.3.2 基差风险

这个稍微复杂一点。当你用期货或永续合约对冲现货库存时,会面临基差风险。

基差 = 期货价格 - 现货价格

正常情况下,基差会在一个合理范围内波动。但极端行情下,基差会剧烈扩大。比如:

  • 你持有现货多头,做空期货对冲
  • 市场暴跌,期货跌幅大于现货
  • 你的期货空头盈利,但现货亏损更大
  • 净效果:你亏了

嗯,这里要注意:基差风险在对冲时特别隐蔽。你以为自己完全对冲了,其实并没有。

3.3.3 流动性风险

这个风险最容易被忽视。你手里有库存,但你想卖的时候卖不掉。

流动性风险在以下场景特别突出:

  • 小币种:交易量小,深度浅
  • 极端行情:市场恐慌,流动性瞬间枯竭
  • 交易所故障:API延迟、系统宕机

我记得有一次,某个小币种突然暴涨,我手里有大量空头库存。我想平仓,但发现买单深度只有几百美金。我挂的卖单根本成交不了,价格却一直在涨。那种感觉,就像看着自己的账户在流血,却止不住。

避坑指南:我曾经因为忽视流动性风险,在一个深度只有5个BTC的交易对上做市。结果一次大单就把我的库存打爆了。现在我做任何交易对之前,都会先检查它的深度和成交量。

3.4 知识体系总览

下面这张图,把库存风险的核心逻辑串起来了。你仔细看看,应该能一目了然。

库存风险模型知识体系 库存风险模型 库存风险定义 库存风险度量 库存风险来源 持仓方向 持仓规模 价格波动率 绝对敞口 相对敞口 VaR 库存周转率 方向性风险 基差风险 流动性风险 核心目标:将库存风险控制在可接受范围内 度量 → 监控 → 对冲 → 再平衡

这张图把库存风险的三个维度串起来了。你从定义出发,理解它是什么;然后学会度量,知道它有多大;最后搞清楚来源,才能对症下药。

说白了,库存风险管理就是一场持续的博弈。你不可能完全消除风险,但你可以把它控制在你能承受的范围内。我个人的经验是:宁可少赚,不要大亏。库存风险控制住了,做市策略才能长期稳定运行。

一句话总结:库存风险是做市商必须面对的现实。定义它、度量它、理解它的来源,然后建立一套系统化的管理流程。别等到爆仓了才后悔——那是我用真金白银换来的教训。

专注资料整理