本サイトは広告・プロモーションが含まれています
Python

【yfinance】Pythonで米国高配当ETFの分配金推移を取得



最近の投資ブーム?でインデックス投資と並んで人気が高い投資スタイルに、
高配当株投資と呼ばれる文字通り配当金を沢山もらえる銘柄に投資をするスタイルがあります。

しかし銘柄選びに時間を割きたくない&分散をしっかりしたい
という人は高配当ETF(分配金)を選択する人も多いのではないでしょうか??


今回はそんな高配当ETFの中でも人気のある「VYM」の1口あたりの分配金推移をPythonで取得し、グラフ化する方法を紹介します。

Pythonコードのティッカーシンボルを変更すれば、
HDVやSPYDなどの別の高配当ETFの推移も可視化できるので、ぜひ参考にしてみてください。

コード


必要なライブラリのインストール


Pythonのパッケージ管理ツールであるpipを使用して、必要なライブラリ「yfinance」「seaborn」「matplotlib」「japanize_matplotlib(日本語のグラフの場合必要」をインストールします。

pip install yfinance seaborn matplotlib japanize_matplotlib

コードの記述

import yfinance as yf
import pandas as pd
import matplotlib.pyplot as plt
import seaborn as sns
import japanize_matplotlib

def main():
    # 取得したいETFのシンボルを設定します
    etf_symbol = "VYM"

    # yfinanceを使ってETFの情報を取得します
    etf = yf.Ticker(etf_symbol)

    # 分配金履歴を取得します
    dividend_history = etf.dividends
    dividend_history.index = dividend_history.index.tz_localize(None)
    
    # 日本円での価格データを取得(為替レートのデータも必要)
    jpyusd = yf.Ticker("JPY=X")
    jpyusd_data = jpyusd.history(start="2005-01-01", end="2023-07-04")
    jpyusd_data.index= jpyusd_data.index.tz_localize(None)

    # 日本円に換算した分配金データを作成します
    dividend_history_jpy = dividend_history * jpyusd_data['Close']
    # インデックスを日付型に変換します
    dividend_history_jpy.index = pd.to_datetime(dividend_history_jpy.index)
    # 年ごとにデータを集計します
    dividends_by_year = dividend_history_jpy.resample('Y').sum()
    
    
    # グラフを作成します
    
    # Seabornのグラフスタイルを設定
    sns.set_style("darkgrid")
    sns.set(font='IPAexGothic')
    plt.bar(dividends_by_year.index.year, dividends_by_year)
    plt.title(" {} の年間分配金(JPY)".format(etf_symbol))
    plt.xlabel("年")
    plt.ylabel("分配金総額(JPY)")
    plt.xticks(dividends_by_year.index.year, rotation=45)
    plt.show()
    plt.close()

if __name__ == "__main__":
    main()


タイムゾーン情報の削除


dividend_history.index = dividend_history.index.tz_localize(None)
jpyusd_data.index= jpyusd_data.index.tz_localize(None)

の2つでタイムゾーン情報を削除してます。
これは、次の日本円への換算のため。

日本円への換算


おそらくこの記事を読んでくださる方は、日本人の方が多いと思うので
ドルではなく日本円に換算してます。

dividend_history_jpy = dividend_history * jpyusd_data[‘Close’]

でVYMの価格(ドル)に1ドルの円価格を掛け合わせています。

実行できると下のようなグラフが描画できると思います。


2023年の分配金が少ないのは、まだ9月と12月の分配金をもらってないだけです。

おわりに


今回はVYMを例に取り上げさせてもらいましたが、
yfinanceを使用することで、他の米国ETFの価格データを取得し比較することも可能です。

また取得したデータをグラフ化する際には、seabornmatplotlibなどのグラフ描画ライブラリを活用することで、良い感じのグラフを作成することができます。


こうしてグラフで見てみると
VYMもリーマンションがあった2009年あたりの分配金が下がっているんですね。
そして最近の好調っぷりがすごい!!

こうやってデータを可視化すると、色々な側面が見ることができて面白いですよね!!
また色々可視化して楽しんでみます。

それでは。

COMMENT

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

CAPTCHA