做市策略核心逻辑:买卖双边报价策略、库存风险管理、报价更新频率、盈亏平衡分析

各位同学,欢迎来到《高频做市算法开发实战》的第一章。

做市策略,说白了就是「低买高卖」的极致版本。但真上手做,你会发现事情没那么简单。我当年刚入行时,以为写个双边挂单的程序就能赚钱,结果第一个月亏得差点被老板请去喝茶。嗯,这里面的坑,咱们今天一个一个说清楚。

一、买卖双边报价策略:做市商的吃饭家伙

做市商的核心工作,就是同时报出买价和卖价。你想想看,如果比特币现价 30000 USDT,我报 29990 买入、30010 卖出,只要市场波动不大,两边都能成交,我就赚这 20 块的差价。

但问题来了——报多少价差合适?

我个人习惯用动态价差模型。简单说,就是根据市场波动率来调整。波动大的时候,价差拉大一点,给自己留安全垫;波动小的时候,价差收窄,争取多成交。

核心公式:
买价 = 中间价 - (价差 / 2) × 波动率调整因子
卖价 = 中间价 + (价差 / 2) × 波动率调整因子

我在项目中遇到过一种情况:某个山寨币流动性极差,按固定价差挂单,结果一整天都没成交。后来改成基于订单簿深度的动态价差,成交率直接翻了三倍。

实战技巧: 别用固定的价差百分比。建议根据最近 N 笔成交的波动率,实时计算价差。我一般取 N=20,太短容易受噪音干扰,太长反应太慢。

二、库存风险管理:别让货砸手里

做市商最怕什么?不是亏钱,是库存失控。

你想想看,如果比特币一直涨,你手里全是空单,那不就爆仓了吗?反过来,一直跌你手里全是多单,一样完蛋。

库存风险管理的核心就一句话:让库存围绕目标值波动,别跑偏

我常用的方法是「库存偏移定价法」。举个例子:

  • 目标库存:100 个 ETH
  • 当前库存:120 个 ETH(超了)
  • 策略:主动压低卖价,抬高买价,让卖单更容易成交,买单更难成交

代码实现其实不复杂:

def adjust_price(base_price, inventory, target_inventory, max_inventory):
    # 计算库存偏移量
    offset = (inventory - target_inventory) / max_inventory
    # 偏移量映射到价差调整 [-0.5, 0.5]
    spread_adjust = offset * 0.5
    
    bid_price = base_price * (1 - (0.001 + spread_adjust))
    ask_price = base_price * (1 + (0.001 - spread_adjust))
    
    return bid_price, ask_price
避坑指南: 我曾经把 max_inventory 设得太小,导致库存稍微偏离就疯狂调整报价,结果频繁撤单被交易所罚款。建议 max_inventory 设为目标库存的 2-3 倍,给策略留点缓冲空间。

三、报价更新频率:快还是稳?

这个问题我纠结了很久。报得太快,容易被交易所当刷单;报得太慢,又抢不到好价格。

高频做市领域,更新频率通常分三个档次:

频率等级 更新间隔 适用场景
超高频 1-10 毫秒 主流币种,流动性极好
中频 10-100 毫秒 二线币种,有一定流动性
低频 100-1000 毫秒 小币种,流动性差

我个人习惯的做法是:事件驱动 + 定时刷新。什么意思呢?就是当市场有重大变化时(比如大单成交、价格跳变),立即更新报价;如果市场平静,就按固定间隔刷新。

这样做的好处很明显——既不会错过行情,又不会浪费系统资源。

一个小技巧: 把报价更新和行情推送解耦。行情来了先缓存,等更新周期到了再统一处理。这样能避免频繁撤单,也更容易通过交易所的风控检查。

四、盈亏平衡分析:你到底赚不赚钱?

做市策略的盈亏,不能只看单笔交易。你得算总账。

我一般用三个指标来衡量:

  1. 净价差收入:所有买卖价差的总和,减去手续费
  2. 库存损益:因为持有库存而产生的价格波动损益
  3. 总盈亏 = 净价差收入 + 库存损益

举个例子你就明白了:

假设我今天做了 1000 笔交易,每笔赚 0.1 USDT 价差,净价差收入就是 100 USDT。但因为我手里一直拿着 50 个 ETH,今天 ETH 跌了 2 USDT,库存亏损 100 USDT。一算总账,白忙活一场。

盈亏平衡点公式:
盈亏平衡价差 = 手续费率 × 2 + 库存风险成本
其中库存风险成本 = 预期波动率 × 库存量 / 成交量

我在项目中遇到过最惨的一次:某个币种手续费极低,我以为稳赚,结果忽略了库存风险。那天行情剧烈波动,库存亏损直接吃掉了一个月的利润。从那以后,我把库存风险成本纳入了报价模型,再也没犯过同样的错误。

知识体系总览

说了这么多,咱们用一张图把核心逻辑串起来:

做市策略核心逻辑框架 买卖双边报价策略 • 动态价差模型 • 波动率调整因子 • 订单簿深度感知 • 价差 = f(波动率, 流动性) 库存风险管理 • 库存偏移定价法 • 目标库存设定 • 最大库存限制 • 偏移量 → 报价调整 报价更新频率 • 超高频:1-10ms • 中频:10-100ms • 低频:100-1000ms • 事件驱动 + 定时刷新 盈亏平衡分析 • 净价差收入 • 库存损益 • 总盈亏 = 价差 - 库存风险 • 盈亏平衡价差公式 四个模块相互影响,共同决定做市策略的最终收益

这张图把今天讲的内容串起来了。双边报价是基础,库存风险是命门,更新频率是技巧,盈亏分析是检验标准。四个模块缺一不可。

好了,第一章的内容就到这里。记住,做市不是简单的挂单撤单,而是一个系统工程。下一章咱们会深入代码实现,把今天讲的逻辑变成真正能跑的程序。


专注资料整理