楽天信託FXファンド」ご存知ですか?

2020/4/20にサービスを開始したファンドで
レバレッジ5倍のドル円FXをするAIに投資する
というファンドです

詳細はこちらの公式ページをご覧ください。

さてこのファンド、投資する価値があるのか

つまり相応のリターンを受けられるか?

というのは当然気になるところです

ところが、新しすぎるせいか

レビューどころか誘導するアフィブログすら見つからない!

ということで、いくつかの条件を元にシミュレーションをしてみました

*追記(2020/10/12 2:00)
ランダムに利率を設定するアルゴリズムにミスがあったため修正しました。
記事の結論が大きく変わっています!!

1.ファンドの特徴

詳細説明は公式にお任せするとして

シミュレーションがどう転ぶかを左右する大きなファクターは税金と手数料

この2つの点について、情報を整理します

①課税対象の資産である

 ・収益金の再投資が行われた時

・解約時の基準価格が平均取得価格を上回った時

 以上の2点で、源泉分離課税(源泉徴収)20.315%の対象になります

NISAでもない限り、資産を増やせばかかってしまうコストです

買い付け時の基準価格は10000円です

収益金の再投資は基準価格が10000円を超えた時に自動的に行われ、その後基準金額が10000円にリセットされます

少しややこしいのですが、信託報酬について説明したあと具体例で説明します

②信託報酬は完全成功報酬型

1ヶ月毎に決済が行われ基準価格を決定しますが

成果がマイナスの場合の信託報酬は0円です

プラスに転じた場合、その差額にのみ21%の報酬がかかります

21%という数字だけ聞くとトンデモファンドのような気がしてきますが

収益分にしかかからないことに注意が必要です

例えば1ヶ月で+4%の運用成果だった場合

その4%にのみ21%のコストがかかるため

実質的な、資産全体に対しての信託報酬は0.84%となります

運用益に対する実質信託報酬の例を表にまとめておきます。 

運用益 実質信託報酬 実質運用益 0 % 0 % 0 % 2 % 0.42 % 1.58 % 4 % 0.84 % 3.16 % 6 % 1.26 % 4.74 % 8 % 1.68 % 6.32 % 10 % 2.1 % 7.9 % 20 % 4.2 % 15.8 %  

投資初心者がリスクを抑えながら目指す利回りとして年利3%というのがよく挙げられます

年利3%を実現する月当たり利回りは0.25%です

実質運用益が0.25%の時の実質信託報酬は0.066%になり、これを12回重ねて年利に換算すると約0.8%になります

同じくAIに資産運用を任せるロボットアドバイザーの信託報酬が1%程度であることを考えると、現実的な値とも解釈できます

先述の通り運用成果がマイナスの月は信託報酬がかからないこと、信託報酬が高くなる月というのはつまり大きな運用成果が出ているということを考えると、さらに追い風です。

③資産価値変動の具体例

話がややこしくなったため、ここで具体例を追いながら情報を整理します

*簡単のため、計算で生まれる端数を切り捨てています

*ページを読んだ私の解釈に基づく計算であり、実際の計上方法と異なる可能性があります

まず10000円の出資をし、10000口を保有しました

10000円の基準価格が設定されます

1ヶ月目、基準価格が9000円に下がったとします

運用マイナス時の信託報酬は0なので、9000円の基準価格で次の月に臨みます

2ヶ月目、基準価格が9800円に上がったとします

運用益が出たので信託報酬が発生します

上昇幅は 9800-9000=800円 ですので、800×0.21=168円を支払います

残った資産 9800-168=9632円 の基準価格で次の月に臨みます

3ヶ月目、基準価格が10500円に上がったとします

運用益が出たので信託報酬が発生します

上昇幅は 10500-9632=868円 ですので、868×0.21=182円 を支払います

残った資産 10500-182=10312円 は基準価格10000円を312円上回りました

312×0.20315=63円 が源泉徴収され、 312-63=249円を再投資します

10500円で10000口を購入できる状態ですから、249円で237口を購入します

基準価格を10000円にリセットします

3ヶ月間で保有口数を2.37%増やすことができました

次の3ヶ月、最初の3ヶ月と全く同じ運用実績だったと仮定すると、

1.0237×1.0237=1.0479 より保有口数は10479口になります

年利に直すと9.8%

これが複利でついてくるわけですから、このケースであればお得な商品に見えますね!

2.シミュレーション条件

変動させるパラメータは「平均利率」とその「標準偏差」です

①まず「平均利率」について

相場変動の予想ではなく、投資AIがどれだけの利益を上げることができるのか、というパラメータです。

少なくとも利益を上げてもらわないと資産が増えないことはわかっているので、年利で

0%
1% (月あたり0.083%)
2% (月あたり0.165%)
5%  (月あたり0.407%)
10% (月あたり0.797%)

の5パターンでシミュレーションを回します

②次に「標準偏差」について

投機に取り組む以上は、安定した成功は難しいでしょう

そこで収益率が正規分布すると仮定し、①で指定した月あたり年利を中心にどの程度バラけた運用になるかを設定します

今回は標準偏差を

0.1
0.5
1
2
5
10
20

の7パターンでシミュレーションを回します

シミュレーションは5×7=35通り!

例えば年利5%(月利0.407%)、標準偏差5の組み合わせでは、

・平均が0.407%

・標準偏差5 (68.2%の確率で、-4.593%〜5.407% に収まる正規分布)

になるようにランダムに毎月の運用益を設定します。

このファンドに対して有効化は分かりませんが、ドルコスト平均法を用いて毎月10000円を積み立てます

これで10年間運用し、合計積立金額は120万円とします

このモデルを35パターンについてそれぞれ100万通りを計算し、平均年利を計算します

おまけにつけたソースコードを改変すれば、ご自身でパラメータを設定しシミュレーションすることができます
また、ソースコードを改変することで100万件の中で最も高い収益をあげたケースを確認する、といったこともできます

3.シミュレーション結果

年利はこのような結果になりました

AI運用益 0% 1% 2% 5% 10% ----------------------------------------------- 標準偏差 | 0.1 | -0.05% 0.31% 0.64% 1.60% 3.23% 0.5 | -0.26% 0.14% 0.50% 1.54% 3.21% 1 | -0.52% -0.11% 0.28% 1.35% 3.07% 2 | -1.03% -0.62% -0.22% 0.90% 2.66% 5 | -2.49% -2.12% -1.73% -0.61% 1.20% 10 | -4.74% -4.41% -4.07% -3.05% -1.36% 20 | -8.50% -8.25% -7.99% -7.19% -5.87%

4.考察

①標準偏差が大事!

標準偏差が大きい、つまり大きく勝ったり大きく負けることが多い場合、平均的には素晴らしい運用をした場合でも還元がほとんど無くなってしまうことがわかりました

システム上、一度出した損益を回復するときにも信託報酬がかかります

AI実績が乱高下した時に資産はどんどん目減りする仕組みになっているため、と推察されます

②年率が高いほど収益も上がる! が...

今回設定した中では最も小さい標準偏差標のとき、AI実績と実質年利がほぼ比例することがわかりました

しかし、その状態であっても、AI実績の1/3程度しか享受できていません

これは信託報酬に吸収されていると思われます

5.まとめ

AIがトレードをしてくれるわけですから、

ある程度は安定した運用はしてくれそうな気がします

公開されている運用実績を参照し
運用開始日(?)の 2018年7月13日 から
謎の一直線推移が始まる2019年9月24日まで
合計13回の月初-月末時基準価格差について計算してみると

平均月利 0.438% (≒年利5.3%)
標準偏差 2.86

でした

このパラメータでシミュレーションを回すと、年利0.59%になりました

これは...かなり渋い数字ですね

ところでこのファンド、2020年2月から5月にかけて大暴落しているのですが、そこからはみるみる盛り返しています

記事執筆時点(2020年10月)で確認できる
6月、7月、8月、9月の4ヶ月においては

平均月利5.96% (≒年利100.31%) ←!?!?!?
標準偏差4.17

という結果を叩き出しています

このパラメータでシミュレーションを回すと、年利31.74%になりました

この勢いが本領だとすれば...恐ろしいポテンシャルを秘めたファンドです

今後の展開を見守りたいですね

以上、投資先選択の参考になれば幸いです

6.おまけ 書いたプログラムのソースコード

プログラミング初心者で粗のあるコードですがお許しください

アルゴリズムにミスがあったら、教えていただけると助かります

改変してお使いいただいて構いませんが、再配布はご遠慮ください

import numpy as np from time import sleep num = 1000000 # 並列計算に使う行列の大きさ reserve = 10000 # 毎月の積立金 unit = 10000. # 基準価格 period = 10 # 実施する年数 rates = [0, 1, 2, 5, 10] # 平均の年利 stdevs = [0.1, 0.5, 1, 2, 5, 10, 20] # 標準偏差 margin = 0.21 # 利益分に対してかかる信託報酬 tax = 0.20315 # 源泉徴収率 def debug(text): pass # print(text) # sleep(0.5) def simulate(r, s): y_rate = r # 平均年利 std = s # 標準偏差 principal = 0 # 投資元本 assets = np.full(num, 0.0) # 持っている口数を記録する配列 base = np.full(num, unit) # 基準価格を記録する配列 sum_margin = np.full(num, 0.0) # 支払った信託報酬の合計を記録する配列 sum_tax = np.full(num, 0.0) # 支払った源泉徴収の合計を記録する配列 for i in range(12 * period): # 積立 principal += reserve # 投資元本に積立額を加算 assets += (reserve * unit / base) # 投資額を基準価格で割った数の口数を加算 debug(str(i + 1) + ヶ月目) debug(str(int(reserve * unit / base[0])) +  口購入した) debug(str(int(assets[0])) +  口持っている) # 相場が変動 month_rate = np.random.normal(((100 + y_rate) / 100) ** (1 / 12), std / 100, num) # 平均が年率(%)の正規分布をランダム生成 next_base = base * month_rate # 運用後の基準価格を計算 debug(基準価格が  + str(base[0]) +  から  + str(next_base[0]) + に変化) # 信託報酬の計算 descent = base - next_base # 利益のでた部分は負の値になっている descent *= np.signbit(descent) # signbitは負の数に対してTrueを返すから、正の数=運用マイナス=信託報酬0の部分を0に変換 descent *= margin # descentの中身を信託報酬に変換 next_base += descent # 基準価格から信託報酬分を減ずる sum_margin -= (descent * assets / unit) # 実際に支払った額を加算 debug(10000口あたり  + str(-descent[0]) +  円支払うから) debug(str(int(-descent[0] * assets[0] / unit)) +  円も支払った) # ここで売却した場合の価値(課税前)を計算しておく result = next_base * assets / unit debug(現在の資産価値は  + str(int(result[0])) +  円) # 源泉徴収の計算 descent = unit - next_base # 基準価格10000に対して、利益の出た部分は負の値になっている descent *= np.signbit(descent) # signbitは負の数に対してTrueを返すから、正の数=運用マイナス=課税0の部分を0に変換 descent *= tax # descentの中身を源泉徴収に変換 next_base += descent # 基準価格から源泉徴収分を減ずる sum_tax -= (descent * assets / unit) # 実際に支払った額を加算 debug(10000口あたりの源泉徴収は  + str(int(-descent[0])) + ) debug(str(int(-descent[0] * assets[0] / unit)) +  円を源泉徴収されたが) # 運用益を再投資 descent = unit - next_base # 基準価格10000に対して、利益の出た部分は負の値になっている descent *= np.signbit(descent) # signbitは負の数に対してTrueを返すから、正の数=運用マイナス=分配なしの部分を0に変換 descent *= (assets / unit) # descentの中身を再投資に回せる金額に変換 assets -= (descent * unit / next_base) # 再投資 debug(str(int(-descent[0] * assets[0] / unit)) +  口分再投資された) # 基準価格をリセット descent = unit - next_base # 基準価格10000に対して、利益の出た部分は負の値になっている descent *= np.signbit(descent) # signbitは負の数に対してTrueを返すから、正の数=運用マイナス=分配なしの部分を0に変換 base = next_base + descent # 10000を超えた部分は10000に戻る debug(基準価格は  + str(base[0]) + ) # 利回り計算 # 平均利回り ave_ass = np.average(result) # 資産価値の平均を計算 ave_rate = ave_ass / principal # 資産の増加率を計算 y_ave_rate = ave_rate ** (1 / period) # 1年あたりの増加率を計算 ave_sum_margin = np.average(sum_margin) # 信託報酬として支払った額の平均値 ave_sum_tax = np.average(sum_tax) # 源泉徴収として支払った額の平均値 return ave_ass, y_ave_rate, ave_sum_margin, ave_sum_tax if __name__ == __main__: for rate in rates: print() for stdev in stdevs: print(AI年利  + str(rate) + % 標準偏差 + str(stdev), end= : ) ave_ass, y_ave_rate, ave_sum_margin, ave_sum_tax = simulate(rate, stdev) print(平均年利  + {:.4f}.format(y_ave_rate))

Tell us about you

Find us at the office

Eastmond- Sukel street no. 62, 79540 Hanga Roa, Easter Island

Give us a ring

Jaquelinee Wrate
+74 201 709 645
Mon - Fri, 9:00-15:00

Reach out