Skip to main content
訂單只要還沒完全成交,價格和數量都可以改。底下實際發生什麼,要看你改的是哪一項;而這個差別,對你在佇列裡的位置有實實在在的影響。

兩條路徑

這裡的「數量」指剩餘數量
修改請求
改了什麼?
僅減少數量原地修改 — 保留佇列位置
更改價格,或增加數量先撤單,再下新單 — 佇列位置消失
數量 10、已成交 4 的訂單,剩餘 6
改成 5 — 減少
改成 8 — 增加,儘管比最初的 10 小
撤單重下這條路徑有先後,但不是原子的只有撤單成功才會嘗試下新單,而新單仍可能因保證金失敗 — 結果是原訂單被撤銷,你卻沒有掛單在場上。
減少數量走原地修改。 訂單留在訂單簿原來的位置,優先順序也留著。沒有撤單,也沒有重新下單。 其他所有改動都是先撤單再下新單。 改價確實保不住你的位置:不同的價格就是訂單簿上不同的位置。增加數量則是另一回事——新增的那部分數量本來就沒排過隊,但已經掛著的那部分排過。目前不論如何都是整筆訂單重新下過,所以增加數量,連你在原有數量上已經排到的優先順序也一併賠掉。 這樣的劃分是刻意的,也和那些把每一次修改都當成撤單重下的場所不同。把訂單縮小,要的嚴格小於你已經拿到優先順序的那一部分,沒有理由為此讓你付出代價。

佇列位置為什麼重要

在某個價格檔位上,訂單按到達順序成交。排在檔位前面的訂單先於後面的成交;而在一個繁忙的檔位上,排最前面和排最後面的差別,就是成交和眼看著行情走掉的差別。 對造市商來說,這就是全部。縮小數量來管理風險、位置還留著,跟不得不重新排到那些在你猶豫時才到的人後面,是本質不同的兩件事。

這裡的「數量」指什麼

數量比較用的是剩餘數量,不是你最初提交的數量。 一筆數量 10、已成交 4 的訂單,剩餘 6。改成 5 是減少,走原地修改;改成 8 就是相對於 6 的增加,儘管 8 比最初的 10 小,還是走撤單重下。

撤單重下這條路徑可能部分失敗

一次修改走上撤單重下這條路徑時,兩個步驟有先後,但不是原子的:
  • 只有撤單成功,才會嘗試下新單。 你不會同時擁有兩筆。
  • 新單仍然可能失敗,最常見的是保證金原因,因為市場可能在兩步之間走掉了。
也就是說,有一種結果是可能的、也值得預先規劃:原訂單被撤銷,而替代訂單並不存在。 你不會被重複成交,但你也沒有掛單在場上。
有時效性的操作,一律不要假定修改已經成功。在按「你在那個檔位上仍有有效訂單」行事之前,先確認產生的訂單確實存在。

時機

原地減少數量在當前區塊內生效,不必等。 更改價格和增加數量走兩步路徑,並與任何撤單、任何新訂單適用同一套排序規則。撤單在撤單階段執行,先於同一區塊內的主動吃單;正因如此,和你的修改請求同時到達的訂單,打不掉你那筆過時的報價。 訂單有效期會延續:修改後的訂單保持相同的訂單有效期,對替代訂單一樣生效。

實務提示

  • 放心縮小。 成本低廉,也不損失任何優先順序。
  • 把改價當成一筆新訂單,因為它本來就是。
  • 程式化修改就用用戶端訂單 ID。 收到含糊的回應之後,你可以直接確認什麼確實存在,不必用推的。
  • 一次要改動好幾個欄位,就明確地撤單再重下:結果一樣,但失敗處理更清晰。

後續閱讀

訂單簿

價格優先、時間優先如何決定一個檔位內的成交順序。

交易排序

為什麼同一區塊內撤單先於主動吃單執行。

用戶端訂單 ID

在收到含糊回應之後確認什麼確實存在。

訂單類型

訂單有效期,以及修改後哪些屬性會延續。