網頁

2015年12月6日星期日

計算投資組合的回報率

近期有網友討論投資組合的回報率,亦有網友表示因計算投資組合的回報率太複雜而放棄,在這裡介紹一個簡單的計算投資組合回報率的方法,希望會對一部分網友有用。

這裡用的回報率是內部回報率(Internal Rate of Return, IRR),意思是指用這個(年化了的)回報率計算所有的資金流進、流出,最後會得出現在的總值

以下假設投資組合放在一間銀行的理財戶口作為例子計算:
戶口內包括了現金、股票、及/或其他資產,銀行每月會有月結單詳列戶口內的資金及總市值。

要計算組合回報率,只需要紀錄每次存入(或提出)的現金量(或其他資產的價值)及日期, 然後放在一張Excel spreadsheet,然後加上月結單的日期和總市值,最後加上formula =XIRR(資金進出, 日期, 10%)。(如果虧損的話,可用formula =XIRR(資金進出日期, -10%)

例如:
1/1/2005 投入 $100,000
1/4/2007 投入 $150,000
1/10/2008 提出 $80,000
1/7/2011 投入 $200,000
1/1/2013 投入 $200,000
30/11/2015 組合現值 $888,888

 


代表所有投入的資金,以每年7.50%增長,累積30/11/2015得到$888,888



其間發生的股票(或其他資產)買、賣、派息、紅股、供股……等等,只要是在理財戶口內部操作的,全部都可以不用理會。

計算投資組合回報率並不複雜,網友明白後可以按自己的情況和需要,設定自己的Excel spreadsheet。舉一反三,相信網友亦可以按自己需要,計算個別股票的回報率,只是如果持有的時間太短,得出的(年化了的)回報率會變得沒有意義。

註:
1)通常在股票除息後,收到股息前的短暫時間會有少許誤差,因一次的股息通常佔總資產不會太多,影響不大。
2)恒生指數是不計股息的,恒生指數平均大約每年有3%的股息,所以要跑贏恒生指數3%以上才可算是跑贏大市。



36 則留言:

  1. 自由兄好,一口氣拜讀了自由兄不少新舊文,感覺自由兄應是統計學的高手。

    流星不才,想請教一下IRR的用法:

    1-Jan-2015: ($10,000)
    1-Jul-2015: ($10,000)
    31-Dec-2015: $25,000

    計出來IRR = 34.21%

    但原來1年間我只做過一次買賣,就在1-JAN-2015的時候即日鮮賺了$5,000。如果以逐天的變動計算,第一天的變動是150%,第二天直到最後一天都是100%(期間資金投入後回報一樣是100%),即最後回報為
    150% * 100% * 100% * ... * 100% -1 = 50%。

    可以請教一下這樣計出來的回報跟IRR的差異在哪嗎?

    回覆刪除
    回覆
    1. 或許我再解釋一下IRR的意思,你會易明白些。

      IRR代表了整個投資過程的所有資金都是以這個回報率增長,以你舉出的例子,代表:
      10000 * (1+ r)^1 + 10000 * (1+r)^(1/2) = 25000
      所以 r=34%

      由於我們在31/12/2015結算,那5000元在甚麼時候取得已經不重要。

      刪除
    2. 謝自由兄的回覆。

      其實流星想指出的正是這點。流星認為,$5000是何時賺的其實很有關係。在本金只有$10000的時候賺$5000 (假設在1-JAN-2015 即日鮮),跟在本金有$20000的時候賺$5000(假設在31-DEC-2015 即日鮮),回報跟難度都不一樣吧?

      但如果採用IRR,計出來都是34%,故流星認為此算法未必能反映真實的狀況。(當然,流星也知道使用IRR來計算投資組合回報是很常見的做法,只是見自由兄對統計很熟悉,故想一起探討一下其合理性)

      刪除
    3. 你再想清楚,那$5000在$10000時賺取和在$20000時賺取,究竟有甚麼關係?
      難道你認為同樣在31/12/2015時有$25000,因為你在不同時間賺得,便會有不同的回報率?
      那麼甚麼叫回報率?當有人告訴你,他過去十年的回報率是20%時,那又代表甚麼?你又是否可以從這個回報率,知道他在這段時期的賺錢能力?

      想像以下例子
      在1/1/2015投入$10000,並即日賺了$10000(即100%),然後在1/7/2015再投入$980000,又即日蝕了$100000(即10%),以你的計法,在31/12/2015他是賺還是蝕,回報率是多少?

      你認為在1/1/2015只有$10000時賺取$5000比在31/12/2015有$20000時較難,如果只計一天,應該是的,但是當你在計整個時段時,仍有這個想法,是否有意義?

      刪除
    4. 有趣有趣,正確答案請參考以下網址: http://www.investopedia.com/exam-guide/cfa-level-1/quantitative-methods/discounted-cash-flow-time-weighted-return.asp

      其實流星的算法與自由兄的算法只是time-weighted return與money-weighted return的分別,本無對錯之分,只是見自由兄介紹IRR,故多咀看一下自由兄是否真的知道兩者的分別罷了。

      順帶一提,如果計回報率的目的是評估投資表現的話,那麼HPR是比IRR好的,因為IRR會把過多的比重放於初期表現上,故基金公司一般會使用HPR的計算方法而非IRR。

      刪除
    5. 謝謝流星兄提出Time-weighted Rate of Return和HPR。
      對於量度基金經理的表現,使用HPR會比較公平,資金公司用HPR合理。
      對於量度個人投資組合的回報,我不認為HPR會是一個好選擇。
      兩者各有適用的環境和對象。
      另外我並不同意「IRR會把過多的比重放於初期表現上」,流星兄可以給出其中理據嗎?

      刪除
    6. 流星在說「IRR會把過多的比重放於初期表現上」的時候,心中想的是退休人士的投資組合 (即資金有出冇入),這的確未必適用於其他情況。

      正確來說,應該是「IRR會把過多的比重放在資產值最重時期的表現上」,而這是否適用於個人投資組合,就如自由兄所說要看環境及對象了。

      流星其實只懂皮毛,還是魔術師兄說的較詳細,自由兄有興趣不妨參考一下。

      http://magician__yang.mysinablog.com/index.php?op=ViewArticle&articleId=12165736

      刪除
    7. 謝謝流星兄解釋「IRR會把過多的比重放於初期表現上」只是在說一些特殊的情況(例如:退休人士一次性的投入及分期提出)。

      IRR重視投入資金(資產)的回報,在資產值重的時期會提高比重,流星兄認為「過多」則是見仁見智。

      刪除
    8. 流星兄,
      再舉一個例子,假設某人每月投入$10,000投資,第一個月賺了$10,000(即100%),然後一直沒有賺蝕,到第十二個月共投入$120,000,擁有$130,000,可是在最後這一個月卻蝕了$20,000(即2/13),餘下$110,000。
      全年計共投入$120,000,餘下$110,000。

      麻煩流星兄分別用HPR和IRR計算一下他在這一年的回報率。
      作為個人投資組合計算回報率,流星兄是否認為兩個都可以接受,沒有問題?
      或是「IRR會把過多的比重放在資產值最重時期的表現上」而沒有HPR那麼好?

      也是這句,大家各自按自己的看法取捨。

      刪除
    9. 如果純看投資能力,HPR計出來的回報是高額的正數完全合理,賺的時候有本事賺100%,蝕的時候只蝕約15%,如此表現理應值得高的評價。 (在此先不討論是否運氣的問題)

      相反以IRR計算,則錄得負回報,這完全無視投資者的投資能力,只以金額賺/蝕論英雄,此亦為流星不採用IRR最主要的原因。試想想如該投資者在年初已擁有大筆資產(而非逐月累積),只要執行同樣的策略,最後獲到的回報金額已不可同日而語。

      謝謝自由兄舉出這個非常捧的例子,相信這正是我們看法差異的根源。如果自由兄不介意,容許流星把這例子及相關討論轉載嗎? 謝謝。

      刪除
    10. 所以我說對於量度基金經理的表現,使用HPR會比較公平,基金公司用HPR合理。HPR是把重點放在評估某人對資金取得回報的能力上。

      一般個人投資者重視投資資產取得的(複利計的)回報,成敗論英雄,投資回報率選取IRR更合適。

      流星兄可以轉載這例子及相關討論。

      刪除
    11. 如果將追求自由兄的例子延續至第二年,即每月投入一萬元,開頭的十一個月沒有賺蝕,但十二月尾時再蝕了九萬元,即金額由十二月頭的二十三萬元下降至十四萬元,那麼這位投資者以HPR計算自己這兩年的投資回報率是:

      (1+100%)*(1-15.4%)*(14/23)-1 = +3%

      但投入的總金額卻由二十四萬元下降至十四萬元。實在不知該如何評價這 +3% 的投資回報率。

      刪除
    12. 這方面的解說有點複雜。

      首先,想象這個是基金而不是投資組合,分別由24名不同的投資者在不同的時期投入基金,由基金經理管理。

      從基金經理的角度看,投資者在甚麼時候投入和提走資金,不在他的控制範圍內,他的責任是從投資者給他的資金,賺取某個(盡量是最大)的比例的回報。量度他的成績,也應該是按賺取回報的比例和用了的時間來衡量,因為整個投資期有24次的資金投入,所以分開24次的成績,整合為量度他的綜合成績表現的回報率,剔除了投資者投入資金的時間的影響,那便是HPR。

      從現實層面看,投資者大多是在大市興旺(高位)時大量入市(迎接未來的跌市),卻在大市低迷(低位)時退出(未來的升市冇份),如果以資金權重量度(IRR),往往會拖低基金表現,也對他們不公平,做成更大的誘因,基金使用HPR而不用IRR。


      從投資者的角度看,第一名投入資金的投資者的回報也是HPR,即你計出來的+3%。而其他23名投資者在不同時間點投入資金,則他們需要在不同的起始點來計算他們的回報率,每名投資者都有不同的回報率。

      現在考慮那24名投資者都是同一人,分24次投入資金,希望用一個回報率,代表了那24次投入了的資金的綜合表現,那麼便要對投入資金量加權,投入資金量越大的時候比重越高,IRR便是這樣的一個回報率。表示如果用這個(單一的)回報率,分別對那24次的投入資金(1萬元)計算,然後加起來,便得到現值的14萬元。這個例子得出的IRR約—43%,即綜合計算,投入的資金每一年不見了43%。


      希望以上的解說能解答到你的問題。

      刪除
    13. 忘記了HPR也應該要年化為每年的回報率,這次的約+3%是兩年的回報,年化後為每年約+1﹒5%。

      刪除
  2. //對於量度基金經理的表現,使用HPR會比較公平,資金公司用HPR合理。
    //對於量度個人投資組合的回報,我不認為HPR會是一個好選擇。

    自己就是自己的基金經理,投資者/股東只得一個,就是自己。對Other people's money交待要嚴謹,對唯一的股東(自己)反而可以圍威喂,這是哪(西?)門子的道理?

    //你再想清楚,那$5000在$10000時賺取和在$20000時賺取,究竟有甚麼關係?
    //難道你認為同樣在31/12/2015時有$25000,因為你在不同時間賺得,便會有不同的回報率?

    咦?說好的「複息的威力」呢?不是說愈早投資,滾存下去,時間就是你的朋友嗎?原來我20歲投資賺了1萬,跟80歲臨死之前炒輪賺了1萬,以人的一生作為IRR的計算期,回報率是沒有分別的?

    回覆刪除
    回覆
    1. 謝謝魔術師兄到訪。

      //自己就是自己的基金經理,投資者/股東只得一個,就是自己。對Other people's money交待要嚴謹,對唯一的股東(自己)反而可以圍威喂,這是哪(西?)門子的道理?

      這要看重點放在對投入資金的回報上,還是評估某人對資金取得回報的能力上了。基金公司是以基金經理的能力(無論是否運氣造成)作為賣點,而我是把重點放在對投入資金的回報上。

      //咦?說好的「複息的威力」呢?不是說愈早投資,滾存下去,時間就是你的朋友嗎?原來我20歲投資賺了1萬,跟80歲臨死之前炒輪賺了1萬,以人的一生作為IRR的計算期,回報率是沒有分別的?

      如果在20歲投資了1萬,一直持有作為投資,直至80歲臨死之前累積到2萬,我認為無論那賺得的1萬是在20歲時賺的,分期賺的,還是在80歲臨死之前才突然賺到的,他這1萬資本的(以他的一生計的)回報率只有一個。

      這方面可能也是見仁見智罷。

      刪除
  3. 閣下的資金回報有多少,不是正正反影了自己的投資能力嗎?你買某公司的股票,公司賺不賺錢,也不是靠管理層的營運能力嗎?不靠人的能力,資金豈有回報?難道錢會從天上掉下來?

    看IRR公式, 根本就係將所有discounted cashflow加起來,set NPV=0, 回報率就是折現值r。正正就係因為有折現因子,發生在20歲時的一萬折現後會較發生在80歲的一萬折現後為多,所以現金流發生的時間點對回報絕對有影響。

    回覆刪除
    回覆
    1. 由於在20歲投入了1萬後,那1萬本金及利潤便一直在投資組合內,沒有離開過,直到80歲臨死之前累積到2萬,投資者在80歲臨死之前結算,過程中的組合價格除了對投資者有心理影響外,看不到有甚麼大的分別。

      假設某甲於年初投資於A公司的股票,第二天股價便上升了一倍,然後一直維持不動,直到年末。
      某乙於年初投資於B公司的股票,期間股價上上落落,到年末時股價剛好上升了一倍。
      到年末計算他們兩人這一年的投資回報率。
      魔術師兄是否認為他們兩人在這一年應該有不同的回報率?
      我則認為他們兩人在這一年的回報率是一樣的。

      大家各自按自己的看法取捨。

      刪除
  4. //到年末計算他們兩人這一年的投資回報率。
    //大家各自按自己的看法取捨。

    你這是循環論證。

    你先定義了holding period(或結算期)是「一年」(或20至80歲的例子就是「一生」),根據定義你就可以不理中間的賺蝕浮動,管他第一天賺抑或是最後一天賺,結算是回報「當然」是一樣。因為憑定義,甲和乙的回報已經是一樣,你只是繞個圈來再說明一次而已。

    但是如果我以一日作為時間單位,一年下來就要複利計算365次,甲和乙的回報率就不同了。因為你講緊的是IRR,公式如下:

    http://www.investopedia.com/terms/i/irr.asp

    IRR的定義,結算期以t計算,如果t的單位是年,你一年的投資就計一次;20歲到80歲的投資就計61次。

    只要依數學公式拆解,你所謂的「一生」其實就是強硬將t定為1,將所有的discounted cashflow都ignore,以定義來support自己的說法罷了。邏輯上,以假設推出結論來證明假設,這就是循環論證。

    那麼幾時才以「一生」為單位,幾時以「一年」為單位呢?是的,你大可以話係「見仁見智」,但如果凡事以「一生」來計,t永遠等於1, 還有甚麼複式投資可言呢?所以t的單位應以subject matter來計算: 你做生意通常以月/季/半年/年結, 樓按通常以月(或bi-weekly)來計,於是t 就以相應的單位來計算才對.

    回覆刪除
    回覆
    1. 首先,討論的題目必須清晰,否則大家對題目有不同的解讀,便成為公說公話,婆說婆話,對不上口,討論也就沒有意義。

      在上述的例子,我只是定義了結算期,並沒有預設Holding period(指分開了的每一期sub-period),你可以隨意定義Holding period是一天或一個月計算,重要的是在一年後甲乙兩人買的公司股價都剛好上升了一倍,分別在於過程。

      再說20歲到80歲那條題目,首先要弄清楚,大家是否都在說相同的情境(scenario):
      某人20歲投資了1萬,一直持有作為投資,直至80歲臨死之前累積到2萬,然後在80歲臨死之前結算過去61年的回報率。
      i)他在20歲的第一年便把投資增值到2萬,然後一直沒有變動,直至80歲死前;
      ii)他的投資一直沒有變動,直至80歲那一年才增值至2萬。
      你可以把Holding period定義為一年。

      當我們在說回報率時,一般情況下都是指年化了的回報率,也即是指資金每年提供的回報,複式計算。因此61年便會複式計算61次。

      刪除
  5. //某人20歲投資了1萬,一直持有作為投資,直至80歲臨死之前累積到2萬,然後在80歲臨死之前結算過去61年的回報率。
    //i)他在20歲的第一年便把投資增值到2萬,然後一直沒有變動,直至80歲死前;
    //ii)他的投資一直沒有變動,直至80歲那一年才增值至2萬。
    由於沒有外部現金流,兩個cases的回報都是一樣,乘數是 commutative,小學雞都識:
    0 = -10000/(1+r) + 0/(1+r)^2 + 0/(1+r)^3 + .... + 0/(1+r)^60 + 20000/(1+r)^61
    (1+r)^60 = 2 => r = 1.16%
    根據IRR定義,(i)和(ii)本來就是同一件事,數式只得一條,只是文字上換個表達方式而已,那不是循環論證是什麼?
    不過,我原先是說
    //咦?說好的「複息的威力」呢?不是說愈早投資,滾存下去,時間就是你的朋友嗎?原來我20歲投資賺了1萬,跟80歲臨死之前炒輪賺了1萬,以人的一生作為IRR的計算期,回報率是沒有分別的?」
    既然我是在說「複息的威力」,愈早投資愈好,可以作複式滾存,那就不是說(i)20歲至21歲賺了1萬,然後 no action 了。
    為什麼我會用20歲和80歲比較不同時間點呢?那是對應你初頭所說:
    //再舉一個例子,假設某人每月投入$10,000投資,第一個月賺了$10,000(即100%),然後一直沒有賺蝕,到第十二個月共投入$120,000,擁有$130,000,可是在最後這一個月卻蝕了$20,000(即2/13),餘下$110,000。
    全年計共投入$120,000,餘下$110,000。
    每月投入一萬,80歲時總資產會是多少?跟20歲時兩者豈可同日而語?如果兩者是一樣,難道你自己又會等到80歲時才「賭一鋪」?你自己都沒有「身體力行」,原因就是人的投資能力(即HPR)是「因」,你最後的身家是「果」,而IRR計算出來的,只是以期終勝負推斷出來的「引伸投資能力」。

    回覆刪除
    回覆
    1. 原來魔術師兄是假設了在20歲至21歲賺了1萬,可以在其後的60年不斷複製,當魔術師兄說「我20歲投資賺了1萬,跟80歲臨死之前炒輪賺了1萬,以人的一生作為IRR的計算期,回報率是沒有分別的?」時,意思是「我20歲投資賺了1萬,然後不斷複製盈利到80歲,跟80歲臨死之前才炒輪賺了1萬……」而不是賺了的1萬是在20歲時賺得和80歲時賺得的分別。

      我當時是看到魔術師兄引用「難道你認為同樣在31/12/2015時有$25000,因為你在不同時間賺得,便會有不同的回報率?」而解讀的。

      在另一條和流星兄討論的題目(每月投資$10,000,一年後餘下$110,000),那是在投資了一年時結算過去一年的投資回報率,未來並不可知,投資環境、手法、回報都會不斷變化。除非題目特別指明,否則我不會有把過去一年的投資回報,自動地引申到未來數十年也會有相同回報這樣的想法,也不會隨便相信某某投資基金經理(或其他人)有這樣的能力,用HPR量度出某人在過去某段時間的表現,也可能只是運氣造成。

      大家對題目有不同的解讀,自然是自說自話,所以弄清楚題目,溝通才會有效率。

      刪除
  6. //大家對題目有不同的解讀,自然是自說自話,所以弄清楚題目,溝通才會有效率。

    職場上有一種風氣,就係用miscommunications去將問題搪塞過去,實在令人感概。

    Quote 追兄
    流星兄,
    再舉一個例子,假設某人每月投入$10,000投資,第一個月賺了$10,000(即100%),然後一直沒有賺蝕,到第十二個月共投入$120,000,擁有$130,000,可是在最後這一個月卻蝕了$20,000(即2/13),餘下$110,000。
    全年計共投入$120,000,餘下$110,000。
    Unquote

    我是on top of 你跟流星的討論提出20至80歲的說法,是基於追兄你自己定下的題目,說每月有新資金(10000元)投入,即有外部現金流(external cashflow)來分析。

    在IRR的公式,每一個subperiod應該是對應external cashflow 發生的時間點,所以我才將scenario 推至極限,將該人「投入」資金伸延至80歲來問你,並非說「斷複製盈利」。

    如果你斷章取義只看我引的兩句,而不是看我引用句子在整個case的含義,那我無話可說,畢竟網上留言不能以寫論文的嚴謹程度來看。

    回覆刪除
    回覆
    1. ////在另一條和流星兄討論的題目(每月投資$10,000,一年後餘下$110,000),那是在投資了一年時結算過去一年的投資回報率未來並不可知,投資環境、手法、回報都會不斷變化。除非題目特別指明,否則我不會有把過去一年的投資回報,自動地引申到未來數十年也會有相同回報這樣的想法//

      問題正正就是你呢番說話是自相矛盾的。既然每一個月都有資金投入,那麼每個IRR的subperiod 就是以月來計,回報計出來的是「月回報率」,而且會當成是第1個月跟第12個月的回報率都是一樣,一整年垃勻了。

      所以,基本上,IRR的算法,以你這個example來說,正正就是「自動地將過到12個月都得出相同回報」的做法。

      想想為什麼XIRR要你輸入日期?你按Excel 的F1 看看 XIRR的help,這個function的定義,就是以「日」來做sub-period,是以最終身家和期內現金流推出一個「不論市況,自動引伸」的日回報呢!

      追君既不認同「不論市況,自動引伸」的想法,想來也不認同「複利的效應」(例:「每年回報10%,7年後你就可以翻一翻」),那為什麼覺得IRR較HPR好?

      https://support.office.com/en-US/article/XIRR-function-DE1242EC-6477-445B-B11B-A303AD9ADC9D

      (按:HPR和IRR都不能分辨運氣因素,畢竟運氣這東西也可以算是人的「能力」吧。)

      刪除
    2. 翻看留言紀錄的時間點,魔術師兄是在2015年12月9日 上午10:59提出「原來我20歲投資賺了1萬,跟80歲臨死之前炒輪賺了1萬,以人的一生作為IRR的計算期,回報率是沒有分別的?」

      而我是在2015年12月10日 上午10:04向流星兄提出每月投入$10,000的例子的。

      我可沒有想過魔術師兄有這樣的能力,在我發出留言的前一天已經可以「on top of 你跟流星的討論提出20至80歲的說法,是基於追兄你自己定下的題目,說每月有新資金(10000元)投入,即有外部現金流(external cashflow)來分析。」沒有按魔術師兄現在的說法去理解當時的題目。

      在和流星兄討論的例子中,計算的是「過去」的回報率,沒有把過去的回報率引申到「未來」的意思。
      例如不會在年中時把過去半年計出的回報率,自動引申到後半年也會有相同的回報率。

      我不認同「不論市況,自動引伸」的做法,並不代表我不認同「複利的效應」。

      刪除
  7. 在下雖然是門外漢、但得見精彩對話也總算是眼界大開。

    回覆刪除
  8. 追求自由兄, 您好, 請問公式中 formula =XIRR(資金進出, 日期, 10%) 的10%是甚麼意思呢? 如設定不同的"%"又會有甚麼影響? 先謝過。

    回覆刪除
    回覆
    1. XIRR並沒有數學公式去解,Excel是放數字去試,大了便放個小一點的數字,小了便放個大一點的數字, Excel希望我們放一個比較接近的數字讓它去試,不一定是10%,放其他數字有時沒有影響,有時會出錯答案。

      刪除
    2. 按我的經驗,如果有盈利便用10%,如果虧損便用-10%。

      刪除
    3. 謝謝追求兄, 剛剛在EXCEL試一試, 原來第三個參數真係[GUESS], 哈哈, 陣間試下用來計往年既MPF回報先, 謝謝 :)

      刪除
    4. 用 IRR 計 MPF 的回報,很好。

      刪除
    5. 昨天計完自己既先知MPFA都係用IRR計, 我計到自己上年既係-3.40%, 另外有一條唔會斷既數係由2013年10月開始計既數係用來計多年來既整體IRR, 這樣起碼會令自己真正了解賺蝕。By the way, 積金局既資料係用財政年度計, 同我自己用年計既冇得做準確比較, 但我自己還是會傾向用日曆年度做紀錄, 謝謝追求兄令我獲益良多:)
      ---------------------------------
      強積金計劃統計摘要-2015年12月 (最新)
      http://www.mpfa.org.hk/eng/information_centre/statistics/mpf_schemes_statistical_digest/files/Dec_2015_Issue.pdf (第9頁)

      刪除
    6. 另外看了些資料, IRR也可以應用在保單上。

      刪除
    7. 用IRR計算回報相當普遍,咚兄不用客氣。

      刪除