投資信託の乗り換えとコスト

投資・ファイナンス

投資信託を選ぶ際に同じぐらいのリターンが期待される物同士であれば、よりコストが低いものを選択するのが合理的になります。しかしすでにある程度投資している投資信託が存在する場合、その投資信託を売ってよりコストの低い投資信託を購入した方がいいのか、それともそのまま今の投資信託を保有し続けるべきなのか?と迷ったことはありませんか?
今回はこの問題を具体例を用いながら、シミュレーションなどを行うことでどういった場合には乗り換えを行うべきでどういった場合には乗り換えは不要なのか考えてみたいと思います。

検討するパターン

一口に投資信託の乗り換え問題を考えると言っても様々な条件を考えなければなりません。そこで、まずはどのようなケースを想定するのかを整理していきたいと思います。
検討パターンを考える上で最も重要になってくるのが課税か非課税かということになりますのでまずはこの税金の制度によって分類を行います。
今回は大きく次の4つのパターンを考えていきます。
1. 非課税口座にある投資信託から同じく非課税口座で別のよりコストの低い投資信託に乗り換えを検討する場合(ただしすでに利益が出ている分に関しては、課税口座で運用する)
2. 課税口座にある投資信託から同じく課税口座で別のよりコストの低い投資信託に乗り換えを検討する場合
3. 非課税口座にある投資信託から課税口座で別のよりコストの低い投資信託に乗り換えを検討する場合
4. 課税口座にある投資信託から非課税口座にある別のコストの低い投資信託に乗り換えを検討する場合
かなりボリューム満点になるので、別々の記事でそれぞれのパターンの考え方を示していきます。

全4回で扱うコードについては、こちらのGoogleColabで確認できます。

問題設定

前項で説明した4つのパターンを考えていきますが、まずは全てのパターンに共通する前提条件を考えます。
投資元本S に対して現在運用益 がX発生しているとします。
この時、今持っている投資信託の今後の期待収益率は年率r,コストは年率c1
乗り換えを検討している投資信託の今後の期待収益率は年率r,コストは年率c2
と仮定します。
また上記の設定でt年運用するとします。税率はtaxです。

今回は、何らかのインデックス投資信託の乗り換えをイメージしているので、期待収益率は同じでコストが変わったと想定しています。基本的な想定としては今持っている投資信託よりも乗り換えを検討している投資信託の方がコストが安いので、$c1>c2$と考えています。
具体的な例をパターン1の変更前も変更後も非課税口座で運用する場合で見てみます。
パターン1の想定としては、NISA 口座の積立投資枠や成長投資枠で1年目に購入した投資信託が既にあるが、2年目になって、よりコストの安い投資信託が見つかった。今年は年間投資限度額はちょうど1年目に購入した投資信託分(元本分のみ)だけ余りそうなので、1年目に購入した投資信託を別の投資信託に乗り換えるか検討している。というものを考えています。かなり特殊な絞られた条件ですが一旦この条件で考えてみます。条件の緩和については、これから先で紹介するシミュレーションの設定で行うことができます。
ちなみに、当初元本からはみ出たすでに利益が出ている分を課税口座で運用するという設定がなければ、基本的に非課税口座枠に余裕があるならば、乗り換えた方がお得になります。

投資元本 に対して、現在の運用益 を考慮し、今後の期待収益率 に基づいて運用を行うという設定を考えます。コスト1は 0.1% ()、コスト2は 0.05% () です。運用期間は 20 年 で、運用益に対する課税率は 20% () です。

この状況で、乗り換えを行わない場合と行う場合の資産額を計算します。

  1. 乗り換えを行わない場合の金額 ():

  2. 乗り換えを行う場合の金額 ():
    – 元本部分は非課税で運用します。既に利益が出ている部分は課税口座で運用します。

計算結果として、乗り換えを行わない場合の金額 () と、行う場合の金額 () を比較すると、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_t2 = s*(1+r-c2)**t + x*(1+r-c2)**t- x*(1+r-c2)**t*tax
print(s_t1)
print(s_t2)

実行すると以下のようになり

  • 乗り換えを行わない場合の金額:
  • 乗り換えを行う場合の金額:

したがって、乗り換えを行わない方がわずかに有利であることが分かります。

パターン1:非課税口座での乗り換え

まずは、先ほど具体例で見た非課税口座間での乗り換えについて、運用期間や想定する期待収益率、コストの差かどの程度異なれば乗り換えを行うべきなのか条件を変えて検討していきたいと思います。

運用期間

一般的に運用期間が長くなれば長くなるほど支払うコストは大きくなるので、コストが安い投資信託に乗り換える方が有利になります。
具体的にどのくらいの運用期間で、乗り換えた方が良くなるのかその他の変数は先ほどの設定のままで見てみます。

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_t2 = s*(1+r-c2)**t + x*(1+r-c2)**t- x*(1+r-c2)**t*tax
    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()

グラフ1

このグラフの縦軸は乗り換えを行わない場合の最終的な資金総額から乗り換えを行った場合の総額を引いた金額を示しています。横軸は運用期間を示しています。
従って、乗り換えを行わない場合の方が不利になるのは、縦軸がマイナスの領域になります。ほぼ0となるのがt =38付近なので38年以上運用するような場合には、先ほどの想定を前提に置くならば乗り換えた方がいいということになります。

想定収益率の変化

今後の1年間あたりの期待収益率として r を置いていますが、この大きさによってどのくらい乗り換えを行うべきか行わないべきかを決める分岐点となる運用期間は変化するのでしょうか?
先ほどの例を、r=0.05に変更して実行してみましょう。
グラフ2
ややグラフのカーブの形状が変化しています。判断の分岐点となる運用年数は、若干長くなっているように見えます。
rをより連続的に変化させた場合に、判断の分岐点となる運用年数がどのように変化するのでしょうか?
先ほどは 運用期間 t のみを変化させていますが、今回は、rを変化させながら、tも変化させた時に、乗り換えなかった場合の収益から乗り換えた場合の収益を引いた金額の符号が変わるtの値に着目したいと思います。この値に着目すれば、だいたい何年ぐらいの運用期間で乗り換えを行うべきなのか判断する目安となります。
収益率は0%から10%まで変化させてみます。

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_t2 = s*(1+r-c2)**t + x*(1+r-c2)**t- x*(1+r-c2)**t*tax
        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()

r

このグラフからわかるように想定する機体収益率が大きければ大きいほど判断の分岐点となる運用期間は長くなることが分かります。ただし縦軸のスケールに注目すると、収益率がそれなりに変化しても年数はあまり大きく変化していないことが分かります。実際想定する収益率が3%から5%になっても、期間は1年程度しか変化していません。
従って想定する収益率の大きさはそれほど大きな影響を持っていないことが分かります。

コスト差

続いてどのくらい2つの投資信託にコストの差があれば乗り換えるべきという判断になるのでしょうか。
2つの投資信託それぞれのコストを今回は考えていますので、現実世界では新しい投資信託のコストc2を変えた方がイメージに近いとは思いますが、これだと元々の投資信託と新しい投資信託のコスト差をあまり大きくはできないので、今回はc1を変化させることでコスト差を考えていきたいと思います。
影響の大きさを確認したいのでc1の変化幅は少し大きめにして0.05%から3%までの間を検証してみます。
今回は期待収益率は2つの投資信託で同じとして、コストが違うという設定にしていますが、期待収益率が異なる場合でも、r+c1とr+c2というコスト込みのリターンの差が変わるというところを踏まえれば、今回検証する内容と同じ結論が得られます。

import numpy as np
import matplotlib.pyplot as plt

# パラメータ
s = 100  # 投資元本
x = 10  # 現在の運用益
r = 0.03  # 期待収益率
c1_values = np.linspace(0.05/100, 0.03, 1000) # コスト1 の範囲
c2 = 0.05/100  # コスト2 0.05%
tax = 0.2  # 課税率

# s_t1 - s_t2 = 0 となる t を見つける
t_zeros = []

for c1 in c1_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_t2 = s*(1+r-c2)**t + x*(1+r-c2)**t- x*(1+r-c2)**t*tax
        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(c1_values, t_zeros, marker='o')
plt.xlabel('c1')
plt.ylabel('t')
plt.grid(True)
plt.show()

g3

このグラフを見るとコストが0.5%のところでは概ね5年ほどの運用期間が判断基準となっています。つまり5年以上運用するならば乗り換えた方がいいということを示しています。
これよりもコストが小さい部分に関しては、指数関数的に判断基準の運用年数は増加しています。つまり、わずかなコスト差であれば相当な年数運用しない限りは、乗り換える必要がないということを示しています。
一方で、コストが0.5%よりも高いような場合には、比較的短い運用期間を想定しているとしても、乗り換えた方がお得になります。

よりコストの小さい部分のみに絞って詳細を見てみましょう。
g4
最初に想定したポスト0.1%のケースでは冒頭で確認しているように、38年前後が判断基準となる運用年数になっています。

含み益の大きさ

最後に現在運用している投資信託がすでにそれなりの利益を得ている場合に、どうなるのか考えていきます。このようなケースでは毎年の投資総額が大きくなるので、複利効果が働きやすくなります。
その結果、必ずしも乗り換えるのが正しいとは言えなくなるので、どのくらい利益があれば複利効果を優先するべきなのか確認してみたいと思います。
g5
グラフを確認すると現在の利益の大きさが大きければ大きいほど乗り換え判断を行うべき運用期間は長くなっている線形の関係が見えてきます。横軸の X の大きさは17付近で運用判断期間60年に達しているので、60年以下の運用期間を想定するのであれば、今回の想定だと、利益が17%以上出ているならば乗り換えは行わない方が良いことになります。

ただし、この水準はどのくらい2つの投資信託にコスト差があるのかというところに大きく依存するので、その前提を踏まえて考える必要があることに注意してください。

まとめ

今回はまず初めのパターンとして非課税口座から非課税口座に乗り換えを行う場合を考えてました。
結果はかなりコストの差に敏感になります。具体的な想定を入力すればどのくらいの運用年数で考えると乗り換えを行うべきか判断できるので、実際に想定する数値がある場合は入力して考えてみてください。それなりにすでに利益が出ている場合には、複利効果を利用した方が良いケースも存在することに注意してください。
次回は2つ目のパターンである課税口座から課税口座に乗り換える場合で考えてみます。

タイトルとURLをコピーしました