第二章 自动化做市基础:核心要素、订单簿结构与价差深度
做市自动化,说白了就是把我们脑子里那套「低买高卖」的规则,写成代码让机器去跑。但这里有个坑——很多人一上来就写策略,结果订单簿都读不对,价差算不准,最后亏得莫名其妙。今天我就带你把这几个基础打扎实。
2.1 自动化做市的核心要素
我个人习惯把做市系统拆成三个模块:数据层、决策层、执行层。你想想看,这不就是人的操作流程吗?先看行情,再想怎么报价,最后下单。
核心三要素:
- 报价引擎:决定在什么价格挂买单和卖单
- 库存管理器:控制你手里有多少币/股,避免被砸穿
- 风险控制器:设置最大亏损、最大持仓等硬约束
我在项目中遇到过最典型的案例:一个团队报价引擎写得很好,但库存管理器没做。结果行情单边上涨时,他们不断卖出,最后手里一张单子都没有,眼睁睁看着行情飞。嗯,这就是典型的「赚了手续费,亏了方向」。
2.2 订单簿结构——你得看懂战场地图
订单簿就是交易所的实时挂单列表。左边是买单(Bid),右边是卖单(Ask)。中间那个缝隙,就是买卖价差。
我习惯用Python把订单簿拉下来,结构大概是这样的:
# 一个典型的订单簿数据结构
order_book = {
'bids': [ # 买单,按价格从高到低排列
{'price': 100.5, 'size': 10.0},
{'price': 100.4, 'size': 25.0},
{'price': 100.3, 'size': 15.0},
],
'asks': [ # 卖单,按价格从低到高排列
{'price': 100.6, 'size': 8.0},
{'price': 100.7, 'size': 20.0},
{'price': 100.8, 'size': 12.0},
]
}
这里有个细节:买单是降序,卖单是升序。为什么?因为买一(最高买价)在最上面,卖一(最低卖价)也在最上面。这样你一眼就能看到当前最优报价。
避坑指南:我曾经在对接某个小交易所时,发现它的订单簿返回顺序是乱的。后来加了排序逻辑才搞定。所以拿到数据后,永远先检查排序,别信文档。
2.3 买卖价差——做市商的饭碗
价差(Spread)就是卖一价减去买一价。做市商赚的就是这个差价。但价差不是固定的,它受很多因素影响。
| 市场状态 | 典型价差 | 做市策略 |
|---|---|---|
| 高流动性(如BTC/USDT) | 0.01% - 0.05% | 薄利快跑,高频挂单 |
| 中等流动性 | 0.1% - 0.5% | 适当放宽价差,控制库存 |
| 低流动性 | 1% - 5% | 谨慎报价,避免被吃单 |
我个人习惯用这个公式算理论价差:
# 理论价差 = 手续费 * 2 + 风险溢价
spread = (taker_fee * 2) + risk_premium
为什么是手续费的两倍?因为你挂单成交要付手续费,撤单也要成本。风险溢价则是你承担库存风险的补偿。说白了,价差不够覆盖成本,那就是在给交易所打工。
2.4 深度——你能吃下多少单子
深度(Depth)就是订单簿上各个价位的挂单量。深度越厚,市场越不容易被大单打穿。
我常用「深度图」来评估市场质量。你可以用Python画一个简单的累计深度:
def calculate_depth(order_book, levels=10):
"""计算前N档的累计深度"""
bid_depth = sum([b['size'] for b in order_book['bids'][:levels]])
ask_depth = sum([a['size'] for a in order_book['asks'][:levels]])
return bid_depth, ask_depth
# 示例
bid_depth, ask_depth = calculate_depth(order_book, levels=5)
print(f"买五档深度: {bid_depth:.2f}, 卖五档深度: {ask_depth:.2f}")
注意:深度不是越大越好。我在一个山寨币上见过深度很大的订单簿,但全是机器人挂的虚假订单。一撤单,深度瞬间缩水90%。所以要看真实成交深度,别被表面数字骗了。
2.5 知识体系总览
下面这张图是我自己总结的自动化做市基础框架。你把它理解了,后面写策略就有方向了。
这张图把今天讲的内容串起来了。你从核心三要素出发,理解订单簿怎么读,再算价差和深度,基本就能上手写一个简单的做市机器人了。
我的建议:刚开始别想着做全自动。先写一个半自动的——机器帮你算价差和深度,你手动确认报价。跑一周,把坑踩一遍,再慢慢放开控制权。
好了,这一章就到这里。记住:订单簿是战场地图,价差是你的利润空间,深度是你的安全垫。这三个东西搞不明白,后面写再多策略都是白搭。
公众号:蓝海资料掘金营,微信deep3321