Python お金の健康

Pythonで独自の指数を作る方法とは?iDeCoで最適な投資割合を探る

こんにちは、うっちゃんです。

私は夫婦で資産形成を行っています。

妻のiDeCoでは次の配分で運用しています。

妻のiDeCoの投資配分
妻のiDeCoの投資配分

これまでの投資分析から、

2022年はコモディティに強気相場が訪れると考え、

資金の大半を振り向けています。

今回はある資産配分でのリターンを表す独自指数の作り方を紹介します。

この記事を最後まで読めば

投資のリターンを簡単にグラフ化できるようになります。

※おすすめの証券口座

これから投資を始める人にはSBI証券がおすすめです。

初期設定や操作が簡単なので、トントン調子で投資を始められます。

ネクシィズトレードから申し込めば電話サポート付きなのでネットが苦手な人にもおすすめです。

独自の指数をPythonでつくろう

独自の指数をPythonでつくろう
投資リターンの比較

上図は先進国の株価指数(MSCIコクサイインデックス、水色)、

日本の株価指数(TOPIX、青色)、

コモディティ指数(RICI、黄色)に加えて

妻のiDeCoのリターンを指数(赤色)として追加したものです。

(参考:DIAM外国株式インデックスファンド <DC年金>

(参考:DC日本株式インデックス・オープンS

(参考:ダイワRICIコモディティ・ファンド

妻の投資配分はMSCI 25%、TOPIX 25%、RICI 50%としており

コモディティ中心の運用スタイルです。

年に一度はSBI証券から評価損益のレポートが届きますが、

値動きは全く分からないので、好ましい投資先の分析には使えませんでした。

そこで私がPythonを使って分析をしています。

今回は上図のチャートをPythonで作成したので

コードをまとめました。

過去のデータは参考リンクよりCSVファイルで取得しています。

from pandas_datareader import data
import pandas as pd
from pylab import mpl, plt
import numpy as np
import datetime
plt.style.use('seaborn')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline

msci_df = pd.read_csv('msci.csv')
msci_df['date'] = pd.to_datetime(msci_df['基準日'])
msci_df.index = msci_df['date']
msci_df['msci'] = msci_df['基準価額(円)'].str.replace(',','') .astype(int)

topix_df = pd.read_csv('topix.csv')
topix_df['date'] = pd.to_datetime(topix_df['基準日'])
topix_df.index = topix_df['date']
topix_df['topix'] = topix_df['基準価額']

commodity_df = pd.read_csv('commodity.csv', encoding="shift-jis")
commodity_df['基準日'] = commodity_df['基準日'].astype(str)
commodity_df['date'] = pd.to_datetime(commodity_df['基準日'])
commodity_df.index = commodity_df['date']
commodity_df['commodity'] = commodity_df['基準価額']

merge_df = pd.DataFrame()
merge_df['msci'] = msci_df['msci']
merge_df['topix'] = topix_df['topix']
merge_df['commodity'] = commodity_df['commodity']
merge_df.dropna(inplace=True)

misa_df = merge_df.loc['2021-05-24':]
misa_df.to_excel('misa.xlsx')

msci_return = misa_df['msci'] / misa_df['msci'][0]
topix_return = misa_df['topix'] / misa_df['topix'][0]
commodity_return = misa_df['commodity'] / misa_df['commodity'][0]
original_return = misa_df['commodity_return'] * 0.5 + misa_df['topix_return'] * 0.25 + misa_df['msci_return'] * 0.25
date = misa_df.index

plt.figure(figsize=(20, 10))
plt.plot(date, msci_return, label = 'MSCI', color='c')
plt.plot(date, topix_return, label = 'TOPIX', color='b')
plt.plot(date, commodity_return, label = 'RICI', color='y')
plt.plot(date, original_return, label = 'original', color='r')
plt.legend(loc=2, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('Return', fontsize=18)
plt.savefig("misa_return.png")

チャートを見ると株式だけよりも高いリターンが得られており、

コモディティを入れてよかったと思います。

もしこれから投資を始める人は、コモディティに投資するのがおすすめです!

※おすすめの証券口座

これから投資を始める人にはSBI証券がおすすめです。

初期設定や操作が簡単なので、トントン調子で投資を始められます。

ネクシィズトレードから申し込めば電話サポート付きなのでネットが苦手な人にもおすすめです。

ここまで読んでくださり、ありがとうございました。^^

-Python, お金の健康
-