グドイベ!投資や資産形成を中心にライフハックを目指すブログ

グドイベ!(Good Investor!Good Event!)なんとか準富裕層へ到達。長期目線では米国株式を中心にインデックスを積立中、中短期ではシストレの売買で資産を積み上げ、長期投資の原資を増やす作戦。仮想通貨もウォッチ中。経済的自由を達成する道半ばを楽しみながら投資に取り組んでいます。ブログ記事は興味があるもの多数につき多岐にわたります。

chatGPTを使って3分でVOOの分配金情報を取得するpythonコードを作成してみる

AIがプログラミングできる時代に

さて、米国ETFの分配金を受け取ることができる時期ですね。

今期も分配金が増えていそうでありがたいです。(前年同時期比較)

今回は、分配金情報を取得し増配率を計算するpythonコードをchatGPTに作成してもらおうかと思います。

コードとしては簡単ですが、プログラミングに慣れていない人からすると有り難いかもしれません。

この記事で分かること
  • 米国ETFの情報をpythonコードで取得して計算する方法
  • chatGPTで簡単なpythonコードくらいは作成できること
  • Google Colaboratoryは簡単かつ無料でpython実行環境を用意できるのでオススメ
  • 実現したいこと:VOOの分配金情報の取得と増配率の計算

    題材として、私が保有している VOO:Vanguard S&P 500 ETF を利用したいと思います。

    非常に有名なETFで、米国のS&P500指数に連動するETFです。

    年に4回(3,6,9,12月)分配金が支払われます。VOOは株価指数の成長に期待しているわけですが、合わせて分配金も増えていくことも多いです。非常に優秀な商品だと思います。

    chatGPTにpythonコード作成を依頼してみる

    VOOの情報をYahoo Financeから取得する

    よし、お願いしてみましょう。まずはVOOの情報を取得するところからです。

    特にソースに関して指定しなければ、chatGPTはYahoo Financeから情報を取得するようです。今回の用途としては充分でしょう。

    【chatGPT】VOOの分配金履歴を取得するpythonコードを作成して

    import yfinance as yf
    
    # vooのティッカーシンボルを設定
    symbol = "VOO"
    
    # Yahoo Financeからデータを取得
    stock = yf.Ticker(symbol)
    
    # 分配金履歴を取得
    dividend_history = stock.dividends
    
    # 分配金履歴を出力
    dividend_history.tail()
    

    出力結果は以下の通り。

    Date
    2022-03-24 00:00:00-04:00    1.374
    2022-06-29 00:00:00-04:00    1.432
    2022-09-28 00:00:00-04:00    1.469
    2022-12-20 00:00:00-05:00    1.672
    2023-03-24 00:00:00-04:00    1.487
    Name: Dividends, dtype: float64

    増配率の計算

    分配金の情報が取得できましたので、増配率を計算します。

    【chatGPT】上記のコードに前年同時期からの増配率を計算するコードを追加して

    import yfinance as yf
    import pandas as pd
    
    # vooのティッカーシンボルを設定
    symbol = "VOO"
    
    # Yahoo Financeからデータを取得
    stock = yf.Ticker(symbol)
    
    # 分配金履歴を取得
    dividend_history = stock.dividends
    
    # 分配金の合計を計算
    total_dividends = pd.Series(dividend_history).sum()
    
    # 増配率を計算
    current_year_dividend = dividend_history[-1] # 現在の年度の分配金
    last_year_dividend = dividend_history[-5]   # 前年の分配金(過去5四半期の平均)
    dividend_growth_rate = (current_year_dividend / last_year_dividend - 1) * 100
    
    # 結果を出力
    print("Total dividends: ${:.2f}".format(total_dividends))
    print("Dividend growth rate from last year: {:.2f}%".format(dividend_growth_rate))
    

    あー、これだと直近1回分の増配率だけ計算していますね。このあたりは正確に依頼をする必要がありますね。

    というわけで修正を依頼します。以下、2回くらいやり取りをして無事にコードが完成しました。

    2回目のやり取りですが、最初forループでリストに増配率を格納するコードが提示されました。pandasを利用した方がコード量が減りますし、扱いやすいですので修正してもらいました。

    【chatGPT】直近の増配率だけではなく、各分配金のタイミングで増配率を計算してほしい。

    【chatGPT】増配率はpandasのdataframeで計算できないかな?

    最終的に作成してもらったコード

    で、作成されたコードがこちらです。

    import yfinance as yf
    import pandas as pd
    
    # vooのティッカーシンボルを設定
    symbol = "VOO"
    
    # Yahoo Financeからデータを取得
    stock = yf.Ticker(symbol)
    
    # 分配金履歴を取得
    dividend_history = stock.dividends
    
    # DataFrameに変換して、shiftを使って前年同四半期の分配金を取得
    df = pd.DataFrame(dividend_history, columns=["Dividends"])
    df["Last Year Dividends"] = df["Dividends"].shift(4)
    
    # 増配率を計算
    df["Growth Rate"] = (df["Dividends"] / df["Last Year Dividends"] - 1) * 100
    
    df["Growth Rate"].tail()
    

    出力結果は以下の通り。

    Date
    2022-03-24 00:00:00-04:00     8.788599
    2022-06-29 00:00:00-04:00     7.426857
    2022-09-28 00:00:00-04:00    12.308869
    2022-12-20 00:00:00-05:00     9.067189
    2023-03-24 00:00:00-04:00     8.224163
    Name: Growth Rate, dtype: float64

    VOOの今期(2023年3月期)の分配金と増配率は!?

    ということで、chatGPTにpythonコードを作成してもらいました。

    少しchatGPTへの依頼の仕方に注意が必要ですが、簡単にコードを作成してくれます。

    出力結果から明らかですが、今回は+8.2%の増配になっています。(前年同時期比較です)

    分配金も増えておりいい感じです!

    Google Colaboratoryを利用してpythonコードを実行してみる

    ちなみにpythonの実行環境は「Google Colab」というサービスを利用しています。

    Jupyter NotebookをベースとしたGoogleのサービスです。Googleアカウントがあれば無料で利用でき、作成したコードもGoogle Driveに保存しておくことができるのでどこからでも利用できて便利ですよ。

    まとめ

    ということでpythonコードをchatGPTを利用して作成し、米国ETFの分配金情報を取得してみました。

    同じ要領で、分配金以外の分析も可能ですので色々と利用方法を考えてみると面白いかもしれません。