股票市場的交易系統是如何撮合交易的?
此處我做幾個假設:
1.比如,我掛單賣出每股10塊的工商銀行500股。此時,另外有人掛單買入10塊的工商銀行200股,再有另外一人掛單買入10塊的工商銀行300股。交易系統會將兩人的買單加再一起和我成交嗎?2.比如,我掛單賣出每股10塊的工商銀行500股。系統需要一直等待有人掛單買入10塊的工商銀行500股時,才會撮合掛入買單的此人與我成交?3.比如,我掛單賣出每股10塊的工商銀行4000股。但是有人掛單買入10塊的工商銀行500股,此時,我會被成交嗎?會出現成交了500股,剩下的3500股沒有被成交的情況嗎?或者有沒有什麼網站或另外的渠道可以具體了解到股票交易系統撮合交易的細節?
每個交易所的規定可能不一樣, 但是大多數的差不多, 都是遵從」價格優先, 時間優先「的原則
所謂價格優先,以買方為例子,就是誰出的價格高, 誰就優先與賣方撮合。
所謂時間優先,就是是相同的出價下, 誰報單早, 誰就優先被撮合。
單子一般分為限價單和市價單兩種(limit order, market order)。
你提到的「掛單」賣出500股工商銀行@10塊錢,就是一個限價單。 主要有四個信息,方向(買還是賣),證券(工商銀行股票),數量(500股), 價格(10塊錢)。 當市場有很多你樣的「掛單者」的時候, 就形成了orderbook。
。。。
賣2 10.02 2000
賣1 10.00 3200
買1 9.98 2800
買2 9.96 800
。。。
買1一定小於賣1,不然交易所就直接撮合成交了。你的500股工商銀行@10塊錢就在這個「賣1」裡面, 同時還有其他2700股單子是別人的, 至於誰先成交,就看你們誰報單早了。 這些掛單者給市場提供了流動性, 因為本質上這些掛單者互相不成交, 而是等待那些沒有反應在orderbook上的投資者來交易,(有點像一群明碼標價站街妹等待嫖客來挑選), 所以我們也稱這些掛單者為市場提供了流動性。
其他的投資者可以下市價單或者掛有交叉價格的限價單(cross )來立馬買入。
比如投資者下個市價單, 買入700股工商銀行(注意,市價單不用說價格), 那麼這掛著的3200股工商銀行就會有700股以10塊錢的價格成交。
如果投資者下個市價單,買入3500股工商銀行。 那麼,會有3200股以10塊錢成交,餘下300股以10.02成交。 Orderbook就會變成如下的樣子。
。。。
賣1 10.02 1700
買1 9.98 2800
買2 9.96 800
。。。
如果投資者掛500股@9.99塊錢的限價單,那麼不好意思。。成交不了, 但是他的報單會成為新的買1, 並且比9.98的買家有更高的優先順序等待別人成交。
如果投資者特意掛了超過賣1價格的買單限價單(如果交易所允許),比如買入800股 @10塊錢,那麼也會立刻成交。 和市價單的區別在於,如果投資者掛了買入3500股工商銀行@10塊錢, 那麼僅僅有3200股會以10塊錢成交, 另外300股會變成新的買1 掛在orderbook上,變成下面的樣子。
。。。
賣1 10.02 2000
買1 10.00 300
買2 9.98 2800
買3 9.96 800
。。。
至於你提的三個問題, 需要滿足幾個假設才能繼續討論下去。 1 市場上的買1價格小於10塊, 不然你的單子一掛出去,就立馬成交了。 2 市場的賣1 就是你掛的單,沒人比你賣價更低。 否則, 你就要在後面排著。就算別人掛了10塊錢的買單也無法和你成交。
針對你提的問題
首先每個人報單的時候都有一個報單ID。 我們前面舉的例子都是撮合之後對orderbook的影響,但是實際上,交易所的撮合是報單與報單的撮合。 我把你的這個問題舉個更一般化的例子。 報單情況如下
目前市場最優賣單是10.02元
這時候隔壁老王先掛了一個150股@10塊錢賣單, 單號444
緊接著你在隔壁老王之後掛另一個500股@10塊錢的賣單, 單號666
市場上的最優賣單變成了10元。
過了一會來了買家A 報了10元的限價買單,300股, 單號777
又來了買家B報了10元的限價買單, 200股, 單號888
這時候,交易場的撮合是這樣的
1、 撮合單號444和777, 150股, 10元 (你可以認為買家B來之前其實就已經撮合了)
2、撮合單號666和777, 150股, 10元
3、 撮合單號666和888, 200股, 10元
這解答了你的問題1, 你和A及B的單子是分別撮合的。 同時也說了另外一個問題, 不是說有人願意出10元買500股,你就能把500股全部成交, 你還要和隔壁老王比較時間上的優先順序。
針對你的問題2, 如果你把單子掛出去了,是要一直等待一個出市價單或者掛超過10塊限價單」嫖客「(比如A和B)的出現,把你的單帶走。
也解答了問題3, 你的500股是部分成交的, 這個例子中你成交了350股,還有150股在市場上掛著。 你想到的其他可能是兩個變種的單, FAK和FOK (fill and kill, fill or kill). 把你問題三的場景換個順序, 你看到市場有人掛單要以10塊買入500股工商銀行, 你下一個10塊錢買入4000股的FAK單。 那麼這個單會買入500股(fill)的同時, 撤掉另外3500股的單(kill)。 如果你下的是FOK單, 因為你沒法全部成交買到4000股(fill),所以馬上就撤單(kill)。
如果有興趣了解更多細節,請參閱《Trading and Exchanges》
問題1:你的訂單分別與另外兩人的200股,300股成交
問題2:是的,只要買價&>=賣價就可以成交
問題3:會有
你需要了解一個東西叫orderbook,所有的撮合過程都是基於它的。
我本科的畢業設計就是一個撮合引擎,還是挺有意思的
舉例子回答你的問題吧,你10點掛了500手買單後,11點甲掛了100手賣單,則成交100手。14點乙又掛了100手賣單,則再成交100手。如果之後沒有人在掛賣單了,則你的500手買單成交了200手,剩下的300手沒有成交。總之,系統是按每手股票為單位確認成交的,和單是誰掛的及掛多少沒關係。通俗的講就是你派出100個人,我也派出100個人,在系統裡面都是按人頭站在操場上的,系統是不會管是誰派出的人。然後有人進來領人了,系統會按照要求給他們人,對方要50個人就給50個人,要100個人就給100個人,要200個人就給200個人,要300人則只能給200人,因為操場上只有200個人。
我告訴你一個細節,在股票裡面是有部分成交這種現象的。當你追高買入的時候,比如10塊買入1000股,恰好你只買到了500那麼剩下的500會繼續等待,你撤單的時候有顯示,會提示你已經部分成交。還有就是成交順序問題,價格優先,時間,之後是數量。比如你買入股票,10.01元那麼你肯定比出價10的人先買到,當然如果有人比你下單早(賣單)他的價格低於10那麼也是你優先成交,實際操作沒這麼複雜。多理解吧
答案是3
推薦閱讀: