← 研究動態
一般讀者2026/07/22 上午09:30

VIX 掉到 17.05、財報週安安靜靜:加碼之前,先用「換件測試」拆一次你手上那張績效表

風險管理回測研究誠實樣本外驗證資料品質daily_digest

讀者互動

登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

持續追蹤這項研究

收藏、追蹤與明日提醒只保存必要識別資料,可在會員中心檢視或刪除。

研究資訊不構成個人投資建議;提醒僅代表研究更新,不代表交易訊號。

訂閱研究摘要

研究摘要與新文章,不轉售、不寄廣告,隨時可退訂。

最近這幾天的盤面很無聊。2026 年 7 月 21 日美股收盤,恐慌指數 VIX 收在 17.05,前一個交易日還有 18.65,落在系統定義的「正常」區間中段;SPY 收在 748.28 美元,當天漲 0.83%;用波動率模型算出來的下一日年化波動率預估是 12.7%(以上取自 7 月 22 日的每日策略建議,該篇基於 7 月 21 日收盤數據,資料來源 yfinance)。

美股財報週已經開打,行事曆上密密麻麻,市場卻懶洋洋。

平靜的盤,最容易誘發同一個動作:打開那份存了很久的回測報告,看到年化多少、最大回檔多少、曲線一路往右上,然後把加碼鍵按下去。

這篇要處理的問題只有一個: 那張漂亮的績效表,是策略真的有效,還是樣本期送給你的? 

一個可以帶走的動作:換件測試

修車廠診斷引擎抖動,做法是一次只換一個零件,換完發動看看還抖不抖。同時換五樣,你永遠不知道問題出在哪。

回測報告可以用同一套邏輯拆。任何一張績效表的背後,都掛著一串你看不見的設定:資料是誰供應的、測哪一段歷史、訊號幾點下單、報酬怎麼算、拿什麼尺去量、參數用幾年資料估、標的名單怎麼挑出來。 一次只換掉其中一件,其餘全部不動,然後看那張表活不活。 

這就是換件測試。

我們自己跑了四個多月的實驗,每一件都親手換過,也每一件都被打過臉。以下這張清單是骨幹,先看表,再看每一項的實際落差。

#換掉哪個零件換法我們自己那次的落差
1資料來源Yahoo 行情 → 交易所原始紀錄交叉核對年化波動率 26.04% → 17.96%
2樣本期參數鎖死,換一段完全不同的歷史重跑17 個候選只活 8 個,陣亡率 52.9%
3下單時點訊號當天生效 → 延一天才能下單用收盤才看得到的訊號決定當天持倉,回測等於先看了答案
4報酬口徑昨收到今收 → 今開到今收風險調整後評分 3.514 → -0.168
5量尺收盤價估波動 → 高低價區間估波動結論從「表現普通」翻成「明顯變差」
6估計窗口252 / 504 / 1000 / 2000 天各跑一遍沒有一個窗口通吃五個時期
7樣本名單事後挑標的 → 事前鎖死並打時間戳記統計強度 -5.16 → -2.20,聯合檢定全滅

七件裡面,只要有一件換完數字就垮,那張表就不能拿來當加碼的理由。

下面一件一件拆。

換件 1:換資料來源

先從最底下那層開始。連價格都可能是假的。

2014 年 7 月 23 日,颱風麥德姆讓台股休市。在〈市場休市,資料卻說有交易:一筆假行情如何把回測結論翻面〉這篇裡,我們打開一份 Yahoo Finance 的歷史行情,加權指數那天卻留著開高低收四個欄位。把前後兩天並排才看得出來:整列數字原封不動複製前一個交易日。2016 年 7 月 8 日也出現同樣的整列複製。0050 在其他颱風停市日則是另一種填法,四個價格全都相同、成交量掛零。

電腦不認識颱風假。回測程式看到日期和價格,就把那天算成一個報酬為零的交易日,滾動視窗往後位移一格,事件日期跟著錯開。

更兇的是另一種壞資料。0050 在 2014 年 1 月 2 日有過一筆約負 75% 的幻影拆股斷點,那天 0050 沒有蒸發四分之三市值,是價格供應商的前後期調整尺度沒接好。單日一個錯誤,會一路滲進 21 日、63 日、126 日的滾動波動率,凡是吃到那個視窗的模型都把人造斷點當成市場風暴。

清理前後重跑,同一份資料的四個讀數變成這樣:

回測讀數未清理清理後
0050 年化波動率26.04%17.96%
VIX 對未來台股波動的解釋比例3.64%25.67%
每日調整策略的風險調整後評分0.411.20
殖利率曲線與 126 日後波動的關係+0.117-0.272

同一筆假斷點對三種回測讀數的影響:風險被高估、訊號被埋沒、策略評分被壓低

最後一行請多看兩秒。殖利率曲線跟半年後波動的關係,清理前是正的 +0.117,清理後變成負的 -0.272,連方向都翻過來。

那次研究還有一個附帶收穫:清完資料,舊結論可能維持也可能翻盤,事前看不出來。跨境避險那份重跑之後主要結論仍然成立,殖利率曲線那份就整個轉向。四組實驗全部得重跑,逐項比對。

換件 1 的做法:拿一個獨立來源核對。加權指數缺資料時,去看同市場 ETF、成交量、融資融券或交易所統計。要注意兩個代號若都來自 Yahoo,背後可能是同一條供應鏈,源頭一起漏檔,核對兩遍也不會更可靠。我們那次掃出六個殘差候選,只有 2024 年 10 月 31 日康芮颱風成立,其餘五個分別被 ETF 行情、官方交易資料或春節假期邊界排除掉。

換件 2:換樣本期

這一件最殘忍,也最便宜。

2026 年 3 月,我們把連續編號的 68 個實驗全部重新分類統計,寫成〈換一個樣本期,一半的策略當場死掉:我們公開自己 68 個實驗的成績單〉。完全沒效果的 24 個,明確有效的 15 個,有效率 22.1%,無效率 35.3%。平均每 8.5 個實驗才換得到一個站得住腳的發現。

砍人的關卡在後面。68 個裡有 18 個走到「跨樣本期驗證」這一關,其中 17 個有明確的存活或陣亡判定。做法很單純:參數不准調,模型不准改,就是換一段完全不同的期間,用同樣的設定再測一次。

8 個存活,9 個陣亡。陣亡率 52.9%。

單期看起來有效的 17 個候選,換一個樣本期重測後只有 8 個存活

擲硬幣的存活率是 50%。我們這 17 個候選是 47.1%。

每一個陣亡的實驗,在第一段樣本期都拿出過看起來漂亮的成績。如果當時停手發文,會有九篇讀起來很有說服力、卻禁不起換期考驗的文章掛在站上。

那份成績單裡還藏著一個更貼近散戶的教訓。陣亡名單有三個實驗測的是同一件事:把一個預測得還不錯的模型,接上實際的下單規則。三個全部失敗。模型把明天的波動猜得比對照組準,換算成部位調整、扣掉交易成本之後,優勢就沒了。猜得準跟賺得到,中間隔著一段距離,而漂亮的預測準確度圖表通常不會把那段距離畫出來。

換件 2 的做法:問賣你策略的人一句「這條策略在哪一段期間測的,換另外一段還成立嗎」。如果對方只給你一張全期間的累積曲線,那張曲線沒有回答這個問題。

換件 3:換下單時點

最常見的寫法是用 今天的 VIX  決定 今天的持倉比例 ,再用 今天的報酬 算績效。股市暴跌那天 VIX 通常同步飆升,這樣寫的回測等於「已經知道」要減碼:暴跌日被避開,大漲日被抓到。

你不可能在早上九點半開盤前,就知道今天收盤時 VIX 會是多少。改成用今天的 VIX 決定明天的持倉,延遲一天,訊號才是真的可以執行的版本。

換件 3 的做法:拿到任何回測,先問訊號是幾點觀察到的、幾點下單的。用到「當天」任何資料去決定「當天」交易的策略,直接打回票。這個坑不限於 VIX,當天成交量、當天新聞情緒分數、當天隱含波動率,全都適用。

換件 4:換報酬口徑

換件 3 講的是時間索引錯一格,換件 4 是同一天裡面你到底賺得到哪一段。

2026 年 4 月,我們設計了一個跨市場策略,測試美股 SPY 的隔日走勢能不能預測台灣 0050 當日方向。這個假說有底:SPY 對台股的領先落後相關係數約 0.40,統計上通得過嚴格門檻。

結果非常好看。整段樣本的風險調整後評分 3.400,樣本外那段 5.053,五個時期全部勝出,方向準確度 64.1%。

然後程式碼被審了一遍,抓出三個高嚴重度問題,其中影響最大的是報酬計算方式。詳細過程寫在〈評分 3.5 到 -0.17:一個報酬計算選擇讓跨市場策略崩潰〉。

原版用的是昨收到今收。這段時間包含兩截:台股昨天 13:30 收盤到今天 09:00 開盤的隔夜跳空(約 20 小時),加上今天 09:00 到 13:30 的盤中走勢。

問題在於,美股訊號幾乎百分之百反映在隔夜跳空裡。台灣投資人在美股收盤後就知道 SPY 漲跌了,隔天開盤前就下單,開盤價已經把訊號消化掉。等你 09:00 進場,資訊早就沒了。

改成今開到今收,也就是你實際能吃到的那一段:

指標昨收到今收今開到今收(可交易)
年化平均報酬18.1%5.1%
滾動相關係數(SPY→台股)0.4100.009
策略風險調整後評分3.514-0.168
方向準確度63.9%50.2%

兩種報酬口徑下的評分差距:被動持有 0050 相差 0.84,主動策略相差 3.68

方向準確度 50.2%,就是擲硬幣。相關係數從 0.410 掉到 0.009,領先落後訊號在開盤那一瞬間就被市場定價完畢。評分膨脹 +3.68,是我們遇過幅度最大的假突破。

領先落後訊號本身是真的,可以賺的那部分躺在你進不去的隔夜跳空裡。這跟更早一次的研究結論一致:那次算出來的超額報酬有 77% 到 93% 落在隔夜跳空,扣掉台指期 58.5 個基點的交易成本後不可執行。

換件 4 的做法:把報酬拆成「你進場前發生的」和「你進場後發生的」,只認後面那段。任何跨時區、跨市場、跨交易時段的策略,這一件必換。

換件 5:換量尺

前面四件都在換輸入,這一件換的是評分標準。

我們有個進階模型,原本在黃金 ETF(GLD)上用傳統的收盤價量尺檢驗,結論是「跟基準模型差不多,沒什麼特別優勢」。收盤價只是一個瞬間的價格。一檔股票白天可能從 100 漲到 105、跌到 97、再回到 100 收盤,收盤等於開盤,但當天波動很大。只看收盤,你會以為今天沒什麼事。

換成高低價區間量尺,拿當天最高價和最低價估真實波動,這個量尺在學術文獻上更可靠。重跑之後,〈你看的回測績效可能是假的:換個「量尺」,黃金模型就穿幫〉的結論是:那個進階模型其實在 明顯讓預測變差 ,差的程度遠超過統計顯著門檻。

同一個黃金波動模型,用兩種不同量尺檢驗,結論完全翻轉

同一個模型,同一段時間,只換一把更精準的尺,結論從「還好」變成「有害」。那次我們用了 4 種不同的波動量尺做穩健性檢驗,結果一致:傳統收盤價量尺掩蓋了模型的實際損害。

這件事離散戶比想像中近。「策略年化報酬 15%」是用日線、週線還是調整後收盤價算的?「A 基金比 B 基金好」是比波動率、比風險調整後評分,還是比最大回檔?換個指標排名可能翻盤。「我的投資組合波動率 12%」是用絕對報酬還是區間法算的?可能差一倍。

換件 5 的做法:多看幾個指標,別只看一個。看報酬也看最大回檔,看整段也看逐年。一個策略在五個不同指標下都還說得過去,才值得多看一眼。

換件 6:換估計窗口

前五件是抓錯,這一件是抓「你以為有標準答案的地方其實沒有」。

估模型參數要用多少歷史資料?一年(252 個交易日)、兩年、四年,還是直接拉八年讓模型看最多?直覺說資料越多越好。

在〈回測窗口設多久?我們把 252、504、1000、2000 天在五個時期跑了一遍〉裡,我們用同一個波動率模型預測 SPY,同時跑四種窗口,跨五個樣本外期間(2012–13、2014–15、2016–17、2020–21、2023–24,共 2,508 個交易日)比誰準。

樣本外期間平均 VIX本期冠軍
2012-1316.0W=504
2014-1515.4W=252
2016-1713.5W=1000
2020-2124.5W=1000
2023-2416.2W=252

四種窗口在五個樣本外期間的表現與平均排名

平均排名:W=252 是 1.8,W=1000 是 2.0,W=504 是 2.4,W=2000 是 3.8。八年窗口五期全部墊底,一次都沒贏過。原因指向參數被 2008 金融海嘯之前的資料拉著走,把「波動會持續多久」估得太高:W=2000 的持久性估計在多個期間高達 0.992,W=252 只有 0.95 到 0.97。

有兩個地方值得停一下。第一,2020–21 那段高波動期,最好的是 W=1000,不是最短的 W=252。「市場亂的時候要用短窗口跟上」這個直覺在那段被打臉,2020 年的波動太極端,只看近一年的資料反而讓模型過度貼合單一危機。第二,我們對「較短窗口比較好」做了正式檢定,統計強度 -1.73,只達到 10% 水準的邊緣顯著;多重比較校正之後,11 組比較沒有任何一組達標。

結論要講到位:W=2000 確實最差,但「短窗口贏」這句話在統計上站得不夠穩。三個較短窗口之間並沒有顯著差異。

換件 6 的做法:把你的參數估計期間換成 0.5 倍和 2 倍各跑一次。三個版本結論一致,才叫穩。這件事也提醒一個更基本的問題:如果一份回測從頭到尾只有一組參數設定,那份回測沒有做過這一關。

換件 7:換樣本名單

最後一件,換的是「你測了哪些標的」。

在早期一組研究裡,我們測試台積電等大型股在季報公告後的異常波動行為,想看不同產業有沒有差異。IC 設計那組只放了聯發科和瑞昱兩家。這兩家在更早的分析裡就已經被標記為「季報後波動下降」的代表。沒有納入的是同屬 IC 設計的聯詠(同一套方法跑出來的係數是正的,方向相反)和群聯。

6 家裡先挑 2 家答案符合假說的進來,漏掉另外 4 家,其中至少 1 家答案相反。跑出來的結果自然漂亮,係數 -2.29×10⁻³,達到最高等級的顯著水準。

〈當「顯著」變不顯著:預先登錄如何揭穿 cherry-pick〉記錄了我們怎麼補這一刀。做法是在任何數字開始計算之前,先用固定的隨機種子從 8 個產業各自抽樣,把最後 32 家公司的清單寫成文件,提交進版本庫。那個提交的時間戳記早於任何估計運算,事後無法回頭「預先登錄」。

聯詠和群聯都進來了。數字變成這樣:

統計量只選 2 家預先登錄 31 家
樣本數14 家31 家
IC 設計效果-2.29×10⁻³-1.24×10⁻³
統計強度-5.16-2.20
多重比較校正後未校正不再達標
全產業聯合檢定達到顯著不再顯著

只用 14 家的估計分布,對照預先登錄 31 家後的估計分布

效果縮水 46%,統計強度衰減 57%。最關鍵的是最後一行:把 8 個產業同時放進模型問「產業之間有沒有系統性差異」,聯合檢定完全失敗。IC 設計那組的信賴區間直接跨過 0 軸,裡面既有季報後波動下降的個股,也有上升的,同一產業內部的差異比產業之間還大。

基於這個結論,我們在後續的分析框架裡放棄了「以產業分桶」這個方向,改用個股自己的波動敏感度估計值分級。

換件 7 的做法:看到「這個策略在 A 股、B 股都有效」,先問樣本是事前決定還是事後挑的,以及測試過程中總共試了多少個沒被貼出來的版本。最後這個問題最關鍵也最難拿到答案。試了 100 個想法挑最好的那個來炫耀,跟只試了一個就成功,攤在紙上長得一模一樣。

全部換過還活著的東西長什麼樣

七件都在講怎麼把東西弄死。那通過的長什麼樣?

我們目前最穩的一個發現,是把 VIX 加進波動率模型的那個版本(A4f)。〈五個市場時代、從沒輸過:A4f 波動率預測的跨時間穩健性驗證〉把 2015 到 2026 年切成五個互不重疊的時段:低波動牛市(VIX 均值 15.1)、COVID 崩盤到復甦(26.4)、後 COVID 暴力修正、升息後期(15.9)、近期 AI 熱與貿易戰交替。

五段全勝,改善幅度從 +3.4% 到 +8.4%。整段樣本外期間(2,828 筆)合計改善 6.27%。

五個子期間的預測誤差改善與比較檢定統計量

五連勝要怎麼讀?如果兩個模型預測力一樣、純靠運氣抽籤,連贏五次的機率是 3.1%。

還有兩個交叉檢查。第一,用一年期滾動視窗逐日計算「最近一年誰領先」,11 年樣本外期間裡沒有任何一個視窗是舊模型領先的。第二,模型裡決定 VIX 貢獻強度的那個關鍵參數,從 2015 到 2026 每三個月重估一次、共估了 45 次,45 次全部為正,沒有一次翻負。假設這個改進只是某段時間的偶然,那個參數應該會有幾次翻負或接近零。

誠實的邊界也要一起講。COVID 那段改善幅度最大(+8.4%),但只有 377 筆資料,統計力道不夠,不能宣稱顯著。中等 VIX(15 到 25)那個區間,兩個模型幾乎打平,改善只有 1%,而市場大多數時間就待在那裡。優勢明確的地方在極端平靜(+9.0%)和極端恐慌(VIX>35 時 +25.9%,樣本只有 63 筆)。

這才叫「通過換件測試」的樣子:換時代、換波動環境、換滾動視窗、換重估次數,結論方向都沒翻,而且每個沒把握的地方都標出來。

這週你可以做的事

VIX 17.05、財報週正在跑,帳面上多半是綠的。要加碼之前,把手上那張績效表拿出來,照這七件走一遍:

  1.  驗料 :報告裡最大的那個單日漲跌是哪一天?查一下那天市場真的有開嗎、有沒有除權息或拆股。找不到資料清理說明的漂亮曲線,可信度先打折。
  2.  換期 :這條策略在哪一段測的?拿另外一段完全不同的期間,參數不准動,重跑一次。
  3.  換時點 :訊號幾點觀察、幾點下單?用當天資料決定當天交易的,直接淘汰。
  4.  換口徑 :報酬有沒有把你進場前的跳空算進去?只認你進場後的那一段。
  5.  換量尺 :換兩個指標重排名次。只在一個指標下領先的策略,不算領先。
  6.  換窗口 :參數估計期間乘以 0.5 和 2 各跑一次,三個版本結論要一致。
  7.  換名單 :標的是事前定的還是事後挑的?總共試過幾個沒貼出來的版本?

七件全過,那張表才配得上你按下加碼鍵。七件裡有一件換完就垮,垮掉的那件就是你真正買到的東西。

市場很安靜的時候,這七件的成本最低。等波動回來再做,你會沒空。


本期精選

  1. 市場休市,資料卻說有交易:一筆假行情如何把回測結論翻面(2026-07-10):颱風停市日的複製行情與幻影拆股斷點,把 0050 年化波動率從 17.96% 灌到 26.04%。
  2. 換一個樣本期,一半的策略當場死掉:我們公開自己 68 個實驗的成績單(2026-07-22):68 個實驗完整成績單,走到跨期驗證的 17 個候選陣亡 9 個。
  3. 評分 3.5 到 -0.17:一個報酬計算選擇讓跨市場策略崩潰(2026-04-02):美股對台股的領先訊號是真的,可賺的部分躺在你進不去的隔夜跳空裡。
  4. 你看的回測績效可能是假的:換個「量尺」,黃金模型就穿幫(2026-04-14):換一把更精準的波動量尺,黃金模型從「表現普通」變成「明顯有害」。
  5. 回測窗口設多久?我們把 252、504、1000、2000 天在五個時期跑了一遍(2026-06-21):八年窗口五期全墊底,但短窗口贏的幅度在統計上只是邊緣顯著。
  6. 當「顯著」變不顯著:預先登錄如何揭穿 cherry-pick(2026-06-06):6 家裡挑 2 家跑出三顆星,補齊到 31 家後聯合檢定全滅。
  7. 五個市場時代、從沒輸過:A4f 波動率預測的跨時間穩健性驗證(2026-06-06):換時代、換波動環境、換滾動視窗都沒翻,通過換件測試的樣子。

本期盤面數字取自 2026-07-22 每日策略建議(mile_bab9ba0f),資料來源 yfinance(SPY / GLD / ^VIX / 0050.TW),VIX 17.05 為 2026-07-21 收盤。各換件案例的樣本期間、實驗編號與原始結果檔路徑,見上列各篇文末標注。

免責聲明:本文為研究方法與投資教育用途,呈現的是我們內部研究流程的歷史紀錄與已發表分析,不構成任何投資建議。投資請自行判斷並承擔風險。

懶人包圖組

懶人包:換件測試框架,逐一替換資料來源、樣本期、下單時點、報酬口徑、量尺、估計窗口與樣本名單

懶人包:跨樣本期存活率、報酬口徑差異、事後挑樣與預先登錄的統計強度落差

懶人包:通過換件測試的模型在五個市場時代全勝,並附上樣本邊界

相關文章

先讀正式關聯,若無則使用標籤與主題相似度補齊

📄
VIX 已經很高時再跳一次,SPY 多晃的幅度沒有變小——危機時還更大
你是否會在 VIX 已經很高的時候降低對「下一次 VIX 大跳」的防備,理由是市場已經怕過了,再一次衝擊不會多晃太多?這份資料的答案是不會少晃:VIX 一天跳升兩點以上的那天,SPY 的單日漲跌幅比平日多出約一個百分點,不論前一天 VIX 在十幾還是二十幾都差不多;VIX 在 30 以上的危機期間,多出來的幅度還更大。 我們看了什麼 資料是 SPY 與 VIX 的日資料,期間 2006-01-05…
→
📄
銀行收緊放款時,債券 ETF 劇烈震盪會讓隔天股市更不安嗎?十九年資料:不必另設一道警報
美國聯準會每一季會問各大銀行:最近對企業放款,標準是放寬還是收緊?當回答「收緊」的銀行明顯多過「放寬」,市場常把它當成信用變緊的訊號。一個常見的延伸想法是:在這種時期,高收益債或貸款類 ETF 一旦出現劇烈震盪,隔天的股市就更容易跟著不安,所以要對債券 ETF 的動靜特別敏感,甚至提早減碼股票。 這篇回答的就是這個決策:銀行收緊放款的期間,要不要把債券 ETF 的單日劇烈波動,當成比平常更強的股市…
→
📄
第三季今天收官,第四季是四季裡平均最好的一季:要不要為年底行情先加碼,先看平均、寬度、代價三欄
今天九月三十日,是第三季最後一個交易日。 到昨天九月二十九日收盤,美股大盤 ETF 收在 764.20 美元,第三季到目前漲 2.33%,九月到目前小跌 0.37%,今年以來漲 12.07%。九月一日那篇〈九月確實是十二個月裡最差的一格,但那一格是從十二格裡挑出來的〉說,九月是標普 500 月份表裡平均最差的一格;今年的九月到昨天為止,只跌了不到半個百分點。 翻過這一頁,接下來就是大家說的「年底行…
→