库存模型基础:五个核心维度
做市策略里,库存管理是个绕不开的话题。我个人习惯把库存比作「水池」——水位太高会溢出来,水位太低又不够用。今天我们就来拆解库存模型的五个基础维度。
1. 库存水平定义
库存水平,说白了就是你当前持有的资产数量。在股票做市里,它可能是5000股;在加密货币做市里,可能是10个BTC。
但这里有个坑——净库存和总库存是两码事。
- 净库存:多头仓位减去空头仓位。比如你买了1000股,又卖了200股,净库存就是800股。
- 总库存:所有持仓的绝对值之和。还是上面那个例子,总库存是1200股。
关键点:做市策略通常关注净库存,因为它直接决定了你的方向性风险敞口。
我曾经在开发一个期权做市系统时,忽略了净库存的计算方式。结果系统把对冲仓位也算进了库存水平,导致风控模块频繁误报。嗯,从那以后我每次定义库存水平,都会先问一句:「净的还是总的?」
2. 库存价值计算
库存价值不是简单的「数量 × 当前价格」。你想想看,如果你有1000股,当前价格是50元,但你的买入均价是48元——那库存价值到底按哪个算?
实践中常用三种方法:
| 方法 | 公式 | 适用场景 |
|---|---|---|
| 市价法 | 数量 × 当前市价 | 实时风控、保证金计算 |
| 成本法 | 数量 × 加权平均成本 | 损益核算、税务申报 |
| 混合法 | 部分市价 + 部分成本 | 分层库存管理 |
我个人习惯用市价法做实时监控,用成本法做日终结算。为什么?因为市价法能真实反映你当下的风险敞口,而成本法能告诉你这笔交易到底赚没赚钱。
小技巧:在代码里同时维护两个变量——market_value 和 cost_value。一个用于风控,一个用于核算。
3. 库存周转率
库存周转率衡量的是你「倒腾」库存的速度。公式很简单:
周转率 = 期间成交量 / 平均库存量
举个例子:你一天成交了10000股,平均库存是2000股,那周转率就是5。这意味着你的库存一天换了5次。
周转率太高或太低都有问题:
- 太高(比如 > 20):说明你持仓时间极短,可能在做高频倒卖,手续费和滑点成本会吃掉利润。
- 太低(比如 < 1):说明库存积压严重,方向性风险很大。
我记得有个做市团队,他们的BTC库存周转率长期在0.5以下。后来一查,原来是报价策略太保守,订单经常挂在那里一整天都成交不了。调整报价宽度后,周转率提升到了3,收益反而更稳定了。
4. 库存持有成本
持有库存不是免费的。你想想看,如果你持有1000股,每股50元,那就是5万元的资金占用。这些钱如果放在货币基金里,每天也有利息。
库存持有成本主要包括:
- 资金成本:占用资金的利息。按年化利率算,比如5%的年化,每天成本就是 5万 × 5% / 365 ≈ 6.85元。
- 融券成本:如果是做空,需要支付融券利息。这个成本通常比资金成本高不少。
- 分红/利息调整:持有股票可能收到分红,持有债券有票息。这些是负成本,但需要精确计算。
注意:很多新手做市商只关注买卖价差,忽略了持有成本。结果看起来每笔都赚钱,但算上资金成本后其实是亏损的。
我曾经帮一个客户优化策略,发现他的库存持有成本占了总成本的30%以上。后来我们引入了库存目标区间,强制在库存偏离时进行对冲,持有成本直接降了一半。
5. 库存风险敞口
这是库存模型里最核心的部分。风险敞口衡量的是:如果市场价格朝不利方向波动,你会亏多少钱。
最简单的计算方式:
风险敞口 = 净库存 × 价格波动幅度
比如你持有1000股,预计价格可能波动2%,那风险敞口就是 1000 × 价格 × 2%。
但实际做市时,风险敞口要复杂得多:
- 线性敞口:股票、期货等,价格变动1%,库存价值变动1%。
- 非线性敞口:期权等衍生品,价格变动1%,库存价值可能变动2%甚至更多。
我建议用VaR(风险价值)来量化库存风险。比如95%置信度下,日VaR是5000元——意思是只有5%的概率一天亏损超过5000元。
实战经验:设置库存风险敞口的上限。我个人习惯把敞口控制在总资金的5%以内。超过这个值,不管策略看起来多赚钱,我都会强制减仓。
知识体系总览
下面这张图把五个维度的关系梳理清楚了。你可以看到,库存水平是基础,库存价值和周转率是中间层,持有成本和风险敞口是最终要控制的目标。
这五个维度不是孤立的。库存水平决定了价值计算的基础,周转率影响持有成本,而持有成本和价值波动共同构成了风险敞口。做策略时,我习惯先定义好库存水平,再逐步推导其他四个维度。
一句话总结:库存模型的核心就两件事——知道你有多少,知道它值多少,然后控制好风险。