在量化策略的回測中,滑點往往被設定為一個固定的數字,然後就被遺忘。真實市場中的滑點會隨著下單規模、流動性與波動率而劇烈變動。本文想談談如何進行滑點敏感度分析。
什麼是滑點
滑點指的是實際成交價格與預期成交價格之間的差距。在回測中,我們通常以某個基準價格,如收盤價、開盤價或決策價格,來計算策略的報酬,並假設交易能夠以該價格成交。但在實盤中,從下單到成交存在時間延遲,價格可能已經變動;即使立即成交,市價單也會吃掉委託簿上的流動性,使得成交均價偏離下單前的市場價格。
滑點的來源
滑點的來源可以分為幾個部分:
- 買賣價差:下單時立即面對的成本,當我們用市價單買進時,成交價格會是委賣價而非委買價。
- 市場衝擊:交易對價格的永久性影響,大單會推升買進價格或壓低賣出價格。
- 價格漂移:從決策到下單之間,市場價格自然變動所造成的差異。
影響滑點大小的因素
滑點的大小取決於多個因素。下單規模相對於市場日均成交量的比例是其中最關鍵的變數,規模愈大,滑點愈高,且兩者之間呈現平方根的關係。市場波動率也是重要因素,波動率愈高,價格在執行期間變動的幅度愈大。此外,市場的流動性深度、下單的積極程度、以及執行演算法的效率,都會影響最終的滑點水準。
為什麼滑點敏感度分析至關重要
滑點敏感度分析的重要性,在於它直接影響了我們對策略可行性的判斷。一個策略在回測中產生年化 8% 的超額報酬,如果滑點假設是單邊 0.1%,年化換手率為 300%,則年化交易成本為 0.6%,淨報酬為 7.4%。但如果實際的滑點是 0.3%,年化交易成本變成 1.8%,淨報酬降至 6.2%。如果滑點進一步上升到 0.5%,年化交易成本達到 3.0%,淨報酬只剩 5.0%。若滑點超過 0.6%,策略的淨報酬將被交易成本完全吞噬。
這個簡單的算術說明了滑點敏感度分析的核心價值:它讓我們知道策略的安全邊際有多大。如果策略在滑點假設上調一倍之後仍然能夠獲利,代表它的容錯空間較大,實盤中遭遇較高滑點的風險較低。如果策略的獲利在滑點稍微上升之後就消失,代表它對執行成本極度敏感,在實盤中很可能無法複製回測的績效。
滑點敏感度分析也能幫助我們辨識策略中最脆弱的部分。舉例來說,一個策略可能整體上對滑點不敏感,但其績效主要來自於少數幾檔流動性極差的股票。當我們對這些股票施加更高的滑點假設時,策略的績效可能大幅衰退。這種分析能夠幫助我們在策略上線前就發現這些隱藏的風險點。
如何計算策略對滑點的敏感度
滑點敏感度分析的基本做法是:在不同的滑點假設下,重新計算策略的淨報酬,觀察淨報酬如何隨著滑點的變化而改變。
具體的計算步驟如下:
- 首先,選定一組滑點假設的範圍,例如從單邊 0.05% 到 0.5%,每隔 0.05% 設定一個測試點。
- 接著,對於每一個滑點假設,將策略在回測期間的每一筆交易都加上對應的滑點成本,重新計算策略的淨值曲線與績效指標。
- 最後,將不同滑點假設下的績效指標繪製成圖表,觀察淨報酬、夏普比率與最大回撤如何隨滑點上升而變化。
在計算時,滑點成本可以表示為:
成本 = 換手率 × 滑點
其中換手率是策略在該期間的總交易金額佔資產的比例,滑點是單邊的滑點假設。若策略同時有買進與賣出,則雙邊的滑點成本都必須計入。更精確的做法是對每一筆交易分別計算其滑點成本,而非使用整體的平均換手率,這樣可以捕捉不同交易之間滑點差異的影響。
除了觀察淨報酬的變化之外,敏感度分析也可以計算損益兩平滑點,也就是讓策略淨報酬剛好為零的滑點水準。這個數字代表了策略對滑點的最大容忍度:如果實際滑點超過這個水準,策略就會虧錢。損益兩平滑點愈高,策略對執行成本的韌性愈強。
原文出處:voltima_quant (@voltima_quant) 於 Threads · 查看原文
