2026年十月14日 · 資料

為什麼回測需要下市紀錄帳簿

為什麼回測需要下市紀錄帳簿

若股票回測排除了下市公司,帳面上可能呈現亮眼報酬,卻悄悄抹去了部分最糟的結果。問題往往始於一個務實的選擇:下載今天的股票代號清單,再用這些代號回測過去10年。這份清單天生就只包含倖存者。

要讓已消失的公司留在研究範圍裡,光是加上幾個舊股票代號並不夠。你必須知道各證券何時存在、何時進出交易所,以及最終價值如何處理。3種常見的取巧做法,會以不同方式丟失這段歷史。

錯誤 1:每一年都使用今天的成分股

想像一下,從2010年起,以目前的 S&P 500 成分股測試月頻動能策略。倒閉、合併或被剔除出指數的公司,在每次調倉時都不會出現。你的策略根本沒有機會買進日後的輸家,歷史投資範圍只留下最終證明自己夠成功、得以留在指數中的股票。

這種遺漏通常會讓平均報酬虛高、回撤看起來較平穩,也讓策略似乎偏好動能或品質等簡單因子。這些訊號或許確實有效,但回測也悄悄給了它們一項優勢:知道哪些公司活了下來。

使用時點成分資料。每次調倉時,符合資格的證券都應依據當時可取得的資訊來判定。成分資格需要記錄生效日期;若策略交易的範圍比指數更廣,也要納入預定指數檢視日之間的變動。

錯誤 2:把找不到股票代號當成缺失資料

現代資料供應商的檔案裡找不到某個股票代號,很容易就略過。載入程式看見近期沒有資料列,便將該代號標記為過時並剔除。程式可能會記錄警告,但回測仍會繼續,留下更整齊的資料面板,也沒有記錄哪些證券遭到排除。

有些證券因合併或收購而消失;有些則因財務困境、破產或未符合上市規則而下市。它們最後一次普通收盤價不一定代表投資人實際收到的價值。若一檔陷入困境的股票停止交易時價格為 $0.40,之後又遭註銷,假設持倉仍以 $0.40 計價,就可能讓一筆毫無價值的持倉永遠留在投資組合裡。若直接剔除,則可能把虧損整筆抹去。

建立證券主檔,記錄上市與下市日期、原因代碼,以及適用時的承接公司或現金對價。下市事件應依持有人實際收到的對價,平倉或轉換持倉。處理細節取決於事件與金融商品;單一通用的「最後價格」規則無法涵蓋所有情況。

事件持倉可能轉為回測應檢查的處理方式
現金收購依交易條件取得現金在生效日記錄現金所得
換股合併承接公司的股票套用換股比例,並以承接公司的證券繼續追蹤
破產註銷幾乎沒有或完全沒有可回收價值依相關分配或註銷紀錄結清持倉

錯誤 3:修補投資範圍,卻忽略報酬計算方式

加入歷史成分股只能解決選股問題。如果報酬序列在最後一次普通收盤時就中止,仍可能漏掉下市報酬。若加入下市報酬,卻套用在已包含終止事件的價格序列上,就可能把虧損計算2次。不同資料供應商的慣例不盡相同,光看欄位名稱未必能判斷檔案採用哪種慣例。

假設一檔股票從 $10 跌至 $1,接著下市,並回報 −80% 的終止報酬。如果先計算出90% 的價格跌幅,再乘上另一筆 −80% 的下市報酬,合併後的虧損會變成98%,這並不合理。問題在於把描述同一段價格走勢、且彼此重疊的兩種衡量方式合併計算。

建立投資組合報酬前,請記錄普通報酬是否包含分配與下市結果,以及每筆報酬涵蓋的日期。從原始觀測資料到最終投資組合價值,逐一核對幾筆已知的公司行動。也要納入跨越事件期間持有的部位;證券層級的圖表看起來或許合理,投資組合帳簿卻可能把所得記在錯誤的日期。

股票代號消失時,應把它視為需要釐清的事件。別因為資料檔不再回報,就推斷這家公司已不再重要。

如何檢查納入下市處理的回測?

比較 Sharpe 前,先檢查數量與涵蓋狀況。逐年回報符合資格的證券數量、下市數量,以及因資料問題未能判定而遭排除的數量。接著抽查不同原因造成的下市案例,追蹤每筆持倉直到最終投資組合價值。

用納入與排除下市股票的方式各跑一次相同策略,但應把兩者差距解讀為資料品質的診斷資訊,不能單憑這個差距就當作修正後的績效估計。投資範圍規則、報酬慣例與事件時點,都必須符合你所要回答的問題。可信的結果來自一份能解釋每筆持倉如何進場、經歷哪些公司行動,以及離場時留下多少價值的帳簿。

存活者偏誤下市股票時點資料回測
← 所有文章