第十九章:多资产做市策略

做市做到一定程度,你会发现一个规律:单一品种的利润天花板其实很低。真正赚钱的,往往是那些跨品种、跨市场的策略。这一章,我就带你看看多资产做市的核心玩法。

一、跨品种相关性做市

说白了,就是利用两个品种之间的价格关系来做市。比如螺纹钢和铁矿石,它们之间有个天然的生产关系:螺纹钢 = 铁矿石 + 焦炭 + 加工费。这个关系短期内可能会偏离,但长期一定会回归。

核心逻辑:当两个品种的价差偏离历史均值时,做市商可以同时买入低估品种、卖出高估品种,赚取回归的利润。

我在项目中遇到过这样一个场景:某天螺纹钢突然大涨,但铁矿石没动。我一看,价差已经拉到3个标准差以上了。嗯,这种机会不能放过。我立刻在螺纹钢上挂卖单,在铁矿石上挂买单,两边同时做市。结果不到半小时,价差就回归了,我两边都赚了。

具体怎么做?你需要一个协整模型来跟踪价差:

import numpy as np
import statsmodels.api as sm

# 假设我们有两个品种的价格序列
price_a = np.array([...])  # 螺纹钢
price_b = np.array([...])  # 铁矿石

# 计算协整关系
model = sm.OLS(price_a, sm.add_constant(price_b))
result = model.fit()
hedge_ratio = result.params[1]  # 对冲比例

# 计算价差
spread = price_a - hedge_ratio * price_b

# 设定做市阈值
z_score = (spread - np.mean(spread)) / np.std(spread)
entry_threshold = 2.0  # 当z-score超过2时入场
exit_threshold = 0.5  # 回归到0.5时平仓

避坑指南:我曾经犯过一个错误——直接用价格做回归。后来发现,很多品种的价格序列是非平稳的,必须用对数价格或者收益率。否则,回归结果全是假的。

二、ETF做市

ETF做市,本质上是在赚两个钱:一个是买卖价差,另一个是折溢价套利。你想想看,ETF既有二级市场的交易价格,又有一级市场的净值。这两个价格不可能完全一致,对吧?

当ETF的交易价格低于净值时,你可以买入ETF,同时赎回成分股卖出。反过来,当交易价格高于净值时,你可以买入成分股,申购ETF然后卖出。这就是经典的ETF套利。

但做市商不能只做套利,还得提供流动性。我个人的习惯是,在ETF的买卖盘口上同时挂单,价差控制在0.1%以内。同时,我会实时监控折溢价率:

def etf_market_making(etf_price, nav, spread=0.001):
    # 计算折溢价率
    premium = (etf_price - nav) / nav
    
    # 根据折溢价调整报价
    if premium > 0.002:  # 溢价超过0.2%
        # 倾向于卖出ETF,买入成分股
        bid_price = nav * (1 - spread/2)
        ask_price = nav * (1 + spread/2 + premium)
    elif premium < -0.002:  # 折价超过0.2%
        # 倾向于买入ETF,卖出成分股
        bid_price = nav * (1 - spread/2 - abs(premium))
        ask_price = nav * (1 + spread/2)
    else:
        # 正常做市
        bid_price = nav * (1 - spread/2)
        ask_price = nav * (1 + spread/2)
    
    return bid_price, ask_price

注意:ETF做市有个坑——成分股的流动性。我曾经遇到过一个ETF,它的成分股里有几只小盘股,流动性极差。结果我申购了ETF之后,发现那些小盘股根本卖不出去。从那以后,我每次做ETF做市之前,都会先检查成分股的流动性。

三、期货与现货套利做市

这个策略,说白了就是利用期货和现货之间的价差。期货价格 = 现货价格 + 持有成本。这个持有成本包括资金成本、仓储费、保险费等等。当价差偏离这个理论值时,套利机会就出现了。

我记得有一次,某商品期货的远月合约突然大幅升水。我算了一下,升水幅度已经超过了持有成本的两倍。这意味着什么?意味着你可以买入现货、卖出期货,然后稳稳地赚这个升水。

但实际操作中,有个问题:现货不一定好买。比如你做的不是黄金这种标准化商品,而是螺纹钢。螺纹钢的现货交易,你得找仓库、找物流、找质检。嗯,这里要注意,做期货现货套利,你得先搞定现货渠道。

代码实现上,核心是计算理论价差:

def futures_arbitrage(spot_price, futures_price, interest_rate, storage_cost, time_to_maturity):
    # 理论期货价格
    theoretical_futures = spot_price * np.exp((interest_rate + storage_cost) * time_to_maturity)
    
    # 实际价差
    actual_spread = futures_price - spot_price
    theoretical_spread = theoretical_futures - spot_price
    
    # 套利信号
    if actual_spread > theoretical_spread * 1.1:  # 期货高估
        return "卖出期货,买入现货"
    elif actual_spread < theoretical_spread * 0.9:  # 期货低估
        return "买入期货,卖出现货"
    else:
        return "无套利机会"

四、波动率产品做市

波动率产品,比如VIX期货、波动率互换、期权等,它们的做市逻辑和普通品种完全不同。普通品种做市,你关注的是价格。波动率产品做市,你关注的是波动率本身。

为什么?因为波动率产品的价格,本质上是对未来波动率的预期。这个预期会随着市场情绪、事件驱动等因素剧烈变化。你想想看,一个突发事件出来,VIX可能瞬间翻倍。这种时候,做市商的风险敞口会急剧放大。

我个人的经验是,做波动率产品做市,必须用希腊字母来管理风险。Delta、Gamma、Vega,这三个是最关键的。特别是Vega,它衡量的是波动率变化对期权价格的影响。

def volatility_market_making(option_price, underlying_price, strike, time_to_expiry, 
                              implied_vol, risk_free_rate):
    # 使用Black-Scholes计算希腊字母
    d1 = (np.log(underlying_price / strike) + 
          (risk_free_rate + 0.5 * implied_vol**2) * time_to_expiry) / \
         (implied_vol * np.sqrt(time_to_expiry))
    d2 = d1 - implied_vol * np.sqrt(time_to_expiry)
    
    # Delta
    delta = norm.cdf(d1)
    # Gamma
    gamma = norm.pdf(d1) / (underlying_price * implied_vol * np.sqrt(time_to_expiry))
    # Vega
    vega = underlying_price * norm.pdf(d1) * np.sqrt(time_to_expiry) * 0.01
    
    # 根据Vega调整报价
    if vega > 0.5:  # Vega敞口过大
        # 缩小报价宽度,快速平仓
        spread = 0.02
    else:
        spread = 0.05
    
    bid = option_price * (1 - spread)
    ask = option_price * (1 + spread)
    
    return bid, ask, delta, gamma, vega

核心要点:波动率产品做市,本质上是在做波动率的做市。你的利润来源不是方向性判断,而是波动率回归。当隐含波动率过高时,你卖出波动率;当隐含波动率过低时,你买入波动率。

我曾经在VIX期货上栽过跟头。当时VIX期货的期限结构是升水的,我按照常规思路,做空近月、做多远月。结果市场突然暴跌,VIX期货的期限结构瞬间变成贴水。我的头寸两边都亏。嗯,从那以后,我学会了在波动率产品上严格控制仓位,并且永远留一手。

知识体系总览

下面这张图,我把多资产做市的核心逻辑梳理了一下。你可以看到,不同策略之间其实有共通之处,比如都依赖价差回归、都需要风险管理。但每个策略又有自己的特殊性,比如ETF做市要关注折溢价,波动率做市要关注希腊字母。

多资产做市策略知识体系 多资产做市 跨品种相关性 ETF做市 期货现货套利 波动率产品 协整模型 价差回归 折溢价套利 流动性提供 持有成本 期现价差 希腊字母 波动率回归

做多资产做市,最忌讳的就是把每个策略孤立起来看。实际上,它们之间是相互关联的。比如,ETF做市和期货现货套利,本质上都是在做价差回归。波动率产品做市,其实也是在利用波动率的均值回归特性。

好了,这一章的内容就到这里。多资产做市是个大话题,每个策略都可以单独写一本书。但核心思想就一个:找到不同资产之间的稳定关系,然后利用这个关系来赚钱。

交易系统化学习资料 微信Strategy888888