第三章 做市策略核心指标:买卖价差、市场深度、成交量、波动率、订单到达率

做市策略说白了就是「低买高卖」的精细化版本。但怎么判断什么时候该买、什么时候该卖?靠的就是这几个核心指标。我做了这么多年高频做市,每天盯的就是这五个数字。它们就像医生的五项生命体征,缺一个都不行。

3.1 买卖价差(Spread)——你的利润空间

买卖价差,就是市场上最优卖价和最优买价之间的差值。比如 BTC/USDT 当前最优买价是 50000,最优卖价是 50001,那价差就是 1 个 USDT。

价差直接决定了你的潜在利润。你想想看,如果你在买一价成交,想在卖一价卖出,赚的就是这个差价。但这里有个坑——价差不是固定的

核心公式:

Spread = Ask_Price - Bid_Price

相对价差 = Spread / Mid_Price × 100%

我个人习惯用相对价差来判断市场状态。比如 ETH 的绝对价差可能是 0.01 USDT,但价格只有 2000,相对价差才 0.0005%。而某个山寨币绝对价差 0.001 USDT,价格才 0.5,相对价差却高达 0.2%。

我在项目中遇到过一件事:有个策略在 BTC 上跑得好好的,换到一个小币种上直接亏钱。一查才发现,那个币的绝对价差看着很小,但相对价差是 BTC 的 50 倍。嗯,这就是没算相对价差的教训。

实战技巧:

做市报价时,你的报价宽度一般要控制在价差的 1/3 到 1/2。太宽了成交不了,太窄了赚不到钱。

3.2 市场深度(Depth)——你的安全垫

市场深度,说白了就是「你想砸盘的时候,能砸多深」。它反映了市场在某个价格水平上能承受的订单量。

深度通常用 Level 2 数据来看。比如买一到买五的挂单量分别是 10、20、30、40、50 个 BTC。那在 50000 这个价位上,深度就是 10 个 BTC。

为什么深度重要?因为你的做市策略要频繁挂单撤单。如果市场深度太浅,你挂一个大单进去,可能直接把价格打穿。我见过有人在一个深度只有 0.5 BTC 的币上挂了 2 BTC 的卖单,结果直接把价格砸下去 3%。

避坑指南:

我曾经在深度不足 10 个 ETH 的币对上跑高频策略,结果一次行情波动,我的挂单全被吃掉,持仓方向直接反了。后来我给自己定了个规矩:深度低于 50 个最小交易单位的币,不做市。

深度还有一个隐藏用法——判断支撑和阻力。如果买一深度特别厚,说明这个价位有强支撑。卖一深度特别厚,说明有强阻力。做市的时候,我会把报价稍微往厚的那边偏一点。

3.3 成交量(Volume)——市场的活跃度

成交量就是一段时间内成交的合约数或币数。它直接告诉你这个市场有多活跃。

做市策略最怕什么?最怕挂单半天没人理。成交量低的市场,你的资金全被锁在挂单里,机会成本高得吓人。

成交量级别 适合策略 风险等级
高(>1000 BTC/天) 高频做市、剥头皮
中(100-1000 BTC/天) 中等频率做市
低(<100 BTC/天) 不建议做市

我个人习惯用 1 分钟成交量来判断短期活跃度。如果连续 5 分钟成交量低于均值的一半,我会暂停做市,等成交量恢复再说。

3.4 波动率(Volatility)——你的风险度量

波动率衡量价格变动的剧烈程度。做市商最怕的就是波动率突然放大——你的挂单还没撤掉,价格已经穿过去了。

波动率有两种:

  • 历史波动率:过去 N 个周期的价格标准差
  • 实时波动率:用 Tick 数据实时计算的波动

我一般用 5 分钟窗口的实时波动率来做风控。如果波动率超过阈值,我会把报价宽度拉大,或者直接撤单观望。

代码示例:实时波动率计算

def calc_real_time_volatility(prices, window=300):
    """
    prices: 最近 N 笔成交价格
    window: 时间窗口(秒)
    """
    import numpy as np
    log_returns = np.diff(np.log(prices))
    volatility = np.std(log_returns) * np.sqrt(252 * 24 * 3600 / window)
    return volatility

嗯,这里要注意:波动率计算的时间窗口不能太短,否则全是噪音。也不能太长,否则反应太慢。我个人觉得 3-5 分钟是个不错的平衡点。

3.5 订单到达率(Arrival Rate)——你的节奏感

订单到达率,就是单位时间内新订单进入市场的速度。它决定了你的策略需要多快反应。

你想想看,如果每秒有 1000 个订单进来,你的策略延迟 10 毫秒可能就错过了最佳报价位置。但如果每秒只有 10 个订单,你慢个 100 毫秒也无所谓。

订单到达率可以用泊松过程来建模。但说实话,实战中我很少用那么复杂的模型。我一般直接看 1 秒内的订单数量,然后取个移动平均。

实战经验:

我曾经在订单到达率突然飙升的时候,还按原来的频率更新报价。结果 1 秒钟内我的报价被成交了 20 次,持仓瞬间爆了。后来我加了个逻辑:如果订单到达率超过阈值,报价更新频率自动提高 10 倍。

3.6 五个指标的关系——一张图看懂

这五个指标不是孤立的。它们之间有着千丝万缕的联系。我画了张图,帮你理清它们的关系:

做市策略 核心决策 价差 Spread 深度 Depth 成交量 Volume 波动率 Volatility 到达率 Arrival Rate 决定报价宽度 决定挂单量 决定是否参与 决定风控阈值 决定更新频率 正相关 正相关 正相关

从这张图你能看出来:价差和波动率正相关,波动率越大价差越宽。成交量和深度正相关,越活跃的市场深度越好。订单到达率又和成交量正相关。说白了,这五个指标是一体的,看一个就得看其他四个。

3.7 实战中的指标组合用法

光知道每个指标是什么没用,关键是怎么用。我分享一个我常用的决策逻辑:

  1. 第一步:看成交量——低于阈值直接跳过,不浪费时间
  2. 第二步:看深度——深度不够,缩小仓位或者不做
  3. 第三步:看波动率——波动率太高,拉大报价宽度或者暂停
  4. 第四步:看价差——价差太小,利润不够覆盖手续费,不做
  5. 第五步:看到达率——到达率决定你的策略延迟要求

核心原则:

五个指标中,只要有一个不达标,这个币对就不值得做市。宁可不做,不要硬做。

我记得有一次,一个币的成交量很大,深度也不错,但波动率突然飙升到平时的 5 倍。我果断停了策略。结果 10 分钟后那个币暴跌 30%,很多没停策略的做市商直接爆仓。嗯,这就是敬畏指标的重要性。

个人习惯:

我会把这五个指标做成一个仪表盘,实时监控。任何一个指标超过阈值,系统自动报警。这样我不用一直盯着屏幕,也能及时发现问题。

好了,这五个指标就是做市策略的基石。下一章我们会深入讲怎么用这些指标来设计具体的报价算法。记住一句话:指标是死的,但组合起来就是活的


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