四、订单簿与报价策略:限价订单簿、市价单与限价单、最优报价策略、价差设置逻辑

做市商的核心战场,说白了就是订单簿。

你每天盯着屏幕上跳动的买一卖一,背后其实是一场精密的博弈。我刚开始做市的时候,以为只要把单子挂上去等着吃差价就行,结果亏得连手续费都赚不回来。后来才明白——订单簿不是静态的,它是活的。

4.1 限价订单簿:市场的骨架

限价订单簿(LOB)是所有限价单的集合。买方挂单从高到低排列,卖方挂单从低到高排列。中间那个空隙,就是价差。

举个例子,假设当前BTC/USDT的订单簿长这样:

买单价 买量 卖单价 卖量
30000 1.5 30005 2.0
29995 3.0 30010 1.8
29990 5.0 30015 4.0

这里买一价30000,卖一价30005,价差5个tick。如果你挂一个市价买单,会直接吃掉卖一的2.0个BTC。如果你挂一个限价买单,价格设在30002,那就得等有人愿意在这个价格卖给你。

我个人习惯把订单簿分成三层来看:

  • 表层:买一卖一,流动性最浅,但反应最快
  • 中层:买二到买五、卖二到卖五,流动性稍厚
  • 深层:更远的价位,通常是大户的埋伏单

我在项目中遇到过一件事:有一次某个币种突然拉盘,表层买单瞬间被吃掉,但中层挂单纹丝不动。我立刻意识到——有人在用大单扫货,但不想惊动深层。这种时候,如果你还按表层价差报价,必死无疑。

核心观点:订单簿的深度分布,决定了你的报价策略。表层看速度,深层看意图。

4.2 市价单 vs 限价单:两种武器

市价单和限价单,是交易员最基础的两个工具。但很多人用错了。

市价单:你告诉市场「我要买,不管什么价,立刻成交」。优点是快,缺点是滑点。尤其在流动性差的时候,一个市价单可能把价格打穿好几个tick。

限价单:你告诉市场「我只愿意在这个价买,不成交拉倒」。优点是你控制了成本,缺点是有可能永远成交不了。

做市商的核心工作之一,就是管理这两种单子的比例。我一般遵循一个原则:

  • 做市策略中,限价单占80%以上,用来赚取价差
  • 对冲或紧急调整时,市价单占20%以下,用来快速平仓

为什么会这样?因为做市商赚的就是流动性提供者的钱。你挂限价单,就是在给市场提供流动性,交易所会给你返佣。你挂市价单,是在消耗流动性,要付更高的手续费。

小技巧:如果你必须用市价单,可以拆成小单分批执行。比如你要买10个BTC,拆成10个1BTC的市价单,每单间隔几百毫秒。这样能减少对市场的冲击。

4.3 最优报价策略:不是简单挂中间

很多人以为最优报价就是把买单挂在买一,卖单挂在卖一,吃那点价差。太天真了。

最优报价策略,要考虑三个维度:

  1. 库存风险:你手里有多少货?货多了要偏向卖,货少了要偏向买
  2. 市场波动:波动大的时候,价差要拉宽;波动小的时候,价差可以收窄
  3. 对手盘行为:有没有人在故意扫单?有没有大单在埋伏?

我常用的一个策略叫「动态偏移报价」。简单说,就是根据你的库存偏离程度,动态调整报价位置。

# 伪代码示例:动态偏移报价
def calculate_quote(inventory, target_inventory, spread, volatility):
    # inventory: 当前库存
    # target_inventory: 目标库存(通常为0)
    # spread: 基础价差
    # volatility: 波动率因子
    
    deviation = inventory - target_inventory
    # 库存偏离越大,偏移量越大
    offset = deviation * 0.1 * volatility
    
    bid_price = mid_price - spread/2 + offset
    ask_price = mid_price + spread/2 + offset
    
    return bid_price, ask_price

你看,当库存为正(手里货多)时,offset为正,买价和卖价都往上移。这样你更容易卖出,更难买入,自然就把库存降下来了。反过来也一样。

注意:这个策略在趋势行情中要小心。如果市场在单边上涨,你因为库存多而把卖价挂高,可能错失卖出机会。我吃过这个亏,后来加了一个趋势过滤器。

4.4 价差设置逻辑:宽了没人理,窄了亏手续费

价差是做市商的生命线。设得太宽,你的单子永远排在最外面,吃不到成交。设得太窄,每笔交易赚的钱还不够交手续费。

价差的核心公式其实很简单:

价差 ≥ 手续费 × 2 + 预期利润

为什么是乘以2?因为一买一卖,两笔手续费。如果你做市一次完整的买卖循环,手续费要扣两次。

但实际中,价差还要考虑更多因素:

因素 影响方向 我的经验值
波动率 波动越大,价差越宽 波动率每升10%,价差加0.5个tick
成交量 成交量越大,价差可以越窄 成交量翻倍,价差可缩20%
时间 夜盘流动性差,价差要宽 夜盘比白天宽1-2个tick
库存 库存偏离大,价差要不对称调整 偏离10%,价差偏移0.3个tick

我曾经在某个山寨币上吃过亏。那个币流动性极差,价差经常有10个tick。我按常规策略设了3个tick的价差,结果一整天一单都没成交。后来我把价差拉到8个tick,虽然成交少了,但每笔赚得更多,整体收益反而上来了。

一句话总结:价差不是越小越好,也不是越大越好。它是在「成交概率」和「单笔利润」之间找平衡。

4.5 知识体系总览

下面这张图,是我自己整理的本章节知识结构。你可以把它当成一张地图,随时回来对照。

订单簿与报价策略 限价订单簿 表层 / 中层 / 深层 买一卖一 / 深度分布 市价单 vs 限价单 市价单:快但有滑点 限价单:可控但可能不成交 最优报价策略 库存风险 / 波动 / 对手盘 动态偏移报价 价差设置逻辑 手续费 × 2 + 预期利润 波动率 / 成交量 / 时间 / 库存 图:订单簿与报价策略知识体系

嗯,这张图基本把本章的核心逻辑串起来了。你从订单簿出发,理解市场结构;然后掌握两种订单类型;接着设计报价策略;最后用价差逻辑来精细化调整。每一步都环环相扣。

实战建议:刚开始做市的时候,别想着一步到位。先跑一个最简单的对称价差策略,跑通了再慢慢加库存偏移、波动率调整。我见过太多人一上来就搞复杂模型,结果连手续费都没赚回来。

好了,这一章就到这里。记住,订单簿是你的战场,报价策略是你的武器。把基础打牢,后面的高级策略才能发挥威力。


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