两种人,两种命
面对买一10.00、卖一10.01的那道缝,每个交易者只有两种姿态:要么跨过缝,接受对方的价格立刻成交;要么挂进队伍,报一个自己的价格,等别人来跨。这一章讲第二种人用的武器——限价单(limit order):"我要买,但我最多出10.00,一分钱不多给。"
限价单是订单簿的建筑材料。墙上贴的每一张纸条都是限价单,买一卖一、深度、价差,全是限价单堆出来的。理解撮合,一半是理解限价单怎么排队。
八个字的铁律:价格优先,时间优先
全世界的连续竞价交易所,排队规则归根结底就八个字:价格优先,时间优先。
价格优先:买单里出价高的排在出价低的前面;卖单里要价低的排在要价高的前面。所以"买一"永远是当前最高买价——谁出得高,谁站墙顶。这条几乎没争议,因为它就是"拍卖"的直觉。
时间优先:同一个价格上,先到的先成交。10.00元上排着三张买单:甲的500股(9:30:01到)、乙的300股(9:30:02到)、丙的1000股(9:30:05到)。这时来一张卖出600股的市价单,成交价10.00,前500股给甲(甲的单全部成交、离开队列),剩下100股给乙(乙的单成交100股、还剩200股继续排头)。丙的1000股一股没轮上——哪怕他的单子最大。
这套规则合起来叫价格-时间优先(price-time priority),也叫FIFO(先进先出)。它是目前主流交易所(A股、美股、期货、绝大多数加密货币交易所)的默认规则。也有例外——比如部分期货市场用按比例分配(pro-rata),同价位的单按大小分蛋糕——但那是少数派,本书以FIFO为主线。
大白话:横向比价格,谁的条件好谁站前面;同价竖着比时间,谁先到谁先走。队列头的人永远先成交,后面的人只能等。
为什么你的单子总是排在别人后面
理解了规则,再看真实盘口,你会产生一种憋屈:你想在10.00买,发现前面已经排了2400股;等轮到你,黄花菜都凉了。你加价到10.01抢跑?那你已经跨过了缝,等于直接买卖一,排队就白排了。
这就是限价单的核心博弈,一笔明算账:
- 挂单(排队)的好处:你按自己的价格成交,不吃价差。买在买一、卖在卖一,一进一出比对手省一个缝。很多交易所还给挂单方手续费返佣(第八章讲maker/taker),等于交易所贴钱请你来排队。
- 挂单的代价:你可能成交不了。价格掉头走了,你的单在墙上风干。更微妙的是一种叫逆向选择的风险:你的买单终于轮到成交的那一刻,往往是有聪明人急着卖出的那一刻——他为什么急着卖给你?也许他知道一些你还不知道的事。排队排到了,不一定是好事。
所以"挂在哪里"是一门权衡:挂得离缝越近,成交概率越大,但被聪明人"挑中"的逆向选择风险也越大;挂得越远越安全,但可能永远轮不到。做市商(专门靠双边挂单赚价差的人)整天就在算这笔账。
改单=重新排队,这是很多人不知道的坑
你挂了10.00买1000股,排在队尾。过了一会儿你想改成1005股——只加5股,队位还在吗?
不在了。绝大多数交易所的规则是:改数量(部分市场改小不改大除外)、改价格,都视为撤掉旧单、挂入新单,时间戳重新算,回到队尾。唯一普遍不改队位的操作是减少数量(只减不增),因为你没有占任何人便宜。
这条规则的逻辑很硬:队位是用"先到"换来的资产。如果允许改大数量还不丢队位,我可以用一张1股的小单占住队首,等行情来了再悄悄改成100万股——等于免费插队。堵死这个漏洞的办法就是一刀切:任何让订单变得更"占便宜"的修改,都重新排队。
大白话:队列位置是用到达时间换来的。你可以主动放弃(撤单、改单),但系统绝不允许你拿着旧队位换新条件。写撮合系统时,cancel/replace 基本等于 cancel + new。
这章给写系统的人留下了什么
三个必须实现的机制,先记下来:
- 每个价格档位内部是一条严格按到达顺序的FIFO队列,撮合永远从队首开始。
- 撤单是把订单从队列里摘出去;改价和增量改单 = 撤旧 + 挂新。
- 部分成交后,剩余部分保留原队位继续排(前面甲成交完离场、乙剩的200股继续排头,就是这个规则)。
下一章换边站:看看不愿意排队的人——市价单——是怎么跨过那道缝的,以及跨过去的时候会发生什么。