← 研究動態
研究2026/05/30 下午03:29

你 APP 上看的「報酬率」,不是你的錢真正賺到的年化

SPYDCA定期定額0050IRRTWR投資績效

讀者互動

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

分享到:LINEFacebookX / Twitter

打開券商 APP 或基金平台,每檔商品都會秀一個年化報酬率給你看。這個數字告訴你的,是這檔商品本身過去漲了多少;它 沒有告訴你 ,你的錢真正賺到的年化是多少。

差距有多大?我們挑 SPY 與 0050.TW 兩個熟悉的標的,把過去每一個年份起開始定期定額、持有到 2026-05-30 的真實結局算出來。對每一個進場年份,同時報三個年化數字:

  1.  單筆投入的 CAGR  — 一次性投入後到今天的年化報酬。
  2.  定期定額的 TWR (time-weighted return)— 平台與基金月報常秀的那種「報酬率」。它把每一筆現金流的時點抹掉,只反映商品本身的漲跌。對任何單一商品定期定額, TWR 數學上等於同期間單筆投入的 CAGR 。
  3.  定期定額的 IRR (money-weighted return)— 你的錢真正賺到的年化。它把每一筆投入的時點都算進去。

如果 TWR 跟 IRR 一樣,平台秀的數字就是你的真實年化。問題是,兩者 幾乎不會一樣 。

SPY 過去 20 個進場年份:平台多半低估 1.14 個百分點

我們用 SPY 2005-01-03 到 2026-05-29 的真實 yfinance 收盤價(含息調整),每個進場年份起每月 1,000 元、共投入持有到 2026-05-30,算出每個年份的 lump CAGR、DCA TWR、DCA IRR。20 個進場年份中:

統計TWR − IRR(百分點)
中位數 −1.14 
平均−1.65
最低(DCA IRR 大幅高於 TWR)−8.33(2022 進場)
最高(DCA IRR 小於 TWR)+0.51(2023 進場)
TWR < IRR 的年份數 18 / 20 
TWR > IRR 的年份數2 / 20

20 個進場年份中, 18 個的 IRR 高於 TWR 。也就是說,APP 秀的「報酬率」絕大多數時候 低估 了你的錢真正賺到的年化。中位數差距是 1.14 個百分點 — 不算大,但累計到 20 年資產規模上不可忽略。

0050.TW 過去 16 個進場年份:低估幅度跳到 9.17 個百分點

同樣設計,0050.TW 用 2009-01-02 到 2026-05-28 的歷史收盤:

統計TWR − IRR(百分點)
中位數 −9.17 
平均−9.00
最低−19.50(2022 進場)
最高−3.73(2014 進場)
TWR < IRR 的年份數 16 / 16 
TWR > IRR 的年份數0 / 16

16 個進場年份 全部  TWR < IRR。中位數差 9.17 個百分點。也就是說,過去十幾年定期定額 0050 的台灣投資人,APP 上看到的年化報酬率系統性比真實年化低 9 個百分點以上。

舉幾個具體例子:

進場年份Lump CAGR = DCA TWRDCA IRRTWR − IRR
20099.58%15.90% −6.32 pp 
20106.61%16.99% −10.38 pp 
20116.47%18.47% −12.00 pp 
20138.45%22.30% −13.85 pp 
2022 −19.50 pp 

2011 進場為例:APP 上會看到「2011 起 0050 年化報酬約 6.5%」,但實際每月扣 1,000 元的投資人,IRR 是 18.5%。如果你拿那個 6.5% 來估算自己的退休金,會嚴重低估。

為什麼 IRR 系統性大於 TWR?

關鍵在於現金的時點。TWR 把每一筆注入的現金當作「不算報酬」 — 它衡量的是商品本身的漲跌軌跡;IRR 反過來, 所有現金的時點都算進去 。

把同一段持有期間切成早段、晚段兩半,計算累積報酬:

Path 形狀early − lateTWR − IRR解讀
早段大漲、晚段平偏正早期錢還少,沒吃到大漲,IRR 落後 TWR
早段平 / 跌、晚段漲偏負早期低點累積多,晚段大漲時資產夠大,IRR 領先 TWR

我們把 36 個 entry-year 全部 pool 起來算相關係數: corr(early − late, TWR − IRR) = +0.56 。方向上強支持上面這套機制。

過去 20 年的 SPY 與 17 年的 0050,多數窗口都含至少一次大跌後復甦(早期起點跨 2008 GFC、晚期起點跨 2022 熊市與其後的反彈),路徑普遍偏向「早段平 / 跌、晚段強漲」 — 所以 TWR < IRR 是過去這段歷史的常態。

但這個方向不是定律。 2019  起的 SPY 是反例 — 2019-2021 大漲、2022-2023 一輪盤整 — early 大於 late,TWR > IRR(+0.28 pp,平台略微高估)。 2023  起 SPY 也是反例:3 年內幾乎一路漲,DCA 資金多在中後段才放進去,IRR 略小於 TWR。

2022 那個極端值說明了什麼

SPY 2022 進場:lump CAGR 12.49%、TWR 同等於 lump CAGR、IRR 20.83%、TWR−IRR =  −8.33 pp 。 0050 2022 進場:TWR−IRR =  −19.50 pp 。

2022 是教科書級的「早跌後漲」路徑。2022 年初進場後,前 10 個月一路被熊市修理;DCA 投資人在低點不斷加碼累積部位;2023 ChatGPT 行情啟動、2024 AI 浪潮、2025 又一年強漲。整個 2023-2025 反彈期,DCA 投資人的資產規模已經很大,分母對 IRR 的拉抬效果遠遠強於 TWR 算出來的「商品報酬率」。

換句話說, 對 2022 進場的投資人,APP 秀的 0050 年化報酬率(接近 12%),跟你真正賺到的年化(32%)差了一個量級 。

對你的實務意義

第一, 評估自己的 DCA 績效,看 IRR 不要看 TWR 。多數券商 APP、基金平台秀的是 TWR;想知道自己真實年化,用券商提供的買賣對帳單、套到 Excel 或 Google Sheets 的 XIRR 函數,就是你的真實 IRR。

第二, 過去十幾年定期定額台股 / 美股的投資人,多半被平台低估了真實績效 。中位數低估 SPY 約 1 pp、0050 約 9 pp。這不是平台造假,是 TWR 跟 IRR 本身就是不同算法 — 但實務上絕大多數人沒意識到。

第三, 「DCA 表現很差」這個敘事,部分可能來自 TWR 視覺錯覺 。當投資人比較 DCA 的「報酬率」(TWR)與單筆投入的 CAGR,會看到接近一樣或略低;但如果改比 DCA 的 IRR vs lump 的 CAGR,DCA 多數年份反而領先。這跟 K1406 那篇「1 年內 DCA vs Lump」的結論並不衝突 — 1 年內 path effect 小,TWR ≈ IRR;多年窗口下 path effect 變大,TWR < IRR 就明顯了。

第四, 這個方向取決於市場路徑 。本研究涵蓋的窗口大多是「2008 之後 / 2022 之後」的反彈路徑。若未來是「現在大漲 + 10 年盤整」這種 path(如 2000-2010 的 SPY),DCA 投資人的 IRR 會反過來低於 TWR,平台會高估你的真實年化。

SPY 各 entry year TWR vs IRR

SPY 20 個 entry year 的 DCA TWR vs IRR。橘線(IRR)多數高於藍線(TWR)。下半 bar 是 TWR − IRR 差距,多為負值(IRR 領先 TWR)。

0050.TW 各 entry year TWR vs IRR

0050.TW 16 個 entry year 的 DCA TWR vs IRR。差距比 SPY 大很多,平均約 9 個百分點。

Lump CAGR vs DCA IRR 對照

同一個進場年份,單筆投入的 CAGR 與定期定額的 IRR 並列。多數年份兩者接近,但部分年份(如 0050 2010-2013、SPY 2022)DCA 的 IRR 大幅領先。

限制

  1.  單一資產、單一終點 :本實驗用 SPY 與 0050.TW、終點固定 2026-05-30。換終點(例如終點是 2022-10 熊市低點)方向會反轉。
  2.  未計手續費與稅 :實際 DCA 投資人扣手續費後 IRR 會略低,但不影響 TWR/IRR 分歧的大方向。
  3.  2008 之前 SPY 不在樣本內 :本實驗 SPY 資料起點 2005-01-03,所以 dot-com 高峰進場的情境(如 2000 entry)不在內。把資料拉到 1994,會新增 2 個 entry year 是「早期大漲(2000)+ 之後盤整 10 年」的反例情境,預期 TWR > IRR。
  4.  平台手續費差異 :實務上平台 TWR 計算公式版本不一,部分平台已切換到 IRR 顯示(多數退休帳戶平台);本文針對的是「年化報酬率」沒明確標註是 TWR 還 IRR 的場景。

對應實驗 / 復現

  • 主實驗:K1407(experiments/k1407/k1407.py)
  • 相關:K1406(DCA vs Lump 1 年內 conditional bootstrap)
  • 資料:experiments/k1406/data/{SPY,0050.TW}.csv(yfinance auto-adjust,不重抓)
  • 重跑:uv run python experiments/k1407/k1407.py
  • 4 張原圖:experiments/k1407/figures/
  • 數字一律 ground 在 experiments/k1407/k1407_results.json

相關文章

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