今回は金融庁の
NISA積立シミュレーターがやばいので
その解説です。
解説動画はこちら
金融庁の積立シミュレーター
これがそのシミュレーターです。
サイト
ここで
毎月の積立1万円
年利12%
40年間
で試算してみます。

こんな感じになりました。
年利が高すぎますが
計算がわかりやすいようにして
計算してみた結果です。
40年後の資産は
11765万円になりました
Pythonでのシミュレーションコード
金融庁のシミュレーターの結果は
11765万円 なので
ほぼ同じ結果になりました。
落とし穴
先程の計算結果 : 117,647,725 円
とは大きく乖離してきます。
年利から月利に直して計算するコードはこちら
月利計算だとこのくらいの金額になります。
colabで実行するとこのような画面が出てきます

これを設定して実行すると

積立のシミュレーション結果が反映されます。
colabで試せるので
コピペして試してみてください。
単利と複利、月利と年利
この辺りの関係を正しく計算できるように
資産形成に取り組みたい方は
この機会にプログラミングも併せて
学んでみてはいかがでしょうか?
それでは。
NISA積立シミュレーターがやばいので
その解説です。
解説動画はこちら
金融庁の積立シミュレーター
これがそのシミュレーターです。
サイト
ここで
毎月の積立1万円
年利12%
40年間
で試算してみます。

こんな感じになりました。
年利が高すぎますが
計算がわかりやすいようにして
計算してみた結果です。
40年後の資産は
11765万円になりました
Pythonでのシミュレーションコード
先程のシミュレーターと同じ計算を
Pythonでも計算してみましょう。
シミュレーションコード
monthly_rate = 0.12 / 12 # 月利(年利12%) months = 40 * 12 # 総月数(480ヶ月) monthly_payment = 10000 # 毎月の積立額(マイナス表記にする) total = 0 for _ in range(months): total = total * (1 + monthly_rate) + monthly_payment print(f"将来の資産総額: {total:,.0f} 円")将来の資産総額: 117,647,725 円
金融庁のシミュレーターの結果は
11765万円 なので
ほぼ同じ結果になりました。
落とし穴
実はここに落とし穴があります!!!!
年利計算での正しいシミュレーション結果は
こうなります。
こうなります。
(年末に積立するパターン)
year_rate = 0.12 # 年利12% years = 40 # 総年数(40年) year_payment = 120000 # 年の積立額 total = 0 for _ in range(years): total = total * (1 + year_rate) + year_payment print(f"将来の資産総額: {total:,.0f} 円")将来の資産総額: 92,050,970 円
先程の計算結果 : 117,647,725 円
とは大きく乖離してきます。
からくり
金融庁のサイトのシミュレーションは年利ではなく
年利を12ヶ月で割った月利の複利(年利 / 12)で計算しているようです。
そのため年利と月利では、計算結果が大きく異なってきます。
年利を12ヶ月で割った月利の複利(年利 / 12)で計算しているようです。
そのため年利と月利では、計算結果が大きく異なってきます。
もし月利複利計算を正しくするとしたら
12乗して年利になるような値を月利にしないといけません。
月利 = (1 + 0.12) ** (1/12) - 1
= 0.009488792934583046 = 0.948%
月利 = (1 + 0.12) ** (1/12) - 1
= 0.009488792934583046 = 0.948%
年利から月利に直して計算するコードはこちら
monthly_rate = (1 + 0.12) ** (1/12) - 1 # 月利(年利12%) months = 40 * 12 # 総月数(480ヶ月) monthly_payment = 10000 # 毎月の積立額(マイナス表記にする) total = 0 for _ in range(months): total = total * (1 + monthly_rate) + monthly_payment print(f"将来の資産総額: {total:,.0f} 円")将来の資産総額: 97,010,200 円
月利計算だとこのくらいの金額になります。
資産推移のシミュレーター
年利を月利換算しても正しく計算するようにしたものは
こんな感じになります。
積立シミュレーション設定
こんな感じになります。
import pandas as pd import plotly.express as px def plot_investment(rate_percent, years, payment_man): annual_rate = rate_percent / 100 monthly_rate = (1 + annual_rate) ** (1/12) - 1 months = years * 12 monthly_payment = payment_man * 10000 results, ci_total, am_total = [], 0, 0 for month in range(1, months + 1): ci_total = ci_total * (1 + monthly_rate) + monthly_payment am_total += monthly_payment results.append({'月': month, '資産総額': ci_total, '積立金額': am_total}) df = pd.DataFrame(results) fig = px.line(df, x='月', y=['資産総額', '積立金額'], labels={'value': '金額(円)', 'variable': '項目'}, title=f'毎月{payment_man}万円積立(年利{rate_percent:.1f}%・{years}年)の資産推移') fig.update_layout( yaxis_tickformat=',', height=400 ) fig.show()
積立シミュレーション設定
#@title 積立シミュレーション設定 rate_percent = 5.1 # @param {type:"slider", min:1.0, max:20.0, step:0.1} years = 30 # @param {type:"slider", min:10, max:50, step:1} payment_man = 20 # @param {type:"slider", min:1, max:30, step:1} plot_investment(rate_percent, years, payment_man)
colabで実行するとこのような画面が出てきます

これを設定して実行すると

積立のシミュレーション結果が反映されます。
colabで試せるので
コピペして試してみてください。
まとめ
金融庁のサイトのシミュレーターは
年利と月利を齟齬しているので
年利と月利を齟齬しているので
数十年後の金額が大きく乖離してくるようです。
単利と複利、月利と年利
この辺りの関係を正しく計算できるように
日々プログラムでシミュレーションすると安全です。
資産形成に取り組みたい方は
この機会にプログラミングも併せて
学んでみてはいかがでしょうか?
それでは。
コメントする