前回は、よりコストの面で有利な投資信託が見つかった場合に、乗り換えを行うべきかという問題の問題設定と非課税口座で考える場合のパターンを紹介しました。今回は課税口座にある投資信託から乗り換えて同じく課税口座で別のよりコストの低い投資信託を運用していくパターンを考えてみたいと思います。
基本的な前提は前回と変わっていないので、前回の記事を確認していない場合は是非そちらも合わせて確認してください。
基本的な前提条件と具体例
前提条件は前回のパターンと変わりません。
- : 初期投資額
- : 追加投資額
- : 年利率
- : コスト1
- : コスト2
- : 投資期間(年)
- : 税率
- 乗り換えを行わない場合の金額 ():
課税口座なので、税金を考えます。税金は運用益のみに対してかかってくるので、元本を引いて計算する必要があるところに注意してください。
- 乗り換えを行う場合の金額 ():
税金が絡むので数式が複雑になりますが、まず、x分に対して税金がかかり、税金を除いた(1-tax)x分にsを加えた額が、運用開始時の元本になります。その元本を運用して、その後、最後にも税金がかかるので、その分の税金を引きます。
計算結果として、乗り換えを行わない場合の金額 () と、行う場合の金額 () を比較すると、Pythonでは以下のように書けます。
s = 100 #投資元本
x = 10 #現在の運用益
r = 0.03 #今後の期待収益率
c1 = 0.1/100 #コスト1 0.1%
c2 = 0.05/100 #コスト2 0.05%
t = 20 #運用期間
tax = 0.2 #課税率
#課税口座から課税口座の場合
s_t1 = (s+x)*(1+r-c1)**t - ((s+x)*(1+r-c1)**t-s)*tax
s_t2 = (s+(1-tax)*x)*(1+r-c2)**t - tax*((s+(1-tax)*x)*(1+r-c2)**t - (s+(1-tax)*x))
print(s_t1)
print(s_t2)
投資元本 に対して、現在の運用益 を考慮し、今後の期待収益率 に基づいて運用を行うという設定を考えます。コスト1は 0.1% ()、コスト2は 0.05% () です。運用期間は 20 年 で、運用益に対する課税率は 20% () です。
この条件において実行すると、
-
乗り換えを行わない場合の金額:
-
乗り換えを行う場合の金額:
したがって、乗り換えを行った方がわずかに有利であることが分かります。
運用期間を変化させた場合
まずは運用期間が変わると乗り換えに対しての意思決定が変わるか見ていきます。
import numpy as np
import matplotlib.pyplot as plt
# パラメータ
s = 100 # 投資元本
x = 10 # 現在の運用益
r = 0.03 # 今後の期待収益率
c1 = 0.1 / 100 # コスト1 0.1%
c2 = 0.05 / 100 # コスト2 0.05%
tax = 0.2 # 課税率
# 運用期間の範囲
t_values = np.linspace(0, 60, 100)
# s_t1とs_t2を計算
s_t_diff = []
for t in t_values:
s_t1 = (s+x)*(1+r-c1)**t - ((s+x)*(1+r-c1)**t-s)*tax
s_t2 = (s+(1-tax)*x)*(1+r-c2)**t - tax*((s+(1-tax)*x)*(1+r-c2)**t - (s+(1-tax)*x))
s_t_diff.append(s_t1 - s_t2)
# グラフをプロット
plt.figure(figsize=(10, 6))
plt.plot(t_values, s_t_diff)
plt.xlabel('t')
plt.ylabel('diff')
plt.grid(True)
plt.show()
グラフは先ほどの設定で 運用期間 t を変化させた場合の乗り換えを行わなかった場合の資産から乗り換えを行った場合の資産の額を引いたグラフを示しています。
このグラフからわかるように、ほぼ全ての期間で乗り換えを行った方が良いことが分かります。正確には、最初の頃は若干乗り換えを行わない方がプラスになりますがそのプラス幅は非常に小さいです。
収益率を変化させた場合
今後の想定される収益率を変化させた場合に乗り換えを行うべきかどうかを判断する運用年数はどのように変化するのでしょうか?
前回と同様の方法でグラフを作成します。
import numpy as np
import matplotlib.pyplot as plt
# パラメータ
s = 100 # 投資元本
x = 10 # 現在の運用益
r_values = np.linspace(0.01, 0.1, 100) # 期待収益率の範囲
c1 = 0.1 / 100 # コスト1 0.1%
c2 = 0.05 / 100 # コスト2 0.05%
tax = 0.2 # 課税率
# s_t1 - s_t2 = 0 となる t を見つける
t_zeros = []
for r in r_values:
t_values = np.linspace(0, 60, 1000) # t の細かい範囲
s_t_diff = []
for t in t_values:
s_t1 = (s+x)*(1+r-c1)**t - ((s+x)*(1+r-c1)**t-s)*tax
s_t2 = (s+(1-tax)*x)*(1+r-c2)**t - tax*((s+(1-tax)*x)*(1+r-c2)**t - (s+(1-tax)*x))
s_t_diff.append(s_t1 - s_t2)
# 差が0になる t を探す
t_zero = None
for i in range(len(t_values) - 1):
if s_t_diff[i] * s_t_diff[i + 1] < 0: # 符号が変わるところ
t_zero = (t_values[i] + t_values[i + 1]) / 2
break
t_zeros.append(t_zero)
# グラフをプロット
plt.figure(figsize=(10, 6))
plt.plot(r_values, t_zeros, marker='o')
plt.xlabel('r')
plt.ylabel('t')
plt.grid(True)
plt.show()
今回の仮定では前回とは異なり、想定する収益率が小さい部分で収益率が変化すると大きく判断の基準となる運用年数が変化していることが分かります。収益率が高いと想定すればするほど運用年数は長くなります。収益率が高いのであれば、一度売却して税金がかかってしまうとその分投資できる資金が減ってしまうので、複利効果を利用できなくなってしまいます。その影響が特に出ているということを理解していただければと思います。
投資信託のコストを変化させた場合
それでは続いて現在保有している投資信託のコストを変化させた場合に,
判断基準となる運用年数がどのように変化するか見てみます。
グラフの横軸を確認すると、コストがわずかに変化するだけで、大きく運用年数は変化していることが分かります。
そしてコストが0.1%を少し超えたあたりで今回のその他の変数の条件では乗り換えを行うべきという結論になっています。
現在の運用益を変化させた場合
それでは最後に現在発生している運用益の大きさを変化させてみましょう。
X が20を超えたあたりで運用年数が60年を上回っています。つまり、もともと20%を超えた収益が出ている場合は、今回の設定では概ね乗り換えない方が良いと考えられそうです。
まとめ
今回は課税口座で運用することを前提として投資信託を乗り換えるべきかどうか検討を行いました。
いくつかの変数の中では特に想定する収益率の影響が大きいように見えます。比較的収益率が低い場合には、コストの差があまりなくても少しでもコストの安いものに乗り換えた方が、合理的である可能性が高いです。また、すでにかなり運用収益が出ている場合には、そのまま複利で運用していった方が有利になるケースもあります。