Python お金の健康

プログラミングで投資の分析をして気づいた驚きの事実!2022年はコモディティの時代になる

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

老後の生活資金づくりは始めていますか?

私たち夫婦はSBI証券のiDeCoで資産形成を行っています。

前回の記事ではコモディティがおすすめの投資先であることを紹介しました。

前回のチャート分析で使用したグラフの作り方を

今回の記事で紹介します。

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

2032年までの運用期間を失敗しないようになります。

※おすすめの証券口座

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

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

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

独自の指数をPythonで作ろう

独自の指数をPythonで作ろう
株価とコモディティ価格で作成した指数

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

コモディティ指数(RICI)で割って作成したものです。

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

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

緑色の指数が上昇するほど株価がアウトパフォームしており、

株式が強気相場であることを意味します。

逆に指数が下落するほどコモディティがアウトパフォームしており、

コモディティが強気相場であることを意味します。

このチャートをPythonで作っていきます。

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

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


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']

ratio_df = pd.DataFrame()
ratio_df['stock'] = stock_df['stock']
ratio_df['commodity'] = commodity_df['基準価額']
ratio_df.dropna(inplace=True)
ratio_df['ratio'] = stock_df['stock'] / ratio_df['commodity']

date = ratio_df.index
ratio = ratio_df['ratio']

plt.figure(figsize=(20, 10))
plt.plot(date, ratio, label = 'Stock to Commodity', color='g')
plt.legend(loc=2, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('Ratio', fontsize=18)
plt.savefig("stockcommodity_ratio.png")

データは参考リンクから取得して、ファイル名をそれぞれ変えて保存しました。

次に移動平均線を追加してトレンドを調べます。

移動平均線でトレンドを調べる

移動平均線でトレンドを調べる
移動平均線を追加したグラフ

50日と200日の移動平均線でも確認します。

#単純移動平均の計算
ratio_df['SMA1'] = ratio_df['ratio'].rolling(window=50).mean()
ratio_df['SMA2'] = ratio_df['ratio'].rolling(window=200).mean()

#グラフ用のデータ
ratio_date = ratio_df.index[-10000:]
ratio_close = ratio_df['ratio'][-10000:]
ratio_sma1 = ratio_df['SMA1'][-10000:]
ratio_sma2 = ratio_df['SMA2'][-10000:]

#グラフの表示と保存
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio_close, lw=2, label = 'Stock to Commodity', color='g')
plt.plot(ratio_date, ratio_sma1, lw=2, label = 'SMA50', color='b')
plt.plot(ratio_date, ratio_sma2, lw=2, label = 'SMA200', color='r')
plt.legend(loc=0, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('Ratio', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("stockcommodity_SMA_ratio.png")

同様のやり方で金と株価、ビットコインとイーサリアムなども調べられます。

もっと勉強したい方はぜひ他の記事もご覧ください♪

※おすすめの証券口座

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

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

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

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

-Python, お金の健康
-