3、报价策略基础:对称报价与非对称报价、固定价差与动态价差、报价更新频率与时机

做市商的核心工作,说白了就是「两边挂单,吃价差」。但怎么挂、挂多宽、多久换一次,这里面门道很深。我刚开始做市的时候,以为只要把买卖单挂上去就能赚钱,结果被市场狠狠教育了一顿。今天咱们就把这几个基础策略掰开揉碎讲清楚。

3.1 对称报价 vs 非对称报价

先问个问题:你的买单和卖单,应该离中间价一样远吗?

对称报价,就是买卖两边价差完全对称。比如中间价是100,你买在99.5,卖在100.5,两边各吃0.5的价差。这种策略的好处是「公平」——你不对任何方向有偏见,纯粹靠市场波动赚钱。

我在做ETH-USDT对时,初期就用的对称报价。那时候市场波动不大,每天稳稳吃几百个点的价差,日子挺舒服。但后来发现一个问题:一旦市场出现单边行情,对称报价会让你死得很惨。

核心区别:
  • 对称报价:买卖价差相等,适合震荡市,库存风险中性
  • 非对称报价:一边宽一边窄,适合趋势市,主动管理库存

非对称报价就灵活多了。比如你判断价格要涨,可以把买单挂得近一点(比如99.8),卖单挂得远一点(比如101.2)。这样你更容易接到便宜的货,但不容易卖出去——说白了就是「囤货」策略。

我曾经在BTC大跌时用过非对称报价。当时市场恐慌,我故意把买单挂得很宽,卖单挂得很窄。结果呢?我低价收了一堆BTC,等反弹时高价卖出,那一波赚了不小的一笔。但注意,这招风险也大——万一继续跌,你就成了接盘侠。

我的建议:新手先从对称报价开始,跑顺了再尝试非对称。非对称报价的核心是「方向判断」,判断错了就是反向做市,亏起来比散户还快。

3.2 固定价差 vs 动态价差

价差怎么定?是固定一个数值,还是跟着市场变?

固定价差最简单。比如你规定买卖价差永远是0.2%,不管市场怎么波动。这种策略的好处是「可预测」——你知道每笔交易能赚多少。但坏处也很明显:市场波动大的时候,你的价差可能被吃掉;波动小的时候,你又赚得太少。

我记得有个项目方,做市时用了固定价差0.1%。平时还好,但有一天突然出了个利空消息,价格瞬间暴跌5%。他的买单还在原地挂着,结果被大量卖单砸穿,直接亏了十几万。嗯,这就是固定价差的坑——它不考虑市场状态。

动态价差就聪明多了。它会根据市场波动率、订单簿深度、库存风险等因素实时调整。比如波动率高了,价差就拉宽;库存偏了,价差就往回收。

一个常见的动态价差公式是这样的:

价差 = 基础价差 × (1 + α × 波动率) × (1 + β × 库存偏度)

其中:

  • 基础价差:你设定的最小价差,比如0.05%
  • α:波动率敏感系数,一般取0.5~2.0
  • β:库存偏度系数,控制库存风险的影响
  • 波动率:可以用最近N笔交易的收益率标准差
  • 库存偏度:当前库存与目标库存的偏离程度
注意:动态价差不是越复杂越好。我见过有人加了十几个参数,结果模型过拟合,实盘跑起来一塌糊涂。我的经验是:先加波动率,跑通了再加库存,其他参数慢慢来。

下面这张图展示了固定价差和动态价差的区别:

固定价差 vs 动态价差 固定价差(0.2%) 动态价差(随波动变化) 时间 → 价差宽度 高波动 低波动 固定价差 动态价差

你看,动态价差在高波动时自动拉宽,保护你不被市场吃掉;低波动时收窄,多赚点价差。这就是「自适应」的魅力。

3.3 报价更新频率与时机

最后一个问题:你的报价多久更新一次?

有人觉得越快越好,恨不得每毫秒都更新。但说实话,这不一定对。

更新频率取决于几个因素:

  • 市场波动率:波动大时,更新要快;波动小时,可以慢点
  • 交易所限制:有些交易所对撤单次数有限制,比如每秒最多撤100次
  • 你的策略:高频做市需要高频更新,低频策略可以慢一些
  • 成本:每次撤单重挂都有手续费,更新太频繁成本会很高

我个人的习惯是:先设一个基础频率,比如每秒更新一次。然后根据市场状态动态调整。如果波动率突然飙升,我就把频率提到每200毫秒一次;如果市场很平静,降到每5秒一次也行。

避坑指南:我曾经在Binance上做市,把更新频率设成了每100毫秒一次。结果呢?交易所直接把我限流了,说撤单次数超标。后来我才知道,Binance对撤单率有隐形的惩罚机制——撤单太多,你的订单会被延迟处理。所以,别一味追求高频,要尊重交易所的规则。

更新时机也很关键。不是任何时候都适合更新报价的。比如:

  • 大单成交后:市场瞬间失衡,你的报价可能已经过时了
  • 价格快速变动时:比如1秒内价格跳了0.5%,赶紧更新
  • 库存偏离时:你的库存和目标差太多,需要调整报价来平衡
  • 固定时间点:比如每整秒、每整分钟,保持节奏

我见过一个团队,他们的策略是「只在价格变动超过0.1%时才更新」。这样既节省了成本,又保证了报价的有效性。嗯,这个思路值得借鉴。

下面是一个简单的报价更新逻辑伪代码:

def should_update(current_price, last_update_price, volatility):
    # 价格变动超过阈值
    if abs(current_price - last_update_price) / last_update_price > 0.001:
        return True
    
    # 波动率突然升高
    if volatility > 0.02:
        return True
    
    # 距离上次更新超过5秒
    if time_since_last_update > 5:
        return True
    
    return False

你看,这个逻辑很简单,但很实用。它结合了价格变动、波动率和时间三个维度,保证了报价的时效性,又不会过度更新。

最后提醒一句:报价更新频率和时机,没有标准答案。你得根据你的策略、资金量、交易所规则来调。我建议你先跑模拟,看看不同参数下的表现,再上实盘。别一上来就高频更新,小心被交易所拉黑。

好了,这一章的内容就这些。对称与非对称、固定与动态、频率与时机——这三个维度构成了报价策略的基础框架。你想想看,你的策略在这三个维度上是怎么设计的?有没有可以优化的地方?


专注资料整理