← 研究動態
一般讀者2026/07/10 下午10:56

市場休市,資料卻說有交易:一筆假行情如何把回測結論翻面

台股資料品質回測

讀者互動

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

分享到:LINEFacebookX / Twitter

[提出: 研究系統,執行: Codex]

2014 年 7 月 23 日,颱風麥德姆讓台股休市。打開一份 Yahoo Finance 歷史行情,卻可能看到加權指數當天留著開盤、最高、最低、收盤等欄位。把前後兩天並排後,破綻才浮出來:整列數字原封不動複製前一個交易日。

電腦不認識颱風假。回測程式看到日期與價格,就會把那天算成一個報酬為零的交易日。滾動視窗往後位移,事件日期跟著錯一格,模型還會很認真地替假資料算出小數點後四位。

加權指數在 2016 年 7 月 8 日也出現整列複製。0050 在其他颱風停市日則出現另一種填充方式:四個價格全都相同、成交量是零。行情列看起來完整,市場當天根本沒有交易。

有 K 線,不保證有人買賣

研究颱風停市時,我們原本想從「交易日曆說該開市,價格卻缺席」找出臨時休市。第一輪檢查就碰壁:資料可能多出一列,也可能少掉一列,兩種錯誤把判斷往相反方向推。

第一種謊是多一列。真停市日被塞進一筆複製行情,程式誤判市場有開。

第二種謊是少一列。2012 年 1 月 2 日的加權指數沒有行情,0050 卻有真實成交;2019 年 9 月 9 日與 2021 年 4 月 6 日也缺 Yahoo 行情,證交所融資融券資料仍有紀錄。三天都屬於資料缺漏,市場照常運作。

單看「有沒有價格」無法判斷開休市。研究最後把交易日曆、加權指數、0050 與證交所融資融券放在一起核對。六個殘差候選裡,只有 2024 年 10 月 31 日康芮颱風成立;其餘五個分別被 ETF 行情、官方交易資料或春節假期邊界排除。

六個缺資料候選的交叉驗證結果

日曆套件本身已列出 15 個颱風停市日,殘差掃描補到康芮後,樣本共有 16 個停市日。最後再做一次正向核對,16 天全部沒有融資融券資料。兩條彼此獨立的證據對上,才把日期送進後面的事件分析。

一筆壞資料,影響可以延續幾個月

休市填充列多半製造一個假的零報酬。另一個 0050 歷史資料問題更兇:2014 年 1 月 2 日曾出現一筆約負 75% 的幻影拆股斷點。0050 當天沒有蒸發四分之三市值,價格供應商的前後期調整尺度沒有接好。

單日錯誤會一路滲進 21 日、63 日、126 日的滾動波動率。凡是吃到那個視窗的模型,都把人造斷點當成市場風暴。三次清理前後重跑,差距如下。

回測讀數未清理清理後受到的影響
0050 年化波動率26.04%17.96%風險被高估約 8 個百分點
VIX 對未來台股波動的解釋比例3.64%25.67%原本看似沒用的訊號恢復資訊量
每日調整策略的風險調整後評分0.411.20策略品質被假跌幅嚴重壓低
殖利率曲線與 126 日後波動的關係+0.117-0.272連方向都翻成相反

同一筆假斷點對三種回測讀數的影響

四個例子也提醒一件重要的事:清資料後,舊結論可能維持,也可能翻盤。跨境避險研究重跑後,散戶不避險的主要結論仍然成立;殖利率曲線研究的關係方向卻由正轉負。哪一個結論會被推翻,事前看不出來。四組實驗都得重跑,再逐項比對。

DIY 回測先過三關

一般投資人不需要架一套交易所級資料庫,也能在回測前做三層體檢。

第一關:日期真的該開市嗎

先拿交易所日曆或正式休市公告核對。遇到臨時停市,套件可能漏列;遇到春節長假,套件也可能在邊界多排一天。日曆是第一張地圖,不能當唯一證人。

第二關:找一個獨立來源

加權指數缺資料時,可檢查同市場 ETF、成交量、融資融券或交易所統計。若第二來源仍有交易,價格缺席只是供應商漏資料。若兩邊都安靜,再檢查是否為正式休市。

兩個代號若都來自 Yahoo,背後可能仍是同一條資料供應鏈。源頭一起漏檔,核對兩遍也不會更可靠。證交所資料與價格供應商分開,證據才有互補性。

第三關:檢查連續性與重複列

把每個極端報酬的前後日期印出來。四個價格與前一天完全相同、成交量為零、單日突然跌 75% 又立刻恢復,都應先停下來查拆股、除息等公司行動與原始資料。合法拆股會有正式紀錄,也會在調整後價格保持連續。

發現問題後,把修正寫進資料載入流程,保留剔除日期與理由,再讓全部實驗重跑。直接改一格 JSON 只能讓眼前圖表變漂亮,下次下載或重算仍會復發。

看回測報告時,多問一句

你若使用網路上的回測工具,先找報告裡最大的單日漲跌。那一天若主導了整段波動率、資產配置或策略排名,至少核對價格走勢、成交量與公司行動。找不到資料清理說明的漂亮曲線,可信度要打折。

本次規則也有邊界。真停市若緊鄰預定連假,殘差法可能誤剔;未來若供應商換一種填充格式,現有偵測條件也可能漏抓。資料品質沒有一次設定永久安全的版本,異常清單與獨立來源都要留在流程裡。

一句話帶走:問市場那天發生什麼以前,先證明市場那天真的有交易。

延伸閱讀

本文整合 experiments/k1675/experiments/k758v2/experiments/k761v2/experiments/k739bv2/ 的腳本及結果。資料來源包括 yfinance 的加權指數與 0050、exchange_calendars XTAI 4.13.2、證交所融資融券;主要停市樣本期間為 2012–2025,另以 2009–2026 的 clean-data 重跑量化壞資料影響。圖表由 results JSON 直接產生。歷史資料檢查不構成投資建議。

懶人包圖組

懶人包圖 1

懶人包圖 2

懶人包圖 3

相關文章

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

📄
台股恐慌 37、美股只剩 16:一道 20 點的「恐慌溫差」,用三個問題就能讀懂
# 台股恐慌 37、美股只剩 16:一道 20 點的「恐慌溫差」,用三個問題就能讀懂 七月九日收盤,兩個數字擺在一起很不對盤。美股的恐慌指數 VIX 收 15.84,貼著今年低點;同一天,台灣的恐慌指數收 37.09。中間差了 21 點。 這不是單日的插曲。攤開期交所官方的臺指選擇權波動率指數(市場慣稱台版 VIX),台股的隱含波動率已經連續 54 個交易日站在 30 以上,六月二十六日一度衝...
📄
一家台積電,決定整片台股的天氣:單點風向球體檢表,四欄讀懂該慌還是被嚇
七月初的一個交易夜,紐約掛牌的台積電 ADR(代號 TSM)像坐上雲霄飛車,最近 20 個交易日裡有 5 天單日漲跌超過 5%,最兇的一天摜了 7.2%。同一批晶圓、同一份財報,台北的 2330 現股卻很淡定,同期間單日最大只甩了 4.1%,一次 5% 都沒發生。 把兩邊各自的「已實現波動率」算出來,講白話,就是這段時間股價實際上下甩動的劇烈程度換算成年化百分比,美股版本是 67%,台股版本只有...
📄
🧪 迷思實驗室|台積電打噴嚏,台股真的重感冒?16年數據攤開來看
台股圈有一句耳熟能詳的說法:「台積電打噴嚏,台股就重感冒」。這句話聽起來像常識,但裡面其實塞了三個完全不同的問題:台積電占大盤的份量有多重?它大跌那天大盤真的會一起跌嗎?隔天呢?我們把2010年到2026年7月、超過四千個交易日的台積電與加權指數資料攤開來看,一次拆給你看哪部分是真的,哪部分是誤會。 ## 台積電現在占大盤多重?比你想的還重 先看份量。2010年時,台積電的市值大約是1.68兆...
市場休市,資料卻說有交易:一筆假行情如何把回測結論翻面 | VolPred