金融研究中的資料來源譜系:為何未被版本控管的資料會徹底毀掉策略?

深入拆解量化交易中的資料來源譜系(Data Provenance)。看懂資訊供應商靜默修正、除權息還原漂移與歷史截面遺失如何導致程式交易回測完全失真。

MyTrade Academy Editorial Team
6 分鐘閱讀

試想一個令人費解的情境:你找出半年前寫好的一支台股量化選股腳本,沒有動到任何一行邏輯程式碼,直接重新執行回測,結果年化報酬率竟然從原本漂亮的 20% 驟降到只剩 8%。

這怎麼可能?既然程式邏輯完全沒變,為什麼結論會產生崩塌式的落差?答案通常只有一個:底層引用的歷史資料被悄悄更動過了

在金融市場裡,歷史資料絕非刻在石碑上永不變更的化石。資訊報價商經常在背後修正錯單、追溯更正上市櫃公司的財報修訂、甚至重新調整除權息還原基期。缺少資料來源譜系(Data Provenance)——即缺乏對資料來源、下載時戳、清洗規則與版本流變的精確紀錄——你的策略回測便等同於建立在鬆動的流沙之上。

TL;DR

資料來源譜系(Data Provenance)是指詳實記載一份金融資料集從原始採集來源、下載時戳、清洗演算規則到入庫建檔全流程的完整溯源履歷。在程式交易回測中,除權息還原漂移、期貨換月價差調整以及下市股票被靜默刪除,都會在事後被供應商持續追溯修改。建立嚴密的資料譜系,核心目的在於確保回測系統嚴格只採用歷史上當下投資人客觀能獲取的資訊(Point-in-Time 靜態截面),防範未經控管的 CSV 檔案引入不可逆的未來函數偏差。

未受版本控管之歷史資料導致回測失真的四種經典型態
資料靜默異動型態供應商在資料庫後端做了什麼?對程式交易回測造成的致命誤導
財報事後更正重述某上市櫃公司隔年因會計師查核更正前一年度虛增之營收與 EPS回測程式在歷史時間點提前使用了後續才揭曉的修正數字,產生前視偏差
除權息還原基準日漂移個股在近期發放新股利,導致軟體對全歷史的還原股價進行整體平移過去技術指標與均線的交叉買賣訊號點位全部位移,原先策略無法重現
下市個股靜默剃除新版資料接口在更新時悄悄刪除了歷年遭勒令下市的劣質投機股回測只在存活至今的強勢贏家池子裡運作,產生嚴重美化的生存者偏差
期貨連續月換月價差報價商修改台指期近月跨遠月的價差平滑銜接演算法歷史突破點位發生數十點位移,回測績效與過去報表完全對不攏
量化研發必備的資料衛生準則
  • 原始下載檔案絕對不直接修改:從台灣證券交易所(TWSE)或券商 API 抓取之原始檔,務必放入唯讀封存資料夾,檔名標示明確日期標籤(如 `twse_daily_20260901_raw.csv`)。
  • 財報資料必須標註揭露時點:每筆季報數據必須同時記載『會計季度截止日』與『公開資訊觀測站實際公告日』,策略僅能在公告日次一交易日觸發進場。
  • 重要資料檔案計算雜湊校驗碼:利用 SHA-256 為核心資料集產出數位指紋,記錄於研究日誌,隨時比對資料完整性。
  • 所有資料轉換全由腳本自動執行:嚴禁在 Excel 軟體中以手動方式刪除跳空或填補缺漏值;所有清洗與除權息計算必須以 Python 腳本留下可重現的執行軌跡。

常見問題

使用免費網路爬蟲抓取的台股歷史資料,在資料溯源上有哪些常見風險?

免費爬蟲網站經常在無預警情況下更改欄位定義、靜默重整除權息算法,且極少保存下市櫃公司的歷史資料,容易讓開發者在不知不覺中引入嚴重的生存者偏差與未來函數。

什麼是 Point-in-Time(時點精確)資料庫?為何如此昂貴?

Point-in-Time 資料庫保存了歷史上每一具體交易日當時全市場『客觀已知資訊』的靜態快照。這需要龐大的版本資料庫結構來記載每次財報修正的完整履歷,因此機構級數據商收費極為高昂。

個人程式交易者該如何做好基礎資料溯源?

建立本地資料庫管理習慣,將每次回測使用到的資料集檔名、資料筆數、下載來源網址與雜湊碼記錄在交易日誌中,避免每次回測時直接透過網路連線抓取變動未知的最新資料。

掌握量化策略的可稽核研究規範

嚴密的資料溯源、假設記錄與限制揭露,是量化策略由回測走向實盤獲利的必修學分。歡迎在第 45 課中系統學習。

進入第 45 課:可稽核研究流程