見出し画像

調べてわかった高効率マネーマシン

サブテーマ:夢の分配金生活実現にむけて


1 初めに

 今回、1年前5万円で買ってみた毎月分配型投資信託があまりに毎月安定して配当を出し続けていて良い感じですので、今回S&P500とのトータルリターンの違いと配当実績を調べてみました。

その結果、例えば定年退職やFIRE実現後の遊び枠予算として毎月現金で受け取れるマネーマシンとして非常に優秀でしたので、調査結果をご報告いたします。

今回の結論:
・トータルリターン S&P500≧投資信託>VYM、SPYD
・配当実績
 100万円投資なら 1万円/月
 1000万円投資なら 10万円/月
 *正し不景気には配当がなくなるため、余暇充実用に超おすすめ


知人よりプログラム部分が難しくてよくわからないとご指摘をいただきました。そのためこのチャンネルでは、PYTHONを使った米国株投資に関わるさまざまな調査の結果OUTPUTにこだわった記事にします。投資に関わる身近な疑問にも答えていきますので、投資リテラシー向上にお役立ちを目指します!!
 なお、全ての解析データは引き続き、PYTHONを活用してコード全文も掲載します。Googleコラボならまずは”コピペ”でチャレンジできます。これから勉強始めたい方にも、プログラミングで何ができるのかを知る良いチャンスとなればと思っていますので応援お願いします!!


2 豆知識

1)投資信託紹介

アライアンスバーンスタインの米国の成長企業に投資する毎月分配型の投資信託です。(毎月分配でないものや為替ヘッジ有もあります。)
この投資信託は毎月分配型であるため新NISAの対象ではありません。しかしながら証券会社各社の売れ筋ランキングの常連であり、下記のスクショ時点、週間売れ筋4位・月間売れ筋5位と新NISAが始まっても上位にランキングし続けている投資信託です。

マネックス証券HPより

過去データダウンロード先:

2)著者の実績より

マネックス証券で昨年9月にお試し5万円購入しています。毎月中旬の保有口数に応じて配当金がでますので、700円~1400円程度の配当が8回受け取っています。この期間のキャピタル益19%+配当毎月コンスタントに配当974.5円/月入ってます。

 100万円投資なら2万円/月、1千万円なら20万円/月の実績です。すごすぎではないですか??

マネックス証券のトータルリターン画面
マネックス証券の保有資産画面

3 実践

1)調査内容

①基準価格&配当実績+配当金の実績の年平均
 配当金込み実績をCSVでダウンロードした価格を読み込みました。基準価格と一口当たりの配当金をトレンドグラフで確認します。
 また配当金をイメージしやすくため100万円投資した時の配当金に換算し年当たりの配当金の実績を集計します。
なおこの投資信託は特定口座での運用が前提となります。配当には20%の税金がかかるため、配当金には一律×0.8として税引き後に受けとれる配当金額とします。

②S&P500の投資信託との比較
 新NISA口座を想定し配当を再投資したS&P500:ティッカー”VOO” NASDAQ100”QQQ”、高配当の代表銘柄である”SPYD”、”VYM”を比較としました。これら時系列のチャートを確認し、その後リスク・リターン、シャープレシオ、最大ドローダウンを集計します。

2)①基準価格&配当実績+配当金の実績の年平均

 実行したコードは下記の通りです。CSVファイルを読み込みそれぞれ前提とする条件でグラフを作成しています。

!pip install japanize-matplotlib

from google.colab import drive
drive.mount('/content/drive')

# ライブラリのインポート
import yfinance as yf
import pandas as pd
import numpy as np
import matplotlib.pyplot as plt
import matplotlib.cm as cm
import japanize_matplotlib  # 日本語表示に対応

# 投資信託のデータをGoogle Driveから読み込む
# ファイルパスを指定してください(例:'/content/drive/My Drive/your_file.csv')
file_path = '/content/drive/My Drive/lst_A.csv'
df = pd.read_csv(file_path, encoding='shift_jis')

# 投資信託データの日付をdatetimeに変換
df['年月日'] = pd.to_datetime(df['年月日'], format='%Y年%m月%d日')

# 100万円の投資額
initial_investment = 1000000

# 投資口数の計算(最初の基準価額で購入した口数)
df['投資口数'] = initial_investment / df['基準価額(円)'].iloc[0]

# 分配金の実績を計算
df['分配金実績'] = df['分配金'].fillna(0) * df['投資口数'] *0.8 #税引き考慮

# 分配金の累積
df['累積分配金'] = df['分配金実績'].cumsum()

# 配当込みトータルリターンの計算
df['トータルリターン'] = initial_investment
for i in range(1, len(df)):
    df.at[df.index[i], 'トータルリターン'] = df.at[df.index[i-1], 'トータルリターン'] * (df.at[df.index[i], '基準価額(円)'] / df.at[df.index[i-1], '基準価額(円)']) + df.at[df.index[i], '分配金実績']

# プロット
fig, ax1 = plt.subplots(figsize=(14, 7))

# 左軸に累積分配金をプロット
ax1.plot(df['年月日'], df['累積分配金'], label='累積分配金', color='b')
ax1.set_xlabel('日付')
ax1.set_ylabel('累積分配金(円)', color='b')
ax1.tick_params(axis='y', labelcolor='b')

# 右軸に基準価格を追加
ax2 = ax1.twinx()
ax2.plot(df['年月日'], df['基準価額(円)'], label='基準価格', color='r')
ax2.set_ylabel('基準価格(円)', color='r')
ax2.tick_params(axis='y', labelcolor='r')

# グラフのタイトルとグリッド、凡例の設定
plt.title('投資信託の累積分配金と基準価格')
fig.tight_layout()
ax1.grid(True)
fig.legend(loc='upper left', bbox_to_anchor=(0.1,0.9))

plt.show()

# 年と月のカラムを追加
df['年'] = df['年月日'].dt.year
df['月'] = df['年月日'].dt.month

# 年別・月別に分配金実績を集計し、月々の平均配当額を計算
monthly_avg_dividends = df.groupby(['年', '月'])['分配金実績'].sum().unstack(level=0)

# 年毎の平均配当額を計算
annual_avg_dividends = monthly_avg_dividends.mean()

# テーブルを表示
print(annual_avg_dividends)

# 年毎の平均配当額のテーブルを表示
display(annual_avg_dividends)

# 棒グラフのプロット
plt.figure(figsize=(14, 7))
annual_avg_dividends.plot(kind='bar', color='skyblue')
plt.title('年毎の月々の平均配当額')
plt.xlabel('年')
plt.ylabel('平均配当額(円)')
plt.grid(True)
plt.show()

# 配当込みトータルリターンのプロット
plt.figure(figsize=(14, 7))
plt.plot(df['年月日'], df['トータルリターン'], label='配当込みトータルリターン', color='g')
plt.title('配当込みトータルリターン')
plt.xlabel('日付')
plt.ylabel('トータルリターン(円)')
plt.legend()
plt.grid(True)
plt.show()

実行結果は下記の通りです。
①に基準価格と一口当たりの配当金を積み上げ表示で表示させています。全体として右肩上がりの配当実績に対し、基準価格は8000~13000の範囲で一定です。
2016年は基準価格が低迷し、その間は配当がでていません。逆に基準価格が高くなるときは配当の傾きが大きくなり、株価上昇分は配当として出しています。

①配当と基準価格の推移

②は配当の年平均の実績を出力しています。2016年など一回も配当が出ていない年はありますが、この10年平均1万円/月の配当の実績があることがわかりました。

元本100万円投資時の配当実績(年平均*税引き後)

②トータルリータンS&P500との比較

 YahooFinanceから比較対象のETFの配当込みの基準価格であるAdjCloseの価格を取得します。そのためVOO等は100%内部再投資した結果となります。これを投資信託とのトレンドグラフと、リターン等の計算しテーブルとして出力します。

# VOOとQQQのデータを取得
tickers = ['VOO', 'QQQ' ,'VYM','SPYD']
data = yf.download(tickers, start=df['年月日'].min(), end=df['年月日'].max())
price_data = data['Adj Close']

# トータルリターンの計算
returns_data = price_data.pct_change().dropna()
cumulative_returns = (1 + returns_data).cumprod()

# 投資信託のトータルリターンを追加
df.set_index('年月日', inplace=True)
cumulative_returns['投資信託'] = df['トータルリターン'] / initial_investment

# 時系列グラフのプロット
plt.figure(figsize=(14, 7))
for ticker in tickers:
    plt.plot(cumulative_returns[ticker], label=ticker)
plt.plot(cumulative_returns['投資信託'], label='投資信託')
plt.title('投資信託とETFの配当込みトータルリターンの比較')
plt.xlabel('日付')
plt.ylabel('トータルリターン')
plt.legend()
plt.grid(True)
plt.show()

# 年率リターン、リスク、シャープレシオ、最大ドローダウンの計算
def annualized_return(series):
    return (series.iloc[-1] / series.iloc[0]) ** (252 / len(series)) - 1

def annualized_volatility(series):
    return series.pct_change().std() * np.sqrt(252)

def sharpe_ratio(series, risk_free_rate=0.01):
    return (annualized_return(series) - risk_free_rate) / annualized_volatility(series)

def max_drawdown(series):
    drawdown = series / series.cummax() - 1
    return drawdown.min()

metrics = {}
for column in cumulative_returns.columns:
    metrics[column] = {
        'Annualized Return': annualized_return(cumulative_returns[column]),
        'Annualized Volatility': annualized_volatility(cumulative_returns[column]),
        'Sharpe Ratio': sharpe_ratio(cumulative_returns[column]),
        'Max Drawdown': max_drawdown(cumulative_returns[column])
    }

# テーブルを表示
metrics_df = pd.DataFrame(metrics).T
print(metrics_df)

# テーブルの表示
display(metrics_df)

トータルリターンの比較です。VOO(S&P500)等の比較はすべて配当再投資した結果であるのに対し、投資信託は配当に課税された分を考慮したトータルリターンです。
 この結果、QQQほどではないですが、VOOよりやや劣り、VYMやSPYDより優れることがわかります。
 この結果は集計表にも表れており、S&P500の配当再投資した投資信託を想定したVOOの年率13%に対し、投資信託は年率10%程度です。しかしながら、投資信託は配当にすべて課税されていること、配当金に対する複利効果がないことを考慮すると、配当金に対する複利効果をすべて盛り込んだSPYDやVYMと同等以上です。
 実際に配当金の税金を考慮しない場合年率11%となります。これは、配当金を使う前提であれば、この投資信託はS&P500相当として考えてよいと思います。

トータルリターンの推移
実績集計結果(投資信託のみ配当に対する税金考慮)

4)まとめ

以上、アライアンスの毎月配当型の投資信託についての調査結果まとめると下記の通りです。

今回の結論:
・トータルリターン S&P500≧投資信託>VYM、SPYD
・配当実績
 100万円投資なら 1万円/月
 1000万円投資なら 10万円/月
 *正し不景気には配当がなくなるため、余暇充実用に超おすすめ

個人的見解:効率を言えばS&P500等のインデックス投資信託の取り崩しが効率的にベストに変わりはないですが、配当金は取り崩しによる心理的なダメージを避けることができると考えます。高配当の投資信託には、毎月分配金のETFにはJEPIやJEPQなど人気のETFもありますが、海外ETFと違ってドルから円に両替しなくてよいこと、また楽天証券の楽天銀行との連携機能であるマネーブリッジを使えば、配当金が何もしなくても銀行口座に反映されるため生活に使いやすい利点があります。
 インデックスの取り崩しに比べて10年に1~2回の不景気には配当がでなくなりますが、それは元本を守ってもらっている、好景気にはお小遣いとして考える余暇を楽しむお金用としては、楽しみながら投資を継続できる一つの候補として考えています。

4 最後に

 今回も自分が興味のあるものを深堀してしまいましたが、興味を持っていただいた方がおられたら幸いです。
今後も投資リテラシー向上兼プログラム活用に役立つ情報を発信していきますので応援のほどよろしくお願いします!

*今回の結果は過去の結果を解析したものであり、今後の将来を保証するものではありません。実際の投資にあたってはご自身の判断でお願いいたします。

記事の感想、要望があれば下記X(旧Twitterまで)
*今後の記事に活用させていただきます!!



以下、過去記事、AI時系列予測等のご紹介
他サイトですがココならで、A I(LSTM)を使った株価予測の販売もやってます。こちらではFREDから、失業率や2年10年金利、銅価格等結果も取得しLSTMモデルで予測するコードとなってますので興味があれば見てみてください。またその他2件も米国株投資とは直接関係はありませんがプログラム入門におすすめですのでみてみてください。



チャンネル紹介:Kota@Python&米国株投資チャンネル

過去の掲載記事:興味があればぜひ読んでください。
グラフ化集計の基礎:S &P500と金や米国債を比較してます。

移動平均を使った時系列予測




この記事が気に入ったらサポートをしてみませんか?