一、做市策略核心原理:买卖价差、订单簿深度、库存管理、报价更新频率
做市策略,说白了就是「低买高卖」的自动化版本。但真要做起来,里面的门道比想象中深得多。我刚开始接触量化做市时,以为只要挂个买单和卖单就能赚钱,结果被市场狠狠教育了一顿。今天咱们就把做市策略的四个核心模块拆开揉碎了讲。
1.1 买卖价差(Bid-Ask Spread)—— 做市商的饭碗
买卖价差,就是买一价和卖一价之间的差值。这是做市商最主要的收入来源。你想想看,你在买一挂单买入,在卖一挂单卖出,只要成交了,这中间的差价就是你的利润。
但这里有个坑。我记得刚入行时,看到某个币种价差很大,觉得是块肥肉,直接上了大仓位。结果呢?流动性极差,我的单子挂在那里半天没人理,最后不得不撤单,白白浪费了时间成本。
核心公式:
价差 = 卖一价 - 买一价
价差率 = 价差 / 中间价 × 100%
做市商的利润 ≈ 成交金额 × 价差率 × 成交次数
价差不是越大越好。为什么?因为价差太大,你的单子可能永远成交不了。我个人的习惯是,根据市场波动率动态调整价差。波动率大的时候,价差放宽一些,给自己留足安全垫;波动率小的时候,价差收窄,提高成交概率。
实战技巧: 我建议用最近N笔成交的加权平均价作为基准价,然后在这个基准价上下对称挂单。比如基准价100元,价差0.2%,那么买单挂99.9,卖单挂100.1。
1.2 订单簿深度(Order Book Depth)—— 你的对手盘是谁
订单簿深度,说白了就是各个价位上挂了多少单。这直接决定了你的单子能不能成交,以及成交后会不会把价格打穿。
我曾经犯过一个错误:只看价差,不看深度。结果一个市价单砸下来,直接把我的买单全部吃掉,价格瞬间跌了2%,我亏得底裤都不剩。从那以后,我每次部署策略前,都会先拉一份订单簿快照,看看各个价位的挂单量分布。
订单簿深度有两个关键指标:
- 深度分布: 买一到买五、卖一到卖五的挂单量。如果买一只有10个币,卖一有1000个币,说明买方很弱,价格大概率会往下走。
- 深度斜率: 从买一到买五,挂单量是递增还是递减?正常市场应该是递增的,越远的价格挂单越多。如果出现倒挂,说明市场情绪极端。
注意: 有些交易所的订单簿数据是「快照」模式,不是实时推送的。你看到的深度可能已经过时了。我建议用WebSocket订阅增量更新,而不是轮询拉全量。
1.3 库存管理(Inventory Management)—— 别把自己做成了庄家
库存管理,是做市策略里最容易被忽视、但也是最致命的一环。你想想看,如果你一直买入,手里囤了一堆币,价格一跌你就亏;如果你一直卖出,手里没币了,价格一涨你就踏空。
我见过最惨的案例:一个做市团队,策略跑得很好,每天赚几千块。结果有一天市场突然暴跌,他们手里囤了50万个币,一天亏了200万。这就是典型的「赚小钱、亏大钱」。
库存管理的核心目标只有一个:让库存量始终围绕目标值波动。目标值可以是0(中性库存),也可以是你设定的某个比例。
常用库存管理方法:
| 方法 | 原理 | 适用场景 |
|---|---|---|
| 偏移报价法 | 根据库存偏离度,调整买卖报价 | 波动率较低的市场 |
| 对冲交易法 | 在期货或永续合约上做反向对冲 | 有衍生品市场的币种 |
| 限价单调整法 | 库存偏多时,降低卖价、提高买价 | 所有场景 |
我个人比较喜欢偏移报价法。具体怎么做?设定一个库存目标值,比如100个币。如果当前库存是150个币(超了50个),我就把卖单价格降低0.1%,把买单价格提高0.1%。这样卖单更容易成交,买单更难成交,库存自然就降下来了。
1.4 报价更新频率(Quote Update Frequency)—— 快鱼吃慢鱼
做市策略的报价更新频率,决定了你能不能抢到单子。你想想看,如果别人每100毫秒更新一次报价,你每1秒更新一次,那你的单子永远排在后面,永远吃不到肉。
但也不是越快越好。我记得有一次,我把更新频率调到了10毫秒一次,结果交易所的API限流了,直接把我封了半小时。嗯,这里要注意,交易所的API都有频率限制,你得先搞清楚上限是多少。
报价更新频率的选择,取决于三个因素:
- 市场波动率: 波动率越高,更新频率应该越快。比如比特币波动大的时候,我建议100-200毫秒更新一次。
- 交易所API限制: 大部分交易所允许每秒10-50次请求。别超了,超了会被封。
- 策略复杂度: 如果你的策略需要计算很多指标(比如订单簿深度、库存偏离度),更新太快可能算不过来。
我的经验: 对于主流币种(BTC、ETH),我一般用200毫秒的更新频率。对于小币种,500毫秒到1秒就够了。为什么?因为小币种的流动性差,你更新再快也没用,反而浪费资源。
知识体系总览
这四个模块不是孤立的,它们互相影响。比如价差太宽,你的库存可能一直不变;库存偏离太大,你又得调整报价;报价更新太慢,你又抢不到单子。所以做市策略本质上是一个多目标优化问题。
下面这张图展示了四个模块之间的关系:
做市策略不是简单的挂单撤单,而是一个系统工程。你需要同时考虑价差、深度、库存和更新频率,找到它们之间的平衡点。我建议刚开始做的时候,先用模拟盘跑一段时间,把每个模块的参数都调一遍,看看它们之间的相互作用。
最后提醒一句: 做市策略在牛市中看起来很美好,但在熊市中可能让你亏得怀疑人生。一定要做好风控,设置好最大库存上限和最大亏损限额。我曾经见过一个团队,牛市里赚了300万,熊市里一周亏了500万。嗯,这就是不做库存管理的下场。