库存风险管理:库存定义与度量、库存成本分析、库存对冲策略
做市商这行,说白了就是跟库存打交道。你手里有多少货,这些货值多少钱,风险有多大——这三个问题搞不清楚,其他都是白搭。我刚开始做市商那会儿,就吃过库存管理的亏,今天把这些经验掰开了揉碎了讲给你听。
库存的定义与度量
先说说库存到底是什么。很多人以为库存就是账面上有多少资产,其实没那么简单。
库存的核心定义:做市商在某一时刻持有的所有风险敞口的总和。注意,我说的是「风险敞口」,不是「资产数量」。为什么?因为不同资产的波动率不一样,同样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。真正的风险敞口其实不大。
库存成本分析
库存成本这东西,很多人只盯着交易手续费。其实远不止这些。我把它拆成三块:
- 资金成本:你持仓占用的资金,如果拿去理财能赚多少?这就是机会成本。比如你库存里压了100万U,年化5%的理财收益就是5万U,这就是你的资金成本。
- 交易成本:买卖价差、手续费、滑点。这个大家都懂,但我要提醒一点——滑点成本往往被低估。尤其是在流动性差的市场,你平仓时的滑点可能吃掉你所有利润。
- 库存磨损成本:这个是我自己总结的。你持有库存期间,价格波动带来的浮亏浮盈,其实也是一种成本。为什么?因为你要为这些波动预留保证金,这部分保证金也是有成本的。
避坑指南:我曾经犯过一个错误——只算了交易成本,没算资金成本。结果做了三个月,表面上看赚了不少手续费,一算总账,资金成本把利润全吃掉了。所以,库存成本一定要算全账。
库存成本的计算公式,我一般这么用:
总库存成本 = 资金成本 + 交易成本 + 库存磨损成本
资金成本 = 库存名义价值 × 资金利率 × 持有时间
交易成本 = 买卖价差 + 手续费 + 滑点
库存磨损成本 = 库存价值波动 × 风险厌恶系数
嗯,这里要注意,库存磨损成本里的「风险厌恶系数」是个主观参数。保守的做市商会设得高一些,激进的会设得低一些。我个人习惯设0.5,也就是把一半的波动算作成本。
库存对冲策略:Delta中性
说到库存对冲,Delta中性是绕不开的核心策略。什么叫Delta中性?说白了就是让你的库存对价格变动不敏感。价格涨跌都跟你没关系,你只赚做市的那点差价。
你想想看,做市商的利润来源是什么?是买卖价差,不是方向性交易。所以理想状态下,你的库存应该是对冲掉的,不承担价格风险。
Delta中性的实现方式:
- 现货对冲:持有现货多头,同时做空等量的期货或永续合约。这是最基础的方式。
- 期权对冲:用期权来调整Delta。比如你持有现货多头,可以买入看跌期权来对冲下行风险。
- 跨品种对冲:用相关性高的品种来对冲。比如BTC和ETH走势高度相关,可以用ETH期货来对冲BTC现货的风险。
我画了一张图,帮你理解Delta中性的核心逻辑:
这张图的核心逻辑很简单:先算库存的Delta,如果接近0,说明风险可控;如果不为0,就要执行对冲策略,把Delta拉回0附近。
Delta中性的实战操作
理论说完了,讲讲实战。我一般用永续合约来做Delta中性对冲,原因很简单——永续合约没有交割日,可以一直持有,而且资金费率可以帮你赚点额外收益。
具体操作步骤:
- 计算净Delta:把所有持仓的Delta加起来。比如你持有10个BTC现货(Delta=10),做空了3个BTC永续(Delta=-3),净Delta就是7。
- 确定对冲量:净Delta是7,意味着你需要做空7个BTC的永续合约,才能让Delta归零。
- 执行对冲:在永续合约市场开空单,数量等于净Delta。
- 动态调整:市场在变,你的库存也在变。我建议每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这些高阶风险,以及资金成本、交易成本这些现实约束。记住一句话:做市商赚的是流动性提供的钱,不是方向性交易的钱。守住这个底线,你的库存风险就控制住了一大半。