4. 价差策略基础:固定价差策略、动态价差策略、价差与波动率的关系

做市商的核心利润来源是什么?说白了,就是「吃价差」。你挂买单,再挂卖单,中间那点差价就是你的利润。但怎么挂?挂多宽?什么时候调?这就是价差策略要解决的问题。

我个人习惯把价差策略分成两大类:固定价差动态价差。前者简单粗暴,后者灵活多变。今天我们就从最基础的开始,一步步拆解。

4.1 固定价差策略:最朴素的做市方式

固定价差策略,顾名思义——你的买卖价差是固定的。比如比特币当前价格 30000 USDT,你设定价差 10 个点,那么买单挂 29995,卖单挂 30005。不管市场怎么波动,价差始终是 10。

听起来很简单对吧?但我在项目中遇到过一个问题:固定价差到底设多少才合适?

设太窄,利润薄如纸,一次交易赚不到几个钱。设太宽,订单成交不了,挂在那干瞪眼。这里有个经验值可以参考:

市场类型 建议固定价差(相对于中间价) 典型场景
高流动性市场(BTC/USDT) 0.01% - 0.05% 币安、OKX 主流币
中等流动性市场 0.05% - 0.2% 二线交易所、小币种
低流动性市场 0.2% - 1% 新上线币种、冷门交易对

嗯,这里要注意:固定价差策略最大的坑在于——市场剧烈波动时,你会被两头吃。价格突然拉升,你的卖单被吃掉,但买单没跟上,你就变成了单向持仓。我曾经因为这个吃过亏,所以后来我加了一个保护机制:当价格波动超过某个阈值时,自动撤单。

核心要点:固定价差策略适合波动率低、流动性好的市场。它不需要复杂的计算,但需要配合风控逻辑。

4.2 动态价差策略:让策略学会「呼吸」

固定价差的问题在于——它不会变。市场安静的时候,你希望价差窄一点多成交;市场疯狂的时候,你希望价差宽一点保护自己。动态价差策略就是干这个的。

动态价差的核心逻辑很简单:价差 = 基础价差 × 某个调整因子。这个调整因子通常跟市场状态挂钩。我常用的几种调整方式:

  1. 基于订单簿深度调整:买单深度大,说明买方力量强,可以适当收窄价差。反之亦然。
  2. 基于历史成交频率调整:过去 N 笔订单成交速度快,说明市场活跃,可以收窄价差抢单。
  3. 基于波动率调整:这个我们下一节重点讲。

举个例子,我做过一个简单的动态价差策略:

def dynamic_spread(base_spread, order_book, volatility):
    """
    动态价差计算
    base_spread: 基础价差(百分比)
    order_book: 订单簿数据
    volatility: 当前波动率
    """
    # 订单簿不平衡度
    bid_volume = sum([level['size'] for level in order_book['bids'][:5]])
    ask_volume = sum([level['size'] for level in order_book['asks'][:5]])
    imbalance = (bid_volume - ask_volume) / (bid_volume + ask_volume)
    
    # 波动率调整因子
    vol_factor = 1 + volatility * 10  # 波动率越高,价差越宽
    
    # 最终价差
    spread = base_spread * vol_factor * (1 - 0.3 * imbalance)
    
    return spread

你看,这里我用了两个因子:波动率和订单簿不平衡度。波动率高了,价差自动变宽;买单深度大,价差自动收窄。这样策略就有了「自适应」的能力。

我的经验:动态价差策略的调整幅度不要太大。我一般限制在基础价差的 0.5 倍到 2 倍之间。太激进的调整会导致订单频繁撤挂,反而增加成本。

4.3 价差与波动率的关系:核心公式

为什么波动率会影响价差?你想想看,波动率越高,意味着价格在短时间内可能大幅跳动。如果你挂了一个窄价差,价格一跳,你的订单可能瞬间变成「地板价」或「天花板价」,被套利者吃掉。

所以,价差和波动率之间有一个正相关关系。我习惯用这个公式来量化:

最优价差 = 基础价差 + k × σ

其中 σ 是波动率(通常用标准差衡量),k 是一个风险偏好系数。k 越大,你对风险的容忍度越低,价差就越宽。

这里我画了一张图,帮你理解价差、波动率和成交概率之间的关系:

价差与波动率关系示意图 波动率 (σ) 最优价差 固定价差 动态价差 低波动区 中波动区 高波动区 窄价差,高成交 平衡区 宽价差,低风险

从图上你能看到:固定价差是一条水平线,不管波动率怎么变,价差不变。这在低波动区没问题,但到了高波动区,风险急剧上升。动态价差则是一条上升曲线,波动率越高,价差越宽,自动帮你控制风险。

避坑指南:我曾经犯过一个错误——直接用实时波动率来调整价差。结果波动率突然飙升,价差瞬间拉得很宽,订单全部被撤,错过了后续的行情。后来我改用「滑动窗口平均波动率」,比如过去 5 分钟的均值,这样曲线就平滑多了。

4.4 实战中的选择:固定还是动态?

到底用固定价差还是动态价差?我的建议是:

  • 如果你刚开始做市,或者资金量不大:先用固定价差。简单、可控、不容易出幺蛾子。把基础逻辑跑通再说。
  • 如果你已经有一定经验,或者市场波动剧烈:上动态价差。它能帮你自动适应市场,减少人工干预。
  • 如果你做的是高频做市:动态价差是必须的。固定价差在高频场景下基本没法用,因为市场变化太快了。

我个人习惯是「固定打底,动态微调」。先设定一个基础价差,然后根据市场状态做 ±30% 的调整。这样既保留了固定价差的稳定性,又有了动态价差的灵活性。

一句话总结:价差策略是做市商的「定价艺术」。固定价差是基本功,动态价差是进阶技能。而理解价差与波动率的关系,是这一切的基础。

好了,这一章的内容就到这里。记住,策略再花哨,最终都要落到实盘上。建议你先用历史数据回测一下,看看不同波动率下你的策略表现如何。嗯,下一章我们会聊到「库存管理」——做市商另一个头疼的问题。


专注资料整理