← 研究動態
研究2026/03/27 上午11:03

數據分析最常犯的錯——我們差點把錯誤策略推薦給你

時區數據分析錯誤誠實

讀者互動

已追蹤瀏覽 0 次,登入會員可按讚與收藏。

分享到:LINEFacebookX / Twitter

數據分析最常犯的錯,我們差點把錯誤策略推薦給你

想像一下:你去看醫生,醫生診斷後說要開抗生素。但就在你拿到處方籤的前一刻,他突然停下來重新確認病歷,然後發現原來你對那個抗生素過敏。一個小小的最終確認,避免了一場可能的災難。

這就是我們上個月差點發生的事。只不過主角不是藥方,而是一個看似表現優異的投資策略。


從一個讓人心動的數字開始

今年 3 月,我們的研究系統正在測試一個利用美股 S&P 500(SPY)動能來預測台股(0050)隔夜缺口的策略。

結果讓人興奮: Sharpe Ratio 1.08 ,t 統計量 4.25,5 段跨期驗證全數通過。

對非技術讀者解釋一下:Sharpe Ratio 是衡量「每承受一單位風險,能賺多少報酬」的指標。1.0 以上在投資界通常代表策略有實質價值;t 統計量超過 3.0 才算達到我們設定的嚴格統計門檻(Harvey 2016 建議值)。

這個策略編號 K519,幾乎已經排進準備上架的佇列。


但等等,最後的確認

在任何策略正式對外公布之前,我們有一個例行程序:重新驗證數據對齊方式,確認沒有 前瞻偏誤 (look-ahead bias)。

前瞻偏誤是量化策略研究中最致命的陷阱。它的意思是:如果你在分析「過去」的時候,不小心用了「未來」才有的數據,結果就會虛假地美好。就像你如果能看到明天的報紙,今天買彩券當然百戰百勝,但現實世界做不到。

K521 是我們針對 K519 做的最終驗證實驗,專門檢查數據對齊有沒有問題。


發現了什麼

問題的核心是一個 時區錯誤 。

美股(SPY)在台北時間凌晨 5 點收盤。台股則在早上 9 點開盤。

我們的策略邏輯是:「如果美股昨天上漲,今天台股隔夜缺口可能也是正的。」這聽起來完全合理,美股週四(台北時間週五凌晨 5 點)收盤 → 台股週五早上 9 點開盤,這中間有 4 個小時的資訊傳遞窗口。

 但問題是:我們的程式碼在合併數據時,用的是「當天」的美股收盤價,而不是「前一天」的。 

具體來說:程式使用了 這個函式,理論上應該用「最近一筆較早的數據」,但實作上卻讓台股週五的數據去匹配 週五 的美股收盤,而週五的美股收盤是週五凌晨 5 點,那時台股 已經交易了一整天了 。

換句話說,我們用了當天台股交易完的資訊,去預測當天台股的走勢。這是典型的前瞻偏誤。

在 3,909 個交易日的數據中,有  96.7% 的數據點 都犯了這個錯誤。


奇特的結果:修正後 Sharpe 反而飆升到 4.4

這裡有個讓人意想不到的轉折。

理論上,如果一個策略有前瞻偏誤,修正後表現應該會 下降 ——因為那些「超能力」被拿走了。

但 K519 恰恰相反:

版本Sharpe Ratio年化報酬
有 bug(K519)1.084.4%
修正後(K521) 4.45  16.9% 

修正之後,Sharpe 從 1.08  跳到 4.45 ,年化報酬從 4.4% 升到 16.9%,最大回撤從 -4.4% 縮小到 -1.8%。

這是怎麼回事?

原來,前瞻偏誤在這裡反而 稀釋了信號 。正確的信號是「美股昨天的表現」,但 bug 版本把 96.7% 的信號換成了「美股今天的表現」(與台股幾乎同步,沒有預測力)。這等於在一杯純果汁裡加了 97 份水,果汁還在,但被稀釋到幾乎感覺不出來了。

修正後,我們才看到真正的信號強度:美股昨晚收盤與台股今天開盤缺口的相關性高達  0.611 ——過去 16 年每一年都是正數,最差的年份 Sharpe 也有 3.49。


但這個策略還是不能上架

即便修正後的 Sharpe 高達 4.45,我們還是沒有把這個策略推薦給一般投資人。

原因在於 實作限制 。

這個策略需要在台灣時間凌晨 5 點(美股收盤的瞬間)下單,在早上 9 點(台股開盤)出場。這個 4 小時的窗口,普通投資人用的是現貨市場(0050 ETF), 現貨市場在早上 9 點才開盤,根本無法在凌晨 5 點買進 。

若要執行這個策略,你需要台指期(TX),那是大戶的遊戲,有保證金門檻和操作複雜度。對於一般投資人,這個機會窗口事實上是關上的。

這個資訊傳遞機會是真實的,是學術界已知的「時區資訊傳遞效應」(K521 就是對應知識庫中 I8 項目的驗證)。但 知道規律和能否賺到錢是兩回事 。


我們為什麼要告訴你這些

有些團隊遇到這種情況,可能會選擇沉默,不提 bug,不解釋來龍去脈,直接埋單了事。

我們的選擇是公開記錄這一切。

理由很簡單: 研究的價值在於可信賴,而可信賴的基礎是誠實 。

一個 Sharpe 1.08 的策略,如果基礎數據有問題,那它什麼都不是。一個因為找到 bug 而看起來「表現退步」的策略,也不是真正的退步,那只是誠實面對現實。

我們在 中完整記錄了 bug 的類型、影響的比例(96.7%)、修正前後的所有數字、以及策略在現實中的實作限制。任何人都可以追蹤、核實、或提出異議。


給所有投資人的啟示

如果你在閱讀任何投資策略的回測報告,這個故事給了你一個具體的問題清單:

  1.  數據是否有前瞻偏誤?  有沒有用到「現實中不可能提前知道」的信號?
  2.  時間戳對齊了嗎?  不同市場、不同時區的數據合併時,有沒有考慮實際的資訊到達時間?
  3.  即使策略理論上可行,執行上呢?  窗口夠嗎?需要什麼帳戶?成本是多少?

最後一個最重要的教訓: 一個看起來變差的修正,有時候反而是更誠實的進步。  那個從 1.08 跳到 4.45 的數字,不是我們做得更好了,而是我們終於看清楚了真實的樣子。

就算最終沒辦法讓一般人從這個發現中獲利,至少我們沒有讓你相信一個有缺陷的策略。


本文基於實驗 K519、K521(2026-03-27),完整數據與程式碼記錄於 experiments/ 目錄。[提出: 用戶, 執行: Claude]

相關文章

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

📄
新興市場主權債的波動率,能提前預告 EM 股市風暴嗎?一次誠實的否定(K1621)
新興市場的美元主權債,波動起來的時候,會不會比股市早一步聞到火藥味?如果會,那些免費就能取得的債券 ETF 與信用利差,或許能當作跨資產的預警訊號。我們用 2015 到 2026 十一年的資料把這個念頭認真測了一遍,結論很乾脆:**不會**。主權信用的「波動率」和新興市場股票的波動率幾乎是同一時間一起動的,不存在可以拿來做日頻預測的領先關係。 這是一個 NULL 結果,但它是乾淨、可複現、而且對...
📄
K1605:區域銀行 M/B 折價與後續波動,橫斷面穩健、OOS 不過關
# K1605:區域銀行 M/B 折價與後續波動,橫斷面穩健、OOS 不過關 *[提出: publication-candidates, 執行: Codex]* ## 摘要 K1605 檢驗一個銀行風險問題:市場價格相對帳面淨值的折價,能不能提前指出區域銀行後續已實現波動率上升。樣本使用 yfinance 免費資料,包含 27 家仍上市美國區域銀行,以及 KRE、KBE 兩個銀行 ETF;主...
📄
K1582:HARQ / SHARK-style 測量誤差修正 HAR-RV 的台指期日盤試驗
## 摘要 [提出: Claude, 執行: Claude] K1582 檢驗 realized quarticity 測量誤差修正與 signed intraday components,是否能改善標準 HAR-RV 的一步期 realized variance 預測。正式可判斷樣本是 TAIFEX TX active-contract 日盤,原始日資料 2,219 筆,樣本外預測 1,697...