Skip to main content
一筆一次性成交的大單要自行承擔它造成的衝擊:吃穿訂單簿,每一檔都比上一檔更差。TWAP 訂單把同樣的數量鋪在時間上,按固定間隔取走一片,讓訂單簿在兩片之間有時間回補。 代價是明確的。你接受執行窗口內的價格風險——慢慢做的過程中,市場可能走向不利方向——換來的是避開一次性完成的衝擊。

參數

由持續時間和間隔可得: N=持續時間間隔+1基礎分片=QNN = \frac{\text{持續時間}}{\text{間隔}} + 1 \qquad \text{基礎分片} = \frac{Q}{N} 啟動時立即發出一片,之後每隔一個間隔發出一片,窗口結束時再發一片。

啟動前的驗證

一筆 TWAP 按指定參數根本不可能完成的話,一開始就會被拒絕:
  • 每片必須大到能構成有效訂單——總量按排程切分後不能低於市場最小值
  • 每片不得超過市場的最大訂單數量
  • 全部數量必須滿足起始保證金
  • 若為只減倉,總量不得超過你目前的部位
在這裡提前失敗很重要。TWAP 跑到一半才發現分片低於最小值,會把你留在部分執行的狀態,沒有乾淨的收尾方式。

執行與追趕

每一片作為帶 3% 滑價邊界的市價單提交。由於執行由鏈上驅動而不是由系統時鐘驅動,每片落在間隔走完之後的第一個區塊上。 如果某一片成交低於預期——訂單簿薄、觸及滑價邊界——缺口不會遺失。排程會對照此刻本應到達的位置: 目標=t已用t總時長×Q\text{目標} = \frac{t_{\text{已用}}}{t_{\text{總時長}}} \times Q 實際成交落後於這個目標時,後續分片會放大以追趕:
成交不足
追趕
為什麼要有上限策略如果用越發越大的訂單來回應流動性缺失,最終就會變成它本想避免的那種衝擊。目標 = 已用時間 ÷ 總時長 × 總量
六片,總量 6.0 — 第 3 片在稀薄訂單簿上成交不足
第 1 片1.00
第 2 片1.00
第 3 片0.40
第 4 片1.20
第 5 片1.20
第 6 片1.20
基礎數量的 3 倍 — 上限
上限才是關鍵。追趕是好事,無限制的追趕不是:策略如果用「越發越大的訂單」來回應流動性缺失,最終就會變成它本想避免的那種衝擊。任何一片都不超過基礎數量的三倍,因此恢復是漸進的。 完全失敗的一片會被跳過並回報。策略不會暫停:流動性稀薄的瞬間出了一片壞單,不該拖住整筆訂單的其餘部分。

隨機化

開啟隨機化後,各片不再相同。在發出每一片之前,策略會計算剩餘量的平均值,並在這個平均值周圍的安全區間內取一個數量。 固定間隔上的固定數量是一種模式,而訂單流中的模式對任何盯著看的人都是資訊。隨機化去掉這種規律,同時不改變排程的總量。 剩餘數量的算術仍然是硬約束。隨機化只改變每片的大小;它不會讓策略超發,也不會在最後留下殘量。

什麼時候 TWAP 是對的工具

該用:訂單相對可見深度偏大、你有時間,而且「窗口內的平均價格」是可以接受的目標。 不該用:你現在就要這個部位的時候——TWAP 與緊迫性正好相反。心裡有一個具體價格的時候也不該用:TWAP 沒有價格目標,只有時間排程。如果價格比即時性更重要,階梯訂單會在一個價格區間上掛出限價單。
TWAP 不保證全部執行。分片是受滑價邊界約束的市價單,在持續單邊的行情裡可能反覆成交不足。追趕有上限,所以窗口收尾時市場已經走反的話,訂單可能剩下相當大一部分沒完成。

後續閱讀

階梯訂單

拆到價格上而不是時間上。

市價單

每一片所受的滑價邊界。

訂單簿

判斷你的訂單相對深度是否偏大。

手續費

每一片都是吃單訂單,都付吃單費率。