库存风险管理:库存定义与度量、库存成本分析、库存对冲策略

做市商这行,说白了就是跟库存打交道。你手里有多少货,这些货值多少钱,风险有多大——这三个问题搞不清楚,其他都是白搭。我刚开始做市商那会儿,就吃过库存管理的亏,今天把这些经验掰开了揉碎了讲给你听。

库存的定义与度量

先说说库存到底是什么。很多人以为库存就是账面上有多少资产,其实没那么简单。

库存的核心定义:做市商在某一时刻持有的所有风险敞口的总和。注意,我说的是「风险敞口」,不是「资产数量」。为什么?因为不同资产的波动率不一样,同样100万的BTC和100万的USDT,风险天差地别。

我个人习惯用三个维度来度量库存:

  • 名义价值:就是持仓的市值,比如持有10个ETH,每个2000U,名义价值就是2万U。这个指标最直观,但最不准确。
  • Delta敞口:衡量价格变动1单位时,库存价值的变化量。这才是真正意义上的风险度量。比如你持有100个ETH的现货,Delta就是100;如果你同时做空了50个ETH的期货,净Delta就是50。
  • Gamma敞口:Delta的变化率。这个在期权做市中特别重要,我后面会详细讲。

重点来了:库存度量不能只看名义价值。我见过太多新手做市商,名义价值看着不大,但Delta敞口高得吓人,一个波动就爆仓。记住,Delta才是你的真实风险暴露。

举个例子你就明白了。假设你有两种库存:

资产 持仓数量 价格 名义价值 Delta
BTC现货 10个 50000U 500000U 10
ETH现货 100个 2000U 200000U 100
BTC期货空头 -5个 50000U -250000U -5
合计 450000U 105

你看,名义价值45万U,但Delta只有105。这意味着BTC涨1U,你赚10U;ETH涨1U,你赚100U。真正的风险敞口其实不大。

库存成本分析

库存成本这东西,很多人只盯着交易手续费。其实远不止这些。我把它拆成三块:

  1. 资金成本:你持仓占用的资金,如果拿去理财能赚多少?这就是机会成本。比如你库存里压了100万U,年化5%的理财收益就是5万U,这就是你的资金成本。
  2. 交易成本:买卖价差、手续费、滑点。这个大家都懂,但我要提醒一点——滑点成本往往被低估。尤其是在流动性差的市场,你平仓时的滑点可能吃掉你所有利润。
  3. 库存磨损成本:这个是我自己总结的。你持有库存期间,价格波动带来的浮亏浮盈,其实也是一种成本。为什么?因为你要为这些波动预留保证金,这部分保证金也是有成本的。

避坑指南:我曾经犯过一个错误——只算了交易成本,没算资金成本。结果做了三个月,表面上看赚了不少手续费,一算总账,资金成本把利润全吃掉了。所以,库存成本一定要算全账。

库存成本的计算公式,我一般这么用:

总库存成本 = 资金成本 + 交易成本 + 库存磨损成本

资金成本 = 库存名义价值 × 资金利率 × 持有时间
交易成本 = 买卖价差 + 手续费 + 滑点
库存磨损成本 = 库存价值波动 × 风险厌恶系数

嗯,这里要注意,库存磨损成本里的「风险厌恶系数」是个主观参数。保守的做市商会设得高一些,激进的会设得低一些。我个人习惯设0.5,也就是把一半的波动算作成本。

库存对冲策略:Delta中性

说到库存对冲,Delta中性是绕不开的核心策略。什么叫Delta中性?说白了就是让你的库存对价格变动不敏感。价格涨跌都跟你没关系,你只赚做市的那点差价。

你想想看,做市商的利润来源是什么?是买卖价差,不是方向性交易。所以理想状态下,你的库存应该是对冲掉的,不承担价格风险。

Delta中性的实现方式

  • 现货对冲:持有现货多头,同时做空等量的期货或永续合约。这是最基础的方式。
  • 期权对冲:用期权来调整Delta。比如你持有现货多头,可以买入看跌期权来对冲下行风险。
  • 跨品种对冲:用相关性高的品种来对冲。比如BTC和ETH走势高度相关,可以用ETH期货来对冲BTC现货的风险。

我画了一张图,帮你理解Delta中性的核心逻辑:

Delta中性对冲策略流程图 做市商库存 Delta敞口计算 Delta ≈ 0? 无需对冲 执行对冲策略 现货/期货/期权 计算净Delta Delta不为0,需要对冲

这张图的核心逻辑很简单:先算库存的Delta,如果接近0,说明风险可控;如果不为0,就要执行对冲策略,把Delta拉回0附近。

Delta中性的实战操作

理论说完了,讲讲实战。我一般用永续合约来做Delta中性对冲,原因很简单——永续合约没有交割日,可以一直持有,而且资金费率可以帮你赚点额外收益。

具体操作步骤:

  1. 计算净Delta:把所有持仓的Delta加起来。比如你持有10个BTC现货(Delta=10),做空了3个BTC永续(Delta=-3),净Delta就是7。
  2. 确定对冲量:净Delta是7,意味着你需要做空7个BTC的永续合约,才能让Delta归零。
  3. 执行对冲:在永续合约市场开空单,数量等于净Delta。
  4. 动态调整:市场在变,你的库存也在变。我建议每5分钟重新计算一次Delta,如果偏离超过阈值(比如0.5个BTC),就调整对冲仓位。

警告:Delta中性不是一劳永逸的。市场波动会导致你的Delta不断变化,尤其是Gamma风险。如果你做的是期权做市,Gamma会放大Delta的变化速度,需要更频繁地调整。我曾经因为偷懒,半小时没调对冲,结果市场突然暴跌,Delta从0变成了-20,亏了一大笔。

代码实现其实不复杂,我贴一段伪代码给你参考:

def delta_neutral_hedge(inventory, market_data):
    # 计算净Delta
    net_delta = 0
    for asset in inventory:
        delta = asset.quantity * asset.delta_per_unit
        net_delta += delta
    
    # 判断是否需要对冲
    threshold = 0.5  # 阈值,根据你的风险偏好调整
    if abs(net_delta) > threshold:
        # 执行对冲
        hedge_qty = -net_delta
        place_order(symbol='BTCUSDT', side='sell', qty=hedge_qty)
        print(f"执行对冲:做空 {hedge_qty} BTC")
    else:
        print(f"Delta在安全范围内:{net_delta}")

这段代码看着简单,但实际用起来要注意几个坑:

  • 阈值不能设太小:否则你会频繁交易,手续费吃掉利润。我一般设0.5-1个BTC的阈值。
  • 要考虑交易成本:每次对冲都有成本,所以不要追求绝对的Delta=0,差不多就行。
  • 注意资金费率:永续合约有资金费率,如果费率长期为负(多头付钱给空头),你做空对冲反而能赚点钱。反过来,费率长期为正,做空对冲就要亏钱。

最后说一句,库存风险管理不是死板的公式,而是一个动态平衡的过程。你需要在风险、成本和收益之间找到自己的平衡点。我做了这么多年,也没找到完美的方案,但至少学会了——别贪,别懒,别赌方向。

核心总结:库存管理的本质是管理Delta。Delta中性是基础,但不是全部。你还要考虑Gamma、Vega这些高阶风险,以及资金成本、交易成本这些现实约束。记住一句话:做市商赚的是流动性提供的钱,不是方向性交易的钱。守住这个底线,你的库存风险就控制住了一大半。

专注资料整理