週二 UTC 00:05,我們的加密貨幣橫斷面策略依據短期趨勢分數,為 40 份永續合約排名,並將前十名納入等權重部位。回測顯示贏家與輸家之間有不錯的價差。接著我們要求它交易 $250,000 的資金,原本漂亮的績效曲線便開始走樣。
問題不在訊號裡,而是在再平衡:十筆買單、十筆賣單,還有幾份合約的顯示深度看似充足,直到這些委託同時送出才知道並非如此。策略把投資組合的變化當成價格更新;交易所面對的,卻是一連串實際委託。
我們依序重播那個週二的過程。首先得縮減舊部位,接著才能建立新部位。目標權重很簡單,從現況走到目標的路徑卻不簡單。
每邊 8 個基點的成本來自單一平均成本估計,包含交易所費用和少量滑價。如此一來,不論委託交易的是流動性高的合約,還是波動突然放大後的低流動性合約,成本都一樣。
我們先看最大的一筆委託。$25,000 的目標金額只占日成交量的 0.4%,乍看之下並不驚人。但日成交量無法告訴你,在真正需要交易的那幾秒裡,市場上有多少流動性。最佳買賣價的深度很薄,往下幾檔的價差也迅速擴大。若一次吃進全部數量,就得掃過好幾個價位。掛限價單只有成交時才能省下價差,而策略無法保證在下次決策前成交。
於是我們把委託拆成 5 筆、每筆 $5,000。這降低了當下的市場衝擊,卻也引入了時間和市場走勢的變數:每筆可能在不同價格成交,行情快速變動時,部位也可能只建到一半。我們把這兩種結果都記錄下來,原本的回測兩者都沒記。
而這還只是一邊。策略一邊買進替代合約,一邊賣出跌出前十名的部位。淨曝險大致維持在目標附近,但總換手額接近配置資金的 2 倍。若只對投資組合最後的變化計算成本,就會漏掉為了達成目標所需的交易。
| 執行方式 | 省下什麼 | 承擔什麼風險 |
|---|---|---|
| 一筆市價單 | 時間,以及對能否完成交易的不確定性 | 一次消耗更多訂單簿深度 |
| 5 筆市價單分批成交 | 降低當下的市場衝擊 | 分批期間的價格變動 |
| 限價單 | 有機會少付一些價差 | 部分成交,或完全沒有成交 |
那天下午,我們以簡單的參與率模型取代固定滑價假設。每筆委託的預期衝擊會隨委託量相對於近期成交量的比例增加;我們也設下模擬參與率上限,避免策略消耗不切實際的市場成交占比。這仍然只是近似值:彙總成交量不是即時委託隊列,K 線也無法呈現途中每個價格。但這迫使回測承認,同一個訊號在不同交易規模下,執行成本也不相同。
修正版回測也在委託跨越價差時收取 taker 費用;只有模擬確實假設掛單成交時,才收取 maker 費用。資金費率仍列為獨立的持倉成本,與再平衡成本無關。將這些項目分開,問題就一目了然:策略的預測能力沒有突然變差,而是它的換手成本相對於預測出的優勢過高。
到了週末,我們降低了再平衡頻率,並排除可用深度不足以支撐目標權重的合約。回測報酬下滑了,但執行假設變得更容易說清楚;這比更大的數字更有參考價值。
檢視投資組合策略時,請一路追蹤一次完整的再平衡:從目標權重到個別委託,從委託到合理的成交,再從成交到費用與市場衝擊。如果少了這段過程,績效曲線描繪的就是一個從未真正交易過的投資組合。
← 所有文章

