Adjusted price for total return calculation (2)

本文內容已被 [ slow_quick ] 在 2024-01-18 19:19:02 編輯過。如有問題,請報告版主或論壇管理刪除.

Adjusted price for total return calculation (2)

前幾天囉囉嗦嗦寫了幾篇,其實主要是想讓大家自己用實際數據去鑽研。回貼時玩笑話得罪了anne8網友,還請見諒。

這篇是前一篇的續集,主要公式njrookie網友都已經提供,但我再囉嗦幾句。 金融證券的投資回報率要不要包括分紅大家都說要。但要不要包括分紅再投資的盈虧anne8網友與其他網友有分歧,這個很正常,沒有對錯。有些人不想把分紅再投資,算起來就不一樣。但金融業特別是基金管理行業要考慮漂亮的業績,所以業界標準都要考慮分紅再投資。我這裏隻講考慮分紅+分紅再投資的回報,與anne8網友的算法有分歧請理解。

如果某個金融證券有每日收盤價\(P(t)\),那麽在沒有分紅的情況下,每天的total return非常簡單,就是 \(P(t)/P(t-1)\),而在某個時間段 \(0 \text{ to } n\) 的 total return,俗話說複利或英文 compounding,就是: \[ [P(1)/P(0)] \times [P(2)/P(1)] \times \cdots \times [P(n)/P(n-1)] = P(n)/P(0) \] 從這個例子我們看到,隻要有準確的每天 total return,沒有疑問乘起來就是階段 total return。

當某個金融證券有分紅時,要考慮分紅再投資,那麽什麽時候分的紅、用什麽價錢再投資就成了非常關鍵的事情。Yahoo Finance 用的算法,njrookie網友說是 textbook 101 中的 continuous reinvestment,7天24小時不間斷的那種市場。如果分紅發生在時間 \(t\),分紅前瞬間股價是 \(P(t)\),分紅量是 \(D(t)\),分紅後瞬間股價就是 \(P(t+)=P(t)-D(t)\),然後立即就把分紅 \(D(t)\)用這個新股價再投資了。如果原來有1股,那麽新增加的股數就是 \(D(t)/P(t+)\),總股數是 \[ 1 + \frac{D(t)}{P(t+)} = 1 + \frac{D(t)}{P(t)-D(t)} = \frac{P(t)}{P(t)-D(t)} \] 分紅前的1股經過分紅然後瞬間再投資就變成了 \(P(t)/[P(t)-D(t)]\) 股。反過來也可以說,分紅後的1股是從分紅前的 \([P(t)-D(t)]/P(t)\) 股經分紅再投資變來的。這個公式不是別的,就是 Yahoo Fiance 上說的 Dividend Multiplier: \[ \text{Dividend Multiplier} = 1 - \frac{D(t)}{P(t)} \] 當然了股市每天下午4點關門,我們並沒有連續市場。但我們依然能計算每天的 total return: \(t+1\) 那天收盤時的1股,是前一天 \(t\) 收盤時(尚未分紅)\(1-D(t)/P(t)\)股變來的,所以 total return 就是: \[ \frac{1 \times P(t+1)}{[1-D(t)/P(t)] \times P(t)} \] 這個公式的分母正是 Yahoo Finance 裏麵的 Adjusted Closing Price。對最近的 dividend event,很簡單 Adjusted Closing Price = \(P(t) - D(t)\)。

Yahoo Finance 計算 Adjusted Closing Price 時每天都有個當天的 multiplier (both divedends and splits),沒有什麽事件那個 multiplier 就是1, 否則不是1。這個每天的 multiplier 往回逐項相乘就得到了曆史上某一天用到的 cumulative multiplier,這個 cumulative multipler 的經濟意義就是: 現在的一股是過去多少股變過來的 。Adjusted Closing Price = Cumulative Multiplier \(\times\) (Unadjusted) Closing Price。這樣一來我們計算階段 total return 就不用翻舊賬,直接把兩個時間點的 Adjusted Closing Price 相除就行了。

Yahoo Finance 用了教課書上的 continuous reinvestment,這個太學術化。金融業標準稍微有些兩樣,用的是njrookie網友說的算法: \[ \text{Dividend Multiplier} = \frac{P(t+1)}{P(t+1)+D(t)} \] 這裏時間點 \(t+1\) 是 ex-div date。這個公式沒有學術氣,很簡單,你前一天的1股變成了 \(1+D(t)/P(t+1) \) 股,或者反過來說前一天的 \(P(t+1)/[P(t+1)+D(t)]\) 股變成了現在的1股。雖然我不敢100%打包票,這個公式用到 Open End Muutual Fund distribution reinvestment 還是非常符合實際情況的。我這裏留個作業,希望好學的網友把你共同基金的 transaction history 打開看看,如果你選了 distribution reinvest,那個 reinvestment 發生在哪一天,是什麽價錢。

Yahoo Finance 做的 Adjusted Closing Price 與金融業界用的標準絕大多數情況下差別非常小,這個njrookie網友已經提到。如果 Yahoo Finance 有完整的數據,它家的 Adjusted Closing Price 用於計算 total return 應該還是可以的。其他的網站怎麽計算我不太清楚。我現在還在公司上班,我們用Bloomberg數據,據說每年兩萬多,自己買有些心疼。我下一篇會講什麽情況下這些標準計算會誇大 total return。

Ref: njrookie: How to calculate adj price on ex div day

【順便提一句,Yahoo Finance上的股價都是已經 split-adjusted,那個 adj. closing 是進一步 dividend adjusted。】

【很可惜,Yahoo Finance 的數據質量不過硬,已經有網友指出 VFIAX(Vanguard 500 Index Fund Admiral Shares)的紅利數據缺失,我也能證實。不知退休後還能用誰家高質量免費數據】

【我試了一下 https://dqydj.com/mutual-fund-return-calculator/ (矽穀居士推薦的網站),至少 VFIAX 最近一次紅利再投資是對的(match Bloomberg),Yahoo Finance 不對,紅利數據缺失】

 

所有跟帖: 

讚你認真,數學牛逼。每一筆分紅再投資,你這樣確實精確,就是太麻煩了。我都是根據excel 公式算個大概。 -bobpainting- 給 bobpainting 發送悄悄話 (0 bytes) () 01/18/2024 postreply 13:52:34

謝謝謬讚!其實我不怎麽計算,都是哪裏有拿來就用 -slow_quick- 給 slow_quick 發送悄悄話 slow_quick 的博客首頁 (0 bytes) () 01/18/2024 postreply 14:50:35

糊糊塗塗就行了,放眼大picture -品酒- 給 品酒 發送悄悄話 (197 bytes) () 01/18/2024 postreply 13:56:43

就是應該搞明白啊,搞明白細節並不代表沒有大局觀。如果所有的細節都糊裏糊塗的,最終的結果肯定是打了折扣的 -samma1- 給 samma1 發送悄悄話 (0 bytes) () 01/18/2024 postreply 14:27:53

這個要讚一下。有理有據,追根求源,精神可嘉 -Runnymede- 給 Runnymede 發送悄悄話 (0 bytes) () 01/18/2024 postreply 14:00:55

感謝分享,非常專業,讚! -samma1- 給 samma1 發送悄悄話 (0 bytes) () 01/18/2024 postreply 14:25:36

可以有分紅不再投資,估計很多人因此而大幅降低回報;或compounding 分紅股再分紅,可 -悠步天- 給 悠步天 發送悄悄話 (206 bytes) () 01/18/2024 postreply 14:30:09

要是碰到老是下跌的東東,分紅還是拿去吃頓小籠包更合適,哈哈 -slow_quick- 給 slow_quick 發送悄悄話 slow_quick 的博客首頁 (0 bytes) () 01/18/2024 postreply 20:01:10

和稀泥打哈哈 -悠步天- 給 悠步天 發送悄悄話 (0 bytes) () 01/18/2024 postreply 21:00:56

讚專業精神!樓主將來退休以後大概也用不著Bloomberg了。 -鯉魚洲- 給 鯉魚洲 發送悄悄話 鯉魚洲 的博客首頁 (0 bytes) () 01/18/2024 postreply 14:48:25

現在太依賴它了 -slow_quick- 給 slow_quick 發送悄悄話 slow_quick 的博客首頁 (0 bytes) () 01/18/2024 postreply 14:49:14

讚! -yuanshangdu- 給 yuanshangdu 發送悄悄話 yuanshangdu 的博客首頁 (0 bytes) () 01/18/2024 postreply 15:12:42

讚認真, 更讚大氣的提到anne8 , 期待"講什麽情況下這些標準計算會誇大 total return" -Wendy666- 給 Wendy666 發送悄悄話 (0 bytes) () 01/18/2024 postreply 15:27:23

請您先登陸,再發跟帖!