1. 订单簿基础:什么是订单簿?
做量化交易这些年,我见过不少新手一上来就盯着K线图猛看,却忽略了最底层的东西——订单簿。说实话,这就像学开车却不懂仪表盘,迟早要出事。
订单簿是什么?说白了,它就是交易所用来记录所有买卖挂单的电子账本。你想想看,当你在交易软件上看到买一、卖一、买二、卖二那些数字时,你看到的就是订单簿的“快照”。
我个人习惯把订单簿比作一个“菜市场”。买方是举着牌子喊价的人,卖方是等着卖菜的人。每个摊位(价格)上,有人想买多少斤(数量),什么时候来的(时间),全记在这个本子上。
1.1 限价单 vs 市价单
这两个概念,我建议你一定要分清楚。我在项目中遇到过不少因为混淆这两者而亏钱的案例。
| 类型 | 含义 | 成交方式 | 风险点 |
|---|---|---|---|
| 限价单 | 指定一个价格,只在这个价格或更优价格成交 | 挂单等待对手盘 | 可能无法成交(价格没到) |
| 市价单 | 不指定价格,按当前最优价立即成交 | 立即吃掉对手盘 | 可能滑点(价格波动大时) |
举个例子。假设BTC当前买一价30000,卖一价30001。你下了一个限价买单,价格设29999。那你就得等着,等有人愿意29999卖给你。而市价单呢?直接按30001成交,一秒都不耽误。
核心区别一句话:限价单控制价格但不保证成交,市价单保证成交但不控制价格。
嗯,这里要注意。很多新手觉得市价单方便,就无脑用。我曾经见过一个交易员,在流动性极差的山寨币上用了市价单,结果滑点高达5%,直接亏掉一周的利润。所以我的建议是:大单用限价,小单用市价,流动性差时千万别用市价。
1.2 订单簿的三大构成要素
订单簿看起来复杂,其实核心就三个东西:价格、数量、时间。我管它叫“订单簿三要素”。
1. 价格
价格是订单簿的“骨架”。每一档价格,都对应着一堆挂单。买方的价格从高到低排列,卖方的价格从低到高排列。中间那个空隙,就是买卖双方的“心理博弈区”。
为什么会这样?因为买方当然想低价买,所以出价高的排在前面;卖方想高价卖,所以出价低的排在前面。这是最朴素的供需逻辑。
2. 数量
数量是订单簿的“血肉”。它告诉你每个价格上有多少筹码。我习惯看两个东西:一是每个价位的挂单量,二是累计挂单量。比如卖一挂了100个,卖二挂了200个,那想买300个就得吃掉两个价位。
实战技巧:我个人习惯用“深度图”来快速判断市场支撑和压力。如果某个价格附近挂单量突然暴增,那大概率是个关键位置。我曾经靠这个在ETH上抓到过几次不错的反弹机会。
3. 时间
时间决定了“先来后到”。在同一个价格上,先挂单的先成交。这就是所谓的“价格优先、时间优先”原则。
你想想看,如果两个人都挂30000买BTC,你早挂1秒,你就排在他前面。行情一来,你先成交。所以有些高频交易者会拼命优化网络延迟,就是为了抢那几微秒的时间优势。
1.3 订单簿的核心逻辑
为了让你更直观地理解,我画了一张图。这张图展示了订单簿的完整结构和工作流程。
这张图里,左边是买方,右边是卖方。中间那个黄色的区域就是“价差”——也就是买一和卖一之间的价格差。价差越小,说明市场流动性越好。我一般看到价差超过0.1%的币种,就会格外小心。
1.4 订单簿事件驱动
好了,现在你知道了订单簿长什么样。但真正做策略时,我们不是看静态的订单簿,而是看订单簿的变化。每一次新订单进来、撤单、成交,都会触发一个“事件”。
这些事件包括:
- 新增订单:有人挂了新单子,订单簿上多了一行
- 撤单:有人取消了挂单,订单簿上少了一行
- 成交:买卖双方匹配成功,订单簿上的数量减少或消失
- 更新:订单部分成交,数量发生变化
我举个例子。假设你监控到卖一突然从30001撤走了0.5个BTC,紧接着买一从29999跳到了30000。这说明什么?说明有人在故意撤单制造假象,或者有大资金在吸筹。这种事件驱动的思路,就是我们后面做策略的核心。
避坑指南:我曾经犯过一个错误——只盯着成交数据看,忽略了撤单数据。结果发现有些“大单”其实是假的,挂上去又撤掉,专门引诱散户跟风。后来我学乖了,撤单率超过30%的订单,我基本当它不存在。
1.5 小结
这一章我们聊了订单簿的基础。记住三个核心点:
- 订单簿是交易所的“实时账本”,记录所有买卖挂单
- 限价单控制价格,市价单保证成交,各有优劣
- 价格、数量、时间三要素,缺一不可
下一章我们会深入订单簿事件的具体类型,以及如何用Python实时监听这些事件。到时候我会拿出我实际项目中用过的代码,一步步带你搭建事件监听框架。
公众号:蓝海资料掘金营,微信deep3321