VALYNOXSTRATEGY RESEARCH TECHNOLOGY
AlphaPrimeAlphaPrime
策略學院 / 市場觀點

台指期大跌:如何用台指期崩跌檢驗策略的壓力測試

台指期急跌會暴露策略的弱點:虧損集中、空單遇到反彈,以及停損成交價離設定價很遠。在回測中分離出過去的崩跌時段,拆開多空結果,讓停損以跳空價成交,並把手上少數幾次崩跌當作壓力檢查,而不是證明。

作者 · 發佈 · 更新於 · 編輯原則

目錄
  1. 台指期急跌時,系統化策略會發生什麼事?
  2. 如何在自己的資料中找出過去的崩跌期間?
  3. 急跌時空方策略會賺、多方策略會虧嗎?
  4. 跳空與漲跌幅限制如何改變停損的成交?
  5. 崩跌中的回撤有多深,連續虧損有多長?
  6. 為什麼少數幾次崩跌不能證明策略禁得起崩跌?
  7. 崩跌壓力測試該依什麼順序進行?
  8. 常見問題
  9. 參考資料

台指期急跌時,系統化策略的弱點常常會浮現。多方趨勢與逢低買進的規則會連續虧損。空單規則可能獲利,但要面對劇烈反彈。停損成交價會比預期差,因為價格出現跳空。要檢查你的回測,就把過去的崩跌時段獨立出來,比較這些時段中多空的結果,並誠實地模擬跳空成交。

台指期急跌時,系統化策略會發生什麼事?

急跌不會改變你的規則,但會讓規則在你其餘歷史中很少出現的環境下運作。單日波動區間擴大,價格在 K 棒之間跳動,同一種虧損的進場情境可能連續好幾天重複出現。平常一天只虧一點的規則,在一次台指期暴跌的交易時段裡,可能虧掉好幾倍。

可以把它想成汽車的撞擊測試。你不會天天開車撞牆,但你想知道萬一發生時車子會怎樣。崩跌壓力測試對策略問的是同一個問題:在歷史上最糟的那幾段期間,它的表現如何?你承受得了嗎?

崩跌時段是指資料中圍繞市場急跌、一小段做了標記的區間。它從急跌前幾天開始,到第一次反彈後幾天結束。接著你把策略在每個時段內的表現與其餘時間分開衡量。回撤計算器可以把單一時段的權益序列轉成最大回撤與回復時間,方便你快速比較各個時段。

如何在自己的資料中找出過去的崩跌期間?

用固定規則套用在你自己的 K 棒上來找崩跌時段,不要憑記憶,這樣才不會漏掉策略表現不好的期間。依下列順序進行:

  1. 建立日收盤價,使用與你的回測相同的連續月合約。先檢查轉倉:未調整的換月,可能產生看起來像崩跌的跳動,但其實只是兩個合約之間的價差。
  2. 標記急跌日。列出收盤對收盤跌幅最大的那幾天。門檻由你決定,例如每一個跌幅超過 4% 的日子。
  3. 標記緩跌。列出從近期高點下跌數週的走勢,例如從最高收盤價下跌超過 15%。緩跌對策略的傷害與單日衝擊不同。
  4. 設定時段邊界。每個時段從第一個大跌日前幾天開始,到第一次強勁反彈後幾天結束。反彈要納入時段,因為空單常在那裡虧損。
  5. 對照已知期間。如果你的資料涵蓋這些期間,2008 年金融海嘯、2020 年 3 月、2024 年 8 月初與 2025 年 4 月初等知名的重挫應該會出現。若有一段缺漏或看起來很小,在相信回測之前先檢查資料。

交易時段的選擇會改變崩跌的樣貌。台指期的一般交易時段是台北時間 08:45 到 13:45,盤後交易時段是 15:00 到次日 05:00。交易所可能調整這些時間,請查看期交所的合約頁面或期貨交易時間工具。如果只用日盤 K 棒,美國隔夜的重挫會在 08:45 呈現為一個大跳空。如果用全時段 K 棒,同樣的下跌會分散在整個夜間,你的停損就會在不同的價格成交。夜盤回測中只用日盤與全時段 K 棒的比較這篇文章詳細說明了這個選擇。

急跌時空方策略會賺、多方策略會虧嗎?

空方常常獲利、多方常常虧損,但區分很少這麼乾淨。如果空方的全部獲利都來自兩三個崩跌時段,那是押注崩跌,而不是可重複的優勢。策略的反應取決於邏輯,更甚於方向:

策略類型急跌時的典型表現要檢查什麼
多方趨勢跟隨回吐未實現獲利、出場,然後空手出場前損失了多少未實現獲利
多方逢低買進(均值回歸)在下跌的市場中一再買進時段內的進場次數與每次進場的虧損
空方趨勢跟隨可從下跌中獲利,然後在快速反彈中虧損時段尾端反彈日的結果
隔夜持有空單消息突然轉好時暴露在向上跳空的風險空方單次隔夜最大虧損

做空單回測時,請執行排除測試。重新計算空方的淨損益,把最大的兩個崩跌時段拿掉。如果剩下的結果接近零或為負,代表空方規則的績效來自少數罕見事件。類似的測試也適用於台指期大跌策略的構想:為了從崩跌中獲利而設計的規則,在一般月份也應該有存在的理由,否則它在等待的那些年裡,只會一點一點地虧損。

AlphaPrime(Valynox)可以直接顯示這種拆分。績效報表中的多空分析會把兩邊的結果分開。週期績效檢視則讓你查看包含各個崩跌時段的月份。

假設範例:空方在崩跌區間賺 +400 點,其他時期虧 −50 點;多方在崩跌區間虧 300 點,其他時期賺 +500 點 空單獲利來自崩跌 淨點數,假設範例 空方 崩跌 其他 +400 −50 多方 崩跌 其他 −300 +500 沒有崩跌,空單就虧損。 因此:剔除崩跌後重新回測。
假設性範例:空方整體看起來獲利,但所有獲利都來自崩跌時段。排除測試可以讓這點一目了然。

跳空與漲跌幅限制如何改變停損的成交?

停損單是觸發條件,不是價格保證,所以遇到跳空時會以第一個可成交的價格成交,可能遠遠超出停損價。滑價是回測假設的價格與你實際會成交的價格之間的差距。在急跌時,它可能是平常的好幾倍。

假設性範例

你持有一口台指期(TX)多單。前一個交易時段收在 20,000,你的停損設在 19,900,預設風險為 100 點。一個壞消息的夜晚之後,市場開在 19,500。你的停損在開盤觸發,成交價接近 19,500,虧損 500 點。以每點 NT$200 計算,預設虧損是 NT$20,000,實際虧損是 NT$100,000,還沒計入手續費與其他滑價。

檢查你的回測軟體如何處理那根 K 棒。如果因為該 K 棒的區間「碰到」停損價,就以停損價成交,崩跌時段看起來會比實際好得多。符合現實的規則是:只要開盤價已經超過停損價,就以開盤價成交。下一根 K 棒執行在這裡也很重要。一個在 K 棒收盤時決定、並在下一根 K 棒開盤成交的策略,在崩跌時可能面對糟得多的下一個開盤價。

漲跌幅限制會帶來第二種影響。漲跌幅限制是合約在一天內可以偏離參考價的最大幅度。以 TX 來說,每日漲跌幅限制是前一日結算價的上下 10%。到達限制時,仍可在限制價成交,但沒有委託能成交在限制之外。如果很多人想在限制價賣出,出場可能很晚才成交,甚至整個交易時段都無法成交。回測資料只顯示實際發生的成交,所以無法呈現那些從未成交的出場。作為壓力測試,用兩倍或三倍的正常滑價重跑崩跌時段,看看策略最糟的時段是否變成你無法承受的程度。

假設範例:多單停損設在收盤價下方 100 點,下一根 K 棒跳空後以低 500 點開盤,因此實際成交在開盤價,虧損 500 點,而非停損價 跳空會跳過停損 多單,假設點數 收盤 假設成交:−100 隔夜跳空 開盤實際成交:−500 停損單在開盤成交。 所以:回測跳空要以開盤價成交。
假設性範例:當價格跳空穿過停損價時,成交發生在下一根 K 棒的開盤價,而不是停損價。

崩跌中的回撤有多深,連續虧損有多長?

單獨衡量每個崩跌時段,並與完整歷史比較,因為崩跌會把數個月的正常虧損壓縮到幾天內。回撤是帳戶權益從最高點到之後低點的跌幅。連續虧損是連續虧損的交易筆數。兩者在崩跌時都會惡化,因為同樣的條件日復一日地重複。

指標與什麼比較有問題的徵兆
時段內的最大回撤完整歷史的最大回撤單一短時段就造成大部分最糟的回撤
從高點到低點的天數其他地方回撤的典型長度同樣的虧損在幾天內出現,而不是幾個月
最長連續虧損崩跌時段以外的最長連續虧損時段內的連續虧損長得多
平均虧損與預設停損你規則中的停損距離平均虧損遠高於停損距離(跳空成交)
回復時間你在虧損中願意持續交易多久回復所需時間比你現實中願意等的更久

假設性範例

十年間,某策略最糟的回撤是每口 600 點。光是一個崩跌時段,就在八個交易日內造成 450 點的回撤。以 TX 每點 NT$200 計算,那是每口在不到兩週內虧損 NT$90,000。如果你決定部位大小時,假設回撤是慢慢到來的,那麼這個時段才是決定你實際部位大小的那一個。

部位大小要依崩跌時段來決定,而不是依平均的月份。波動升高時,交易所也傾向提高保證金,所以帳戶必須同時留有承受虧損與更高保證金的空間。

為什麼少數幾次崩跌不能證明策略禁得起崩跌?

漫長的歷史中只有少數幾次急跌,而且每一次的成因與形態都不同,所以策略在這些崩跌中的紀錄大多只是很小的樣本。擲一枚公平的硬幣五次:出現四次以上正面的機率大約是五分之一。一個在五次崩跌中有四次表現良好的策略,可能只是碰巧。

更大的風險是篩選。如果你生成大量變體,然後保留崩跌紀錄最好的那一個,你就是把規則擬合到少數幾個事件上。關於回測過度最佳化的研究顯示,你嘗試的變體越多,就越容易找到一個在過去看起來極為出色、之後卻失效的策略(Bailey et al., 2014)。為什麼最好的回測通常被高估這篇文章解釋了其中的機制。

把崩跌檢查與使用更多資料的測試搭配。推進分析,以及策略檢驗中的基本、標準與進階檢查,評判的是整段歷史,而崩跌時段則告訴你最糟的部分能不能撐過去。

崩跌壓力測試該依什麼順序進行?

在一般檢驗之後,依固定順序執行壓力測試,這樣你就不會為了迎合結果而調整策略:

  1. 在完整歷史上檢驗策略,納入手續費、滑價與下一根 K 棒執行。
  2. 在查看策略於其中的結果之前,先用固定規則標記崩跌時段。
  3. 拆開多空結果,並對每一邊執行排除測試。
  4. 以開盤價跳空成交,並用兩倍或三倍滑價重跑這些時段。
  5. 記錄每個時段的回撤、連續虧損與回復時間。
  6. 根據部位大小與能否撐過去來判定過關與否。不要為了改善崩跌結果而更改參數。

如果你使用 AlphaPrime,這代表:每次執行都保留成本與下一根 K 棒執行,然後針對包含過去重挫的月份,查看績效報表中的多空分析與回撤。通過檢驗但崩跌時段無法承受的策略,可以在資料庫中擱置,而不是一直調整到崩跌看起來比較好看。

常見問題

台指期崩跌時,空方策略會賺錢嗎?

空方策略常在下跌過程中獲利,但許多策略會在隨後的急速反彈中吐回一部分。檢查拿掉最大崩跌時段後,空方是否仍然合理。如果不合理,它的紀錄就是仰賴少數罕見事件。

如何回測跳空時的停損?

只要開盤價已經超過停損價,就以該 K 棒的開盤價成交停損,而不是以停損價本身成交。然後用更高的滑價重跑崩跌期間。預設停損距離與實際平均虧損之間的差距,顯示跳空讓策略付出了多少代價。

要測試策略,需要多少個崩跌期間?

測試你的資料中包含的每一個崩跌時段,並用固定規則標記,但預期只會有少數幾個。這樣的樣本太小,無法證明策略能應付崩跌。用這些時段來檢查最糟的虧損能否撐過去,其餘部分則依靠完整歷史的檢驗。

我應該在台指期策略中加入崩跌過濾嗎?

崩跌過濾和其他規則一樣,所以要在完整歷史上並用推進分析來測試,而不是只針對它所設計的那些崩跌。針對兩三個過去事件調整出來的過濾,通常只擬合了那些事件,其他幾乎沒用。只有在它有幫助、而且不是針對特定日期調整出來時,才保留它。

參考資料

  • Bailey, D. H., Borwein, J., López de Prado, M., & Zhu, Q. J. (2014). Pseudo-Mathematics and Financial Charlatanism: The Effects of Backtest Overfitting on Out-of-Sample Performance. Notices of the American Mathematical Society, 61(5), 458–471.

AlphaPrime 在這裡能幫上什麼

績效報表會為每個策略顯示權益、回撤、交易、週期績效與多空分析。策略檢驗則加入推進分析,以及可自訂門檻的基本、標準與進階檢查。

看方案與價格