今天討論一個問題,要投資多久的時間之後,產生的利息會超越投資的數額, 研究這個問題只是出於好奇,對投資活動不會有什麼用處。
如果每個月定期定額投資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年)後到來。
| 第幾個月 | 投資總額 | 未來值 | 利息總額 |
|---|---|---|---|
| 1 | 10000 | 10000 | 0 |
| 2 | 20000 | 20058 | 58 |
| 3 | 30000 | 30175 | 175 |
| … | … | … | … |
| 215 | 2150000 | 4272289 | 2122289 |
| 216 | 2160000 | 4307210 | 2147210 |
| 217 | 2170000 | 4342336 | 2172336 |
其他投資報酬率的複利拐點
其他投資報酬率也是用相同方法算出來,整理如下, 可以看出來,投資報酬率對複利拐點有邊際遞減效應, 投資報酬率從1%變成2%的話,複利拐點時間直接少一半, 相對的,投資報酬率從19%變成20%的話,複利拐點時間只減少4個月。
| 投資報酬率 | 第幾個月(M) | 第幾年(=M/12) | 投資總額 | 未來值 | 利息總額 |
|---|---|---|---|---|---|
| 1% | 1510 | 125.8 | 15100000 | 30212482 | 15112482 |
| 2% | 756 | 63 | 7560000 | 15130355 | 7570355 |
| 3% | 505 | 42.1 | 5050000 | 10114729 | 5064729 |
| 4% | 379 | 31.6 | 3790000 | 7589307 | 3799307 |
| 5% | 304 | 25.3 | 3040000 | 6095221 | 3055221 |
| 6% | 253 | 21.1 | 2530000 | 5063885 | 2533885 |
| 7% | 217 | 18.1 | 2170000 | 4342336 | 2172336 |
| 8% | 190 | 15.8 | 1900000 | 3801174 | 1901174 |
| 9% | 169 | 14.1 | 1690000 | 3380270 | 1690270 |
| 10% | 153 | 12.8 | 1530000 | 3071813 | 1541813 |
| 11% | 139 | 11.6 | 1390000 | 2787300 | 1397300 |
| 12% | 128 | 10.7 | 1280000 | 2573846 | 1293846 |
| 13% | 118 | 9.8 | 1180000 | 2368662 | 1188662 |
| 14% | 110 | 9.2 | 1100000 | 2213093 | 1113093 |
| 15% | 102 | 8.5 | 1020000 | 2040424 | 1020424 |
| 16% | 96 | 8 | 960000 | 1924760 | 964760 |
| 17% | 91 | 7.6 | 910000 | 1833228 | 923228 |
| 18% | 86 | 7.2 | 860000 | 1732102 | 872102 |
| 19% | 81 | 6.8 | 810000 | 1622904 | 812904 |
| 20% | 77 | 6.4 | 770000 | 1542408 | 772408 |