quant-lit進階課程 ▸ Lesson 6

進階課程 · Lesson 6

Lesson 6:交易成本與成交模擬

來源:Codex 製作

學習目標

1. 成本不是只有手續費

總交易成本可拆為:

commission / exchange fee
+ bid–ask spread
+ slippage
+ market impact
+ funding / borrow cost
+ taxes and regulatory fees
+ opportunity cost from non-fill

Explicit costs(顯性成本)通常較容易取得;implicit costs(隱性成本)則與流動性、訂單型態、波動、時間與部位大小相關。

2. Spread 與 slippage

若 mid price 為 100、bid 99.99、ask 100.01,立即買入的自然起點是 ask,不是 mid。立即買再賣,光 spread 就約損失 2 bps。

簡化 market fill:

buy_fill  = reference_price × (1 + slippage_bps / 10,000)
sell_fill = reference_price × (1 − slippage_bps / 10,000)

更好的模型可讓 slippage 隨 ATR、spread、participation rate 與 order size 增加。

3. Market impact 與 capacity

小額回測可把自己視為 price taker;資金增加後,訂單會改變成交價格。最小容量檢查:

participation_rate = order_shares / bar_volume

若策略假設在一分鐘內成交該 bar volume 的 30%,結果通常不可信。可先設定最大 participation rate,再把超額數量延後或判定未成交。

4. Limit order 的陷阱

Bar low 低於 buy limit,只代表市場曾到達該價格,不保證你的訂單排隊成交。還需要:

用 OHLC 回測 limit fill 時應保守。可以要求價格穿越 limit 一定幅度,或對觸價成交套用低於 100% 的 fill probability,再做敏感度分析。

5. 同 bar 停損與停利

某 bar 的 high 同時高於 take-profit、low 也低於 stop,OHLC 無法告訴你先碰哪個。處理方案:

永遠選對策略有利的順序會系統性高估績效。

6. 資產特有成本

7. 成本壓力測試

正式報告不要只給單一成本假設。至少比較:

情境 Fee Slippage Fill
樂觀 vendor/broker 最低值 100%
基準 實際近期中位數 受 volume 限制
壓力 2–3 倍基準 partial/non-fill

若 alpha 在成本增加少量後即歸零,策略較可能只是理論訊號,不具可執行性。

通關判準

你應能說明每筆交易的 reference price、spread、slippage、fee、成交量限制與未成交規則,並證明提高成本不會提升績效。

上一課Lesson 5