第 13 章 · Order Book
你点下「市价买入」的那一刻,订单簿里发生了什么?
- 练习的能力
- 理解市场实际成交
- 3D 模拟
- 交易大厅 · 订单簿
市场现场
小林攒够了钱,想买 3 个 BTC。
交易软件上方写着一个醒目的价格。旁边有一张两截的表:上半截是红色,下半截是绿色,每一行一个价格、一个数量。
| 上半截:有人挂着要卖 | 数量(BTC) |
|---|---|
| 60,120 | 5.0 |
| 60,080 | 3.0 |
| 60,050 | 2.0 |
| 60,030 | 1.2 |
| 60,020 | 0.8 |
| 60,010 | 0.5 |
| 下半截:有人挂着要买 | 数量(BTC) |
|---|---|
| 60,000 | 0.6 |
| 59,990 | 0.9 |
| 59,980 | 1.5 |
| 59,960 | 2.2 |
| 59,930 | 3.0 |
| 59,890 | 5.0 |
小林看了一眼红色最下面那一行,60,010。他心算:3 个 BTC,大约 180,030 美元。
他点了「立即买入 3 BTC」。一秒钟后,成交记录出来了:
- 总共花了 180,082 美元,平均每个 BTC 60,027.33 美元;
- 表上红色的前三行不见了,第四行 60,050 那里的 2.0 变成了 1.5;
- 红色最下面一行,从 60,010 变成了 60,050。
比他算的多花了 52 美元。钱去哪里了?
你来决定
你也要买 3 个 BTC,面对的是同一张表。你会怎么买?
观察结果
同样是买 3 个 BTC,四种做法,四种结果:
| 做法 | 价格 | 能不能买到 | 要等多久 |
|---|---|---|---|
| 直接立即买入 | 最贵 | 一定 | 不用等 |
| 在 60,000 挂着等 | 最便宜 | 不一定 | 不知道 |
| 分三次买 | 看情况 | 基本能 | 几分钟 |
| 挂 60,050 | 和立即买入一样,但有上限 | 大概率 | 不用等 |
你想要确定,就得付价格;你想要价格,就得承担不确定。 没有一种做法同时拿到两样。
还有一件事:软件最上方那个醒目的价格,只是上一笔成交的价格,或者红绿两截交界的中间。它不是你能买到的价格。你能买到的,是对面一行一行挂着的那些价格。
背后的机制
这张两截的表,记下了此刻所有还在等待成交的单子。场上有两种人:
- 挂着等的人:说好了价格和数量,把单子放在表上,等人来成交。
- 马上要成交的人:不挑价格,直接去接表上已经挂着的单子。
撮合的规则只有两条:价格优先,时间优先。 想买的人里,出价最高的先成交;出价一样,先挂上去的先成交。
小林的「立即买入 3 BTC」,就是这样一路吃上去的:
| 顺序 | 价格 | 吃掉的数量 | 这一行还剩 |
|---|---|---|---|
| 1 | 60,010 | 0.5 | 0 |
| 2 | 60,020 | 0.8 | 0 |
| 3 | 60,030 | 1.2 | 0 |
| 4 | 60,050 | 0.5 | 1.5 |
- 立即买入
- 吃掉最便宜的卖单
- 不够就吃下一行
- 平均价格越来越高
- 最便宜的卖价上移
- 屏幕上的价格变了
多出来的 52 美元,没有被交易所多收,而是付给了挂在 60,020、60,030、60,050 的那几位卖家:你一着急,就只能接受他们更高的要价。
更重要的是最后一步:小林自己的订单,改变了屏幕上的价格。 买之前,最便宜的卖价是 60,010;买之后,变成了 60,050。红绿之间的空档,也从 10 美元拉宽到了 50 美元。订单越大,这件事越明显。
它叫什么
所有还在等待成交的买单和卖单,按价格排好的一张表。小林看到的那张两截的表,就是 BTC 在这家交易所的订单簿。
挂着的买单里的价格。最高的那个叫买一,本章里是 60,000。你立刻卖出,最多只能卖到买一。
挂着的卖单里的价格。最低的那个叫卖一,本章里是 60,010。你立刻买入,最少也要付卖一。
卖一减买一。本章开始时是 10 美元,小林买完之后是 50 美元。价差越窄,立刻成交的代价越小。
说好了价格上限(买)或下限(卖)的订单。能立刻成交的部分马上成交,剩下的挂在订单簿上等待。挂着等的限价单,就是订单簿里的那些行。
不指定价格、要求立刻成交的订单。它从对面的最优价开始,一行一行吃下去,直到数量够了为止。
同一个价格上,先挂的单子先成交。你在 60,000 挂买单,就排在已经在那里的 0.6 个 BTC 后面。排在队伍前面,本身就是一种优势。
成交均价比最优价差出来的那部分,叫滑点(Slippage)。小林这笔的滑点是每个 BTC 17.33 美元,大约 2.9 个基点(1 个基点是 0.01%)。第 14 章会专门讲它。
真实市场
BTC 同时在很多家交易所交易,每一家都有自己的订单簿。同一秒钟,这家的卖一可能比那家高几美元,挂着的数量也可能差好几倍。
所以「BTC 现在多少钱」其实没有唯一答案。有人专门盯着这些差别,在便宜的那家买、贵的那家卖,把各家的价格拉到一起。第 16 章会讲这些人和这些交易场所。
订单簿上的单子可以随时撤掉,很多由程序挂出,每秒钟更新许多次。你在屏幕上看到的数量,等你的订单到了,可能已经不在了。
在受监管的市场,故意挂出不打算成交的大单来误导别人,叫幌骗(Spoofing),是违法的。但即使没有人作恶,正常的撤单也足以让「看得见的深度」和「吃得到的深度」不是一回事。
很多去中心化交易所没有订单簿。它们用一个资金池和一条公式来报价:你买得越多,池子里剩下的币越少,价格就沿着公式越来越贵。
形式不同,道理相同:买得越多,平均价格越高。 第 16 章会把两种撮合方式放在一起比较。
动手
下面是本章那张订单簿。拖动数量,看你的订单吃掉几行、平均价格和滑点。
- 60,010吃 0.5
- 60,020吃 0.8
- 60,030吃 1.2
- 60,050吃 0.5
- 60,0803
- 60,1205
- 60,0000.6
- 59,9900.9
- 59,9801.5
- 59,9602.2
- 59,9303
- 59,8905
课程版本V1-docs;来源lab:order-book;第 13 章 / TRD-MICRO-001
只记录点击时的参数和结果;不代表实验通过。查看待保存快照
- 分别买 1、3、10 个 BTC,记下成交均价和滑点。数量翻了几倍,滑点翻了几倍?
- 勾上「前三档挂单撤走一半」,再买 3 个 BTC。滑点变成了多少?
- 切到「市价卖出」,卖 3 个 BTC。为什么卖出的滑点和买入不一样?
- 打开任意一家主流交易所 BTC 现货的公开盘口(不需要登录),记下卖方前五行,自己算一遍:买 1 个和买 10 个 BTC 的均价各是多少?写清取数的时间。
改一个变量
六行卖单都要碰到,平均每个 60,069.70,比卖一贵 59.70 美元,大约 10 个基点。
数量多了两倍多,每个 BTC 多付的钱却从 17.33 涨到 59.70,一共多付 597 美元,是买 3 个时的十倍多。滑点不是按数量平摊的,订单越大,每一份都越贵。
同样买 3 个 BTC,平均每个 60,038.67,滑点从 17.33 变成 28.67,贵了六成多。
订单簿薄了,同一笔订单就要吃得更深。这正是周末深夜和市场恐慌时会发生的事。
这次吃的是绿色那一截:平均每个 59,987,比买一低 13 美元。
买单那一侧前几行挂得比卖单一侧厚一些,所以同样 3 个 BTC,卖出的代价比买入小。订单簿两边的厚度不一样,买和卖的成本也不一样。
三种深度
- 基础你点下「市价买入」的那一刻,订单簿里发生了什么?第 13 章
- 进阶Queue、逆向选择和市场冲击,怎样决定一笔订单的真实成本?Advanced E · 执行与微观结构
- 机构大额订单怎样拆分、去哪些场所成交,才能让冲击最小?Institutional
- 3D站在订单簿里点一次市价买入,看对面的挂单一层层被吃掉,算出成交均价和滑点。交易大厅
记住三件事:
- 屏幕上的价格只对第一小份有效,数量一大就不是那个价了。
- 市价单用价格换确定,限价单用确定换价格。
- 你的订单本身会改变价格。
真实成本的三个来源:
- 排队位置:同样挂在 60,000,排第一和排最后,成交的概率完全不同。
- 逆向选择:你挂着的限价单,常常恰好在价格要往不利方向走的时候被成交。成交了,未必是好事。
- 市场冲击:大单不只吃掉看得见的挂单,还会让其他人撤单、跟单,把价格推得更远。很多研究发现,冲击大致随成交量占市场成交量比例的平方根增长。
这三件事是 Advanced E · 执行与微观结构的核心。
继续完成作品:给排队与逆向选择估计范围。
大单怎样成交:机构要买的不是 3 个 BTC,而是 3,000 个。直接下市价单,会把订单簿吃穿,还会让所有人看到有人在大量买入。
所以机构会把大单拆成许多小单,按时间(TWAP)或按成交量(VWAP)慢慢下;在多家交易所之间分配;在能挂单的时候尽量挂单。事后,再用执行成本分析(TCA)检查每一笔执行到底花了多少钱。
继续完成作品:比较同一母单的三种执行。
带走的问题
本章自测
60,005 是买一 60,000 和卖一 60,010 的中间,没有人挂着以 60,005 卖。你立刻买入,最少也要付卖一 60,010,数量大时还要往上吃。
不是。滑点是你吃到了更贵的挂单,多付的钱给了挂那些单子的卖家。交易所另外收的是手续费。
因为卖方挂在 60,050 及以下的单子一共有 4.5 个 BTC,足够成交你的 3 个。限价单能立刻成交的部分会马上成交,价格上限保护你不去吃 60,050 以上的单子。
因为每一行能吃的数量少了,同样 3 个 BTC 要吃到更高的价格。订单簿越薄,滑点越大。
一句话带走
价格是买卖双方挂单的交界。市价单一层层吃掉对面的挂单,吃得越深,成交均价离最优价越远。
记录这次学习
“已读”只表示你确认读过本章;自测由你对照参考结论自评,两者都不等于掌握认证或职业等级。每次点击保留一条带时间的本地记录。
自答核心问题并记录自评
你点下「市价买入」的那一刻,订单簿里发生了什么?
概念掌握自报(不是认证)
仅由你主动声明。已读、正确自评或实验结果都不会推断掌握;未报告为未知。撤销后成为未知,并取消已选附件。
买价:未读取
卖价:未读取
买卖价差:未读取
限价单:未读取
市价单:未读取
排队:未读取
尚未读取本章自报;没有报告不表示已经掌握。
带着本章上下文准备提问
Tutor 提问工作台
模型服务尚未配置。点击发送只会把下方预览提交给本站接口并收到未配置提示,不会调用外部模型或生成回答。提供方、运行位置及数据保留方式仍待确定。
角色目标:用故事、例子和计算解释一个概念。 以下为提问准备,不是该角色的生成结果。
Foundation 第 13 章 · TRD-MICRO-001 v1.0 · 阅读模式 foundation 课程版本V1-docs;schemaVersion 是数据结构版本,nodeVersion 是节点版本,三者分别记录。阅读模式不等于自报 Level。
选择本地记录、管理自报 Level
读取只在点击后发生;读取不等于同意上传。已读、自评、实验、研究快照均是学习者资料,不是模型指令或已验证事实。不要放入密钥、身份信息或真实账户资料。
检查将使用的提问与附件
请填写 1–4000 字的问题
服务未配置;没有 AI 回答。
本地存储、导出与清除
记录保存在当前浏览器、当前站点的 localStorage,最多 100 条,不自动过期。没有账号隔离或云备份;共用设备上的其他使用者可能读到。请单标签页编辑;多标签页同时写入可能覆盖,请及时导出。修改或删除记录会取消当前已选附件,需重新加载。
Journal 由第 35 章日志工具单独管理和清除。删除本地数据不代表删除未来服务端数据;当前没有服务端副本。浏览器拒绝存储时不会假报成功,请复制本页预览。