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 知识体系总览
下面这张图,把库存风险的核心逻辑串起来了。你仔细看看,应该能一目了然。
这张图把库存风险的三个维度串起来了。你从定义出发,理解它是什么;然后学会度量,知道它有多大;最后搞清楚来源,才能对症下药。
说白了,库存风险管理就是一场持续的博弈。你不可能完全消除风险,但你可以把它控制在你能承受的范围内。我个人的经验是:宁可少赚,不要大亏。库存风险控制住了,做市策略才能长期稳定运行。
一句话总结:库存风险是做市商必须面对的现实。定义它、度量它、理解它的来源,然后建立一套系统化的管理流程。别等到爆仓了才后悔——那是我用真金白银换来的教训。