附錄:資料製作說明¶
整理從臺灣證券交易所(TWSE)抓取月頻歷史價格的概念,包含含息大盤指數、0050 與 00685L 的還原價,以及用含息大盤回推 00685L 上市前價格(00685L-SIM)的做法。目的是取得一條可以直接計算含息總報酬的月價格序列,作為後續回測與計算報酬、波動率的基礎。
整理後的月價格資料可參考 Google Sheet。
將 0050-ADJ、00685L-SIM 與 TAIEX 三者的還原價、原始價與模擬價繪製折線圖如下:
基本概念¶
為什麼以證交所為主要來源¶
Yahoo Finance 雖然方便,一次請求就能拿到全部月線,但以 0050 逐月比對後發現,其還原資料有漏還原配息、配息未依分割調整、個別月份收盤價錯誤等問題。而證交所提供的是官方收盤價與官方的除權息、分割資料,自行還原後的結果較可靠。因此台股上市標的以證交所為準,Yahoo 只用來補充證交所抓不到的標的(上櫃、海外)。
取月底收盤¶
由於我的回測只打算使用月頻資料,所以每個月只取最後一個有成交的交易日收盤作為當月價格。兩個月份的價格相除即為該月報酬。尚未結束的當月一律排除,避免拿到不完整的資料。
抓取原則¶
- 不需要認證:證交所的 API 都是直接的 GET 請求,不像 Yahoo 需要先取得 cookie 與 crumb。
- 放慢速度:多數 API 一次只能查一個月,抓 20 年就要兩百多次請求。證交所會暫時封鎖請求過於頻繁的 IP,因此每次請求之間間隔數秒,失敗時退避重試。
- 成功與否看回應內容:查無資料或日期超出範圍時,HTTP 狀態仍是 200,錯誤原因寫在 JSON 的狀態欄位中,不能只看 HTTP 狀態碼。
- 格式轉換:日期為民國年、數值帶千分位逗號,需要轉成西元與數字。
還原加權指數 (發行量加權股價報酬指數)¶
一般常見的「加權指數」(TAIEX,Yahoo 上的 ^TWII)是價格指數,成分股配息時指數會下跌,不反映股利再投入,長期下來會明顯低估大盤的實際報酬。
證交所另外編製「發行量加權股價報酬指數」,把現金股利視為再投入,也就是俗稱的含息大盤或還原加權指數。這個指數本身已經含息,所以抓下來後不需要再做任何還原,直接取每月最後一個交易日的指數值即可。
要點:
- 證交所的報酬指數最早只到 2003-01,更早的月份查不到,這也是整條資料的起點。
- 它是衡量「台股大盤含息報酬」的基準,也是後續模擬 00685L 的依據。
0050 & 00685L¶
0050、00685L 這類 ETF 與個股的處理方式相同:證交所只提供原始收盤價,除權息、分割造成的價格跳動需要自己還原。
還原的概念¶
除權息或分割時,股價會從「事件前收盤價」跳到「參考價」,但投資人的資產價值並沒有真的減少(配息拿到現金,分割拿到更多股數)。如果直接用原始收盤計算報酬,這些日子會出現一筆假的虧損。
還原的做法是把每個事件換算成一個還原因子:
每個月的還原價 = 該月原始收盤 × 之後所有事件的還原因子相乘。證交所分別公布除權息、減資、變更面額(個股分割)、ETF 分割四種事件,四者都有「前收盤價」與「參考價」,可以用同一個公式處理。例如 0050 在 2025-06 進行 1 拆 4 分割,還原因子即為 0.25;00685L 在 2026-07 也有 1 拆 24 的分割。
還原價的意義¶
- 以最新月份為基準,最新月份的還原價等於實際收盤,越早的月份被往下調得越多。
- 單看某個月的數字沒有意義,只有比值有意義。兩個月份相除就是這段期間的含息報酬,並假設股利發放當下全部再投入。
- 之後每出現一次新的配息或分割,所有舊月份都會再乘上新的因子,數值會改變,但月報酬不變。不同時間產生的資料不要混用。
增量更新¶
還原價只由兩樣東西決定:過去月份的原始收盤(不會再變),以及事件清單(新事件只會加在後面)。只要把這兩樣原始資料保存下來,之後每個月只需補抓新的月份與新事件,再重新計算一次,結果就和從頭抓取完全相同,不必每次重抓 20 年的資料。
00685L-SIM¶
00685L(群益臺灣加權正2)從 2017-03 才上市,資料太短,看不到 2008 年金融海嘯等較早的市況。00685L-SIM 是用含息大盤往前回推一段模擬的正 2 月價格,再和實際資料拼成一條從 2003 年開始的較長序列。目標是大致合理,不追求精確重現每日重新平衡的結果。
模型¶
- 槓桿倍數為 2。
- 年化成本是總拖累的淨額,包含經理費、保管費、轉倉成本,扣掉保證金利息收入。
為什麼用含息大盤¶
正 2 ETF 主要以期貨取得曝險,而期貨價格已經先扣掉預期股利,所以正 2 的報酬近似於「2 倍的含息報酬減去利率與費用」,而不是「2 倍的價格指數報酬」。用價格指數回推會低估報酬。
成本的校準¶
年化成本不是憑空假設,而是用 00685L 上市後與含息大盤重疊的期間校準:找出讓模擬值與實際值期末累積報酬吻合的成本,約為每年 0.67%。同時檢查每月 00685L 報酬對含息大盤報酬的迴歸 beta 約為 2,確認模型成立。資料更新後可以重新校準,檢查成本是否需要調整。
拼接¶
- 從含息大盤的第一個月(2003-01)起算出模擬淨值。
- 把模擬序列等比例縮放,讓它在 00685L 上市第一個月的價格和實際價格相同。
- 上市以前用模擬值,上市以後用實際值,拼接點前後的報酬不會跳空。
限制¶
- 單一成本:2003~2008 年台灣利率較高,理論上那段期間的拖累應該比近年大,但模型只用一個固定成本。
- 月頻看不到月內波動:槓桿 ETF 每日重新平衡,在震盪或連續重挫時會有波動耗損,月頻模擬看不到這部分,模擬出的最大回撤會偏樂觀。
- 只適用於追蹤加權指數的正 2:若要模擬其他槓桿 ETF(例如追蹤台灣 50 指數的 00631L),需改用它所追蹤指數的含息版本,並重新校準成本。