结构
价差
最优卖价
50,000 − 49,950 = 50中间价 49,975
最优买价
一笔 1.0 的市价买单0.2 成交在 50,000
0.3 成交在 50,100
0.5 成交在 50,200均价约 50,130,不是盘口挂出的
50,000。这段差额正是市价单
不会摆在你面前的成本。
0.3 成交在 50,100
0.5 成交在 50,200均价约 50,130,不是盘口挂出的
50,000。这段差额正是市价单
不会摆在你面前的成本。
卖单 — 卖方
买单 — 买方
优先级
订单按价格优先,其次时间优先成交。 价格很直白:出价高的买方排在出价低的前面。时间才是这里和多数场所不一样的地方。 “时间”指你的订单在已提交区块序列中的位置——不是它到达某个节点的时刻。 同一区块内的两笔订单也有先后,而这个先后每个验证者都能从共识已经确定的数据里算出来,结果完全一致。网络离得再近也改变不了。区块之间,到达时间仍然重要;区块之内,微秒级的竞赛不存在。 排序规则进一步强化了这一点:同一区块内,撤单先于主动吃单执行,所以过期报价撤得回来,不会被同一时刻到达的订单吃掉。提交前先读深度
你看到的报价是最优买价和最优卖价。如果你的订单大于挂在那里的数量,它们不是你能拿到的价格。 沿着上面那张订单簿的卖单侧往下走:
一笔 0.2 的市价买单全部在 50,000 成交。一笔 1.0 的市价买单会吃穿三档——平均价格约 50,130,而不是盘口显示的 50,000。
所以市价单会带一条边界,由“你这笔数量实际会吃掉多少深度”推导出来;也所以把大单拆到时间或价格上,通常比一口吃掉更便宜。
订单相对订单簿偏大时,提交之前有个习惯值得养成:算出你这笔数量会触到的最差价格,别只看盘口。两个数字之间的差,就是市价单藏起来的成本。
价格是整数
订单簿价格是该市场最小价格变动单位(tick size)的整数倍,数量是最小数量单位(lot size)的整数倍。执行路径上没有浮点数——两个节点之间只要有一处舍入不一致,就是一次分叉。参见精度。订单簿看不到什么
条件单不在订单簿上。止损、止盈和其他条件单存在另一个盯着价格的存储区里。触发之前,它们不占队列位置,也不贡献深度。 实际后果是:行情快速变动时,真实深度可能比订单簿显示的更薄——价格一穿过一簇触发价,就会把一批看不见的订单同时变成真实订单,而且全在同一侧。后续阅读
订单类型
你能往订单簿上放什么,以及什么会挂着、什么会吃掉流动性。
市价单
由深度推导出的边界如何保护一笔市价单。
交易排序
为什么同一区块内撤单胜过主动吃单。
撮合
订单簿在内核中如何组织与遍历。