今天討論一個問題,要投資多久的時間之後,產生的利息會超越投資的數額, 研究這個問題只是出於好奇,對投資活動不會有什麼用處。

如果每個月定期定額投資10000元,n個月後的投資總額就是10000×n元, 但跟據未來值的計算,資產數值會超過10000×n, 兩者的差距就是投資帶來的利息, 什麼時候利息會超過10000×n,也就是複利的拐點什麼時候到來呢?

定期定額投資的數額對最終結果是線性的

未來值的計算有3個影響參數: 投入的數額、投資報酬率、和投資時間長度, 其中會影響指數計算結果的只有投資報酬率和投資時間長度, 投入的數額只有加乘作用,這個特性可以直接從公式看出來, 我們也可以驗算一下,假設每個月定期定額投資10000元,投資報酬率7%, 10年之後會變成1730848元

>>> import numpy_financial as npf
>>> npf.fv(0.07/12, 10*12, -10000, 0)
1730848.0743353704

如果改成每個月定期定額投資加倍,變成20000元,投資報酬率一樣是7%, 10年之後變成3461696,最終數字也是加倍而已。

>>> npf.fv(0.07/12, 10*12, -20000, 0)
3461696.148670741

也就是說,在計算複利拐點時,定期定額的數額並不會影響計算結果。

投資報酬率7%時的複利拐點

理解上述的理由後,我們就直接假設每個月定期定額投資10000元, 然後寫個小程式來算出複利拐點:

import numpy_financial as npf

rate = 0.07
monthly_investment = -10000

done = False
num_month = 1
while not done:
    total_asset = npf.fv(rate/12, num_month, monthly_investment, 0)
    total_investment = abs(monthly_investment) * num_month
    profit = total_asset - total_investment
    num_year = num_month / 12
    if profit >= total_investment:
        done = True
    print(f"{num_month} {num_year:.1f} {total_investment} {total_asset:.0f} {profit:.0f}")
    num_month += 1

整理一下輸出內容如下,複利拐點在第217個月(約18年)後到來。

第幾個月投資總額未來值利息總額
110000100000
2200002005858
33000030175175
215215000042722892122289
216216000043072102147210
217217000043423362172336

其他投資報酬率的複利拐點

其他投資報酬率也是用相同方法算出來,整理如下, 可以看出來,投資報酬率對複利拐點有邊際遞減效應, 投資報酬率從1%變成2%的話,複利拐點時間直接少一半, 相對的,投資報酬率從19%變成20%的話,複利拐點時間只減少4個月。

投資報酬率第幾個月(M)第幾年(=M/12)投資總額未來值利息總額
1%1510125.8151000003021248215112482
2%756637560000151303557570355
3%50542.15050000101147295064729
4%37931.6379000075893073799307
5%30425.3304000060952213055221
6%25321.1253000050638852533885
7%21718.1217000043423362172336
8%19015.8190000038011741901174
9%16914.1169000033802701690270
10%15312.8153000030718131541813
11%13911.6139000027873001397300
12%12810.7128000025738461293846
13%1189.8118000023686621188662
14%1109.2110000022130931113093
15%1028.5102000020404241020424
16%9689600001924760964760
17%917.69100001833228923228
18%867.28600001732102872102
19%816.88100001622904812904
20%776.47700001542408772408