進階課程 · Lesson 6
總交易成本可拆為:
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(隱性成本)則與流動性、訂單型態、波動、時間與部位大小相關。
若 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 增加。
小額回測可把自己視為 price taker;資金增加後,訂單會改變成交價格。最小容量檢查:
participation_rate = order_shares / bar_volume
若策略假設在一分鐘內成交該 bar volume 的 30%,結果通常不可信。可先設定最大 participation rate,再把超額數量延後或判定未成交。
Bar low 低於 buy limit,只代表市場曾到達該價格,不保證你的訂單排隊成交。還需要:
用 OHLC 回測 limit fill 時應保守。可以要求價格穿越 limit 一定幅度,或對觸價成交套用低於 100% 的 fill probability,再做敏感度分析。
某 bar 的 high 同時高於 take-profit、low 也低於 stop,OHLC 無法告訴你先碰哪個。處理方案:
永遠選對策略有利的順序會系統性高估績效。
正式報告不要只給單一成本假設。至少比較:
| 情境 | Fee | Slippage | Fill |
|---|---|---|---|
| 樂觀 | vendor/broker 最低值 | 低 | 100% |
| 基準 | 實際近期中位數 | 中 | 受 volume 限制 |
| 壓力 | 2–3 倍基準 | 高 | partial/non-fill |
若 alpha 在成本增加少量後即歸零,策略較可能只是理論訊號,不具可執行性。
你應能說明每筆交易的 reference price、spread、slippage、fee、成交量限制與未成交規則,並證明提高成本不會提升績效。