第三章:做市策略核心指标

做市策略好不好,不能光靠感觉。我见过太多人,回测曲线漂亮得不行,一上实盘就崩。为什么?因为只看收益率,没看风险指标。

今天我把六个核心指标掰开揉碎讲清楚。价差、库存风险、Gamma风险、Vega风险、夏普比率、最大回撤。这六个指标,是我做市策略的「体检报告」。缺一个,你都不知道自己怎么死的。

3.1 价差:做市商的饭碗

价差是什么?说白了,就是你买入价和卖出价之间的差额。做市商赚的就是这个差价。

我个人习惯用「相对价差」来衡量。绝对价差没意义,你得看它占当前价格的百分比。

核心公式:

相对价差 = (卖一价 - 买一价) / 中间价 × 10000  // 单位:BP

我在项目中遇到过一个问题:某个币种流动性极差,价差动不动就50个BP。我一开始还傻傻地挂单,结果一天下来没成交几笔。后来我学乖了,价差超过20BP就撤单,等市场恢复再说。

实战技巧:价差不是越小越好。太小了,你赚不到钱;太大了,没人跟你交易。我一般控制在市场平均价差的0.8-1.2倍之间。

3.2 库存风险:你手里的「烫手山芋」

做市商最怕什么?库存积压。你想想看,你买了一大堆某个币,结果价格暴跌,你跑都跑不掉。

库存风险,衡量的是你当前持仓偏离目标持仓的程度。我习惯用「库存偏差率」来表示。

库存偏差率 = (当前持仓 - 目标持仓) / 目标持仓 × 100%

嗯,这里要注意。目标持仓不是固定的。你得根据市场波动率动态调整。我记得有一次,市场突然暴跌,我的库存偏差率瞬间飙到30%。我赶紧启动对冲程序,才没酿成大祸。

避坑指南:我曾经因为库存风险控制太松,一天亏了半个月的利润。从那以后,我设了硬性红线:库存偏差率超过15%,必须强制减仓。

3.3 Gamma风险:方向性暴露

Gamma风险,说白了就是你做市策略对价格变动的敏感度。Gamma越高,价格一波动,你的持仓变化就越剧烈。

对于期权做市商来说,Gamma风险是头号大敌。为什么?因为Gamma会导致你的Delta(方向性敞口)快速变化。你刚对冲完,价格一动,又得重新对冲。

计算公式:

Gamma = ∂Δ / ∂S  // Delta对标的资产价格的一阶导数

我个人习惯把Gamma风险控制在总资金的2%以内。超过这个数,我会选择减仓或者用其他期权对冲。

3.4 Vega风险:波动率的「隐形杀手」

Vega风险,衡量的是波动率变化对你持仓的影响。很多人只盯着价格,忽略了波动率。其实波动率的变化,有时候比价格变化更致命。

你想想看,市场突然恐慌,隐含波动率飙升。你手里的期权持仓,价值可能瞬间翻倍或者腰斩。这就是Vega在作怪。

Vega = ∂V / ∂σ  // 期权价值对波动率的一阶导数

实战经验:我一般会监控「Vega暴露」这个指标。如果Vega暴露超过总资金的5%,我会用波动率期货或者互换来对冲。别等到波动率真变了才动手,那时候就晚了。

3.5 夏普比率:收益与风险的「性价比」

夏普比率,衡量的是你每承担一单位风险,能获得多少超额收益。说白了,就是你的策略「性价比」高不高。

夏普比率 = (策略收益率 - 无风险利率) / 策略波动率

我见过有人夏普比率做到3以上,结果一查,用的是日频数据,样本量才20天。这有什么意义?我个人习惯用周频数据,至少52周(一年)的数据来算。低于1.5的策略,我基本不会上实盘。

注意:夏普比率高不代表策略好。你得看它是不是「数据挖掘」出来的。我曾经见过一个策略,夏普比率4.5,结果实盘一个月就亏了20%。为什么?因为回测时过拟合了。

3.6 最大回撤:你的「心理承受底线」

最大回撤,就是从最高点到最低点的最大跌幅。这个指标,直接决定了你能不能拿住策略。

我刚开始做量化时,策略最大回撤30%,我硬扛着没动。结果呢?三个月后策略创了新高。但那种煎熬,我不想再经历第二次。

最大回撤 = max(1 - 当前净值 / 历史最高净值) × 100%

现在我做策略,最大回撤超过15%就直接停掉。不是策略不好,是我心理承受不了。你想想看,你晚上能睡着觉吗?

我的建议:最大回撤和夏普比率要一起看。一个夏普2.0但最大回撤40%的策略,和一个夏普1.2但最大回撤8%的策略,我选后者。活得久,比赚得快更重要。

3.7 六个指标的关系:一张图看懂

这六个指标不是孤立的。它们互相影响,共同决定了你的做市策略是否健康。我画了一张图,帮你理清它们的关系。

做市策略 价差 库存风险 Gamma风险 Vega风险 夏普比率 最大回撤 指标关系说明 价差 → 直接影响库存风险(价差越窄,库存积累越快) Gamma/Vega风险 → 影响夏普比率(风险越高,夏普越低) 最大回撤 → 与夏普比率负相关(回撤越大,夏普越低)

3.8 实战中的指标监控

说了这么多理论,来点实际的。我平时怎么监控这些指标?

我写了一个简单的监控脚本,每5秒刷新一次。核心逻辑就这几行:

def monitor_indicators(order_book, positions, options_chain):
    # 计算价差
    spread = (order_book.ask_price - order_book.bid_price) / order_book.mid_price * 10000
    
    # 计算库存风险
    inventory_risk = abs(positions.net_exposure / positions.target_exposure - 1)
    
    # 计算Gamma和Vega
    gamma_risk = sum([opt.gamma * opt.position for opt in options_chain])
    vega_risk = sum([opt.vega * opt.position for opt in options_chain])
    
    # 计算夏普和回撤(用过去30天数据)
    sharpe = calc_sharpe_ratio(returns[-30:])
    max_dd = calc_max_drawdown(equity_curve[-30:])
    
    return {
        'spread_bp': spread,
        'inventory_pct': inventory_risk * 100,
        'gamma': gamma_risk,
        'vega': vega_risk,
        'sharpe': sharpe,
        'max_dd_pct': max_dd * 100
    }

重要提醒:指标监控不是摆设。我设了三级预警:黄色(注意)、橙色(警告)、红色(立即行动)。比如价差超过30BP是黄色,超过50BP是红色。到了红色,系统会自动撤单并启动对冲。

这六个指标,就像你开车时的仪表盘。价差是速度,库存风险是油量,Gamma和Vega是发动机温度,夏普比率是油耗效率,最大回撤是刹车距离。缺一个,你都可能翻车。

我个人习惯,每天收盘后花10分钟复盘这六个指标。看看今天哪个指标越界了,明天怎么调整。别等到亏钱了才想起来看指标,那时候就晚了。

最后一句:指标是死的,人是活的。别被指标绑架,但也不能无视它们。找到适合你自己策略的阈值,比追求完美的指标值更重要。


专注资料整理