Python

投信のリターンを計算する(1)

正直、知識ゼロの人がPythonを覚える必要はなし。でも・・・

投信のパフォーマンスは口座のある金融機関のサイトで簡単に確認できます。複数の金融機関に分散していても金融系アプリを使えば一元的に管理できます。データの見える化は誰にでも簡単にできる時代になりました。だからプログラム知識ゼロの人が頑張って学習して投信パフォーマンスを見える化する必要性は小さい、と言うのがプログラム知識がほとんどない私の実感です・・・

ただAPIを叩けば誰もが無料データを簡単にダウンロード出来る時代です。お金を払わなければ買えないデータも多数存在するので機関投資家にはかないませんが、個人投資家でも一次データに直接触れ加工・分析することで、今までよりも深く市場を理解することが出来るようになりました。機関投資家の先をゆく分析や投資手法も実現出来るかもしれません。だから私は頑張って学習することにしています。

まずは手始めに、Pythonを使って投信協会から投信データをダウンロードし、リターン計算をしてみます。今回はダウンロード、データフレームで読み込むところまでをご紹介します。

そもそも投信データはどこにあるの?

投資信託のデータは投資信託協会サイトの「投信総合検索ライブラリー」から入手します。このサイトではファンド名や愛称などを入力すれば情報を得たいファンドの情報が得られる他、積立投資のシミュレーションやCSV形式でデータダウンロードも出来る、大変優れたサイトです。

ISINコードは証券保管振替機構(ほふり)の投資信託振替制度> 銘柄公示情報>公示銘柄にあります。

ダウンロードし、データフレームとして再読み込み

1.ダウンロード

url = path + fundisinと定義します。pathは投信協会のサイトです。fundisinに先ほどの証券保管振替機構から入手したISINコードを代入します。

せっかく探したISINはダウンロードファイルからは消えてしまい、代わりにアクセスした時刻が付きます。なお、ここではダウンロードファイルを再度データフレームとして読み込むため、一旦"f"として保存しています。

path = "https://toushin-lib.fwg.ne.jp/FdsWeb/FDST030000?isinCd="
url = path + fundisin

ダウンロードファイル名:lst_standard_price_20211106061609.csv 

2.データフレーム化し、再読み込み

取り込んだダウンロードファイルはデータフレームとして使った方が便利なのでまずは整形作業します。

まずは読み込み。投信協会のCSVファイルのフォーマット形式はShift-JISです。

次にインデックスの指定。データフレームのインデックスとして、カラム"年月日"を指定しました。さらにparse_dates=Trueでインデックスに指定した"年月日"列を、後々で加工しやすくするためにdatetime型に変換しています。

tmp = pd.read_csv(f,encoding="shift-jis",index_col="年月日",
                          parse_dates = True,date_parser=lambda x: pd.to_datetime(x,format='%Y年%m月%d日'))

-Python
-,