4、库存限额管理:绝对限额、相对限额、动态限额、VaR限额、希腊字母限额

做市商的核心命脉是什么?说白了,就是库存风险。

你赚的那点买卖价差,可能一次库存失控就全赔进去了。我见过太多团队,策略赚钱时风光无限,结果一次黑天鹅事件,库存爆仓,直接归零。所以,库存限额管理,是每个做市商必须守住的底线。

今天我们就来聊聊五种主流的限额方法。每种方法我都用过,踩过坑,也总结了一些实战经验。

4.1 绝对限额:最基础,也最直接

绝对限额,就是给库存设一个硬上限。比如,我规定ETH的库存不能超过1000个。到了这个数,系统自动停止买入,甚至强制减仓。

这方法简单粗暴,适合新手团队。我在早期做市时就用这个,因为那时候风控系统还不完善,怕出事。

核心逻辑: 库存数量 ≤ 固定阈值

举个例子:

# 伪代码示例
MAX_INVENTORY = 1000  # 绝对限额

def check_inventory(position):
    if position > MAX_INVENTORY:
        trigger_risk_control("库存超限,强制减仓")
    else:
        continue_trading()

但这里有个坑。绝对限额不会考虑市场波动。如果ETH价格翻倍,你手里1000个ETH的风险敞口其实已经翻倍了。所以,它只适合波动率低的品种,或者作为最后一道防线。

注意: 绝对限额不能单独使用。它必须配合其他限额方法,否则就是刻舟求剑。

4.2 相对限额:考虑账户规模

相对限额,就是库存上限跟你的总资产挂钩。比如,我规定ETH库存不能超过总资产的20%。

这样做的好处是,账户规模增长时,你的风险承受能力也变强了,限额会自动上调。反过来,如果亏了钱,限额也会自动收紧。

公式很简单:

相对限额 = 总资产 × 限额比例

我个人习惯把比例设在10%-30%之间,具体看品种的流动性。流动性好的,比例可以高一点;流动性差的,比如一些山寨币,我建议控制在5%以内。

我曾经在一个做市项目里,把某个小币种的相对限额设到了25%。结果一次深度砸盘,流动性瞬间枯竭,我根本出不了货。那次教训让我明白:相对限额虽然灵活,但必须考虑市场深度。

4.3 动态限额:随市场变化

动态限额,就是让限额跟着市场波动走。市场波动大,限额自动降低;市场平稳,限额适当放宽。

实现方式有很多种。我常用的是基于历史波动率(HV)或ATR(平均真实波幅)来调整。

举个例子:

def dynamic_limit(base_limit, volatility):
    # 波动率越高,限额越低
    adjusted_limit = base_limit / (1 + volatility * k)
    return adjusted_limit

这里的k是一个调节系数,我一般取2-5。波动率翻倍时,限额会降到原来的三分之一左右。

嗯,这里要注意:动态限额的响应速度不能太快。我曾经把窗口期设得太短,结果市场一震荡,限额频繁变动,交易系统反而乱了。后来我改成用1小时窗口的波动率,效果就好多了。

小技巧: 动态限额最好配合波动率预警一起用。当波动率超过某个阈值时,直接切换到保守模式。

4.4 VaR限额:量化风险

VaR(Value at Risk)限额,是目前机构用得最多的方法。它回答的问题是:在95%或99%的置信水平下,我的库存最多可能亏多少钱?

比如,我计算出来VaR(95%) = 10万U。意思就是,有95%的概率,我的库存一天内亏损不会超过10万U。那我的限额就可以设为:VaR不能超过总资产的5%。

计算VaR的方法有三种:

  • 参数法: 假设收益率服从正态分布,直接用均值和标准差算。速度快,但假设太强。
  • 历史模拟法: 用过去N天的收益率数据,直接取分位数。我比较推荐这个,因为它不依赖分布假设。
  • 蒙特卡洛模拟: 随机生成大量路径,模拟未来价格。精度高,但计算量大。

我在项目中主要用历史模拟法。简单说,就是取过去500天的日收益率,排序后取第5%的分位数,再乘以当前库存价值。

# 历史模拟法计算VaR
import numpy as np

def calculate_var(returns, position_value, confidence=0.95):
    sorted_returns = np.sort(returns)
    index = int((1 - confidence) * len(sorted_returns))
    var_percent = sorted_returns[index]
    var_value = abs(var_percent) * position_value
    return var_value

VaR限额的好处是,它把不同品种的风险统一到了一个维度——钱。你可以比较BTC和ETH的VaR,然后统一管理。

但VaR也有缺陷: 它只告诉你在95%置信水平下的最大亏损,但没告诉你那5%的极端情况会亏多少。所以,我一般还会配合压力测试一起用。

4.5 希腊字母限额:期权做市商的必修课

如果你做的是期权做市,那绝对限额、相对限额这些就不够用了。期权的风险是多维的,你得用希腊字母来管理。

常用的希腊字母限额包括:

希腊字母 含义 限额方式
Delta (Δ) 价格风险 Delta绝对值 ≤ 总资产的X%
Gamma (Γ) Delta变化速度 Gamma敞口 ≤ 阈值
Vega (ν) 波动率风险 Vega敞口 ≤ 阈值
Theta (Θ) 时间衰减 Theta为正(收时间价值)
Rho (ρ) 利率风险 通常忽略,除非利率波动大

我个人最关注的是Delta和Gamma。Delta决定了你的方向性风险,Gamma决定了你调整仓位的成本。

举个例子,我规定Delta敞口不能超过总资产的2%。如果BTC价格波动1%,我的库存价值波动不能超过总资产的2%。这样就把风险控制在了可接受范围内。

Gamma限额更微妙。Gamma高意味着Delta变化快,你需要频繁调仓。我曾经在一个深度虚值期权上Gamma敞口过大,结果价格一波动,Delta瞬间翻倍,我手忙脚乱地补仓,最后亏了不少手续费。

经验之谈: 对于期权做市商,我建议把Delta限额作为第一道防线,Gamma限额作为第二道防线。Vega限额则根据市场波动率环境动态调整。

4.6 如何组合使用?

这五种限额方法不是互斥的。在实际项目中,我通常把它们组合成一个多层风控体系:

  1. 第一层:绝对限额 —— 硬止损,防止系统故障或极端行情。
  2. 第二层:相对限额 —— 根据账户规模动态调整。
  3. 第三层:动态限额 —— 根据市场波动率调整。
  4. 第四层:VaR限额 —— 统一量化风险。
  5. 第五层:希腊字母限额 —— 针对期权等衍生品。

每一层都是独立的,只要有一层触发,系统就会报警或自动减仓。这样即使某一层失效,其他层还能兜底。

下面这张图展示了整个库存限额管理的核心逻辑:

库存限额管理核心逻辑 库存限额管理 绝对限额 硬上限,最后防线 相对限额 按账户规模调整 动态限额 随波动率变化 VaR限额 量化风险敞口 希腊字母限额 期权多维风控 组合使用,多层风控体系 实战建议 • 绝对限额作为硬止损,不可绕过 • 相对限额和动态限额配合使用,适应市场变化 • VaR限额和希腊字母限额用于精细化风控

最后说一句:限额不是越紧越好。太紧的限额会让你频繁触发风控,影响做市效率。太松又等于没设。找到那个平衡点,才是真本事。

我个人习惯是,先用历史数据回测,看看不同限额下策略的表现。然后上线时先设保守一点,运行一段时间后再逐步放宽。这样既安全,又能找到最优参数。


公众号:蓝海资料掘金营,微信deep3321