こんにちは、ウチダです。
最近は株式をほとんど売却して、金・銀・仮想通貨を買い集めています。
株式を売却したのは、自分なりの分析を通して、すごく割高だと感じたためです。
今回はその分析に使用した、株価と金の価格との比率チャートの作り方を紹介します。
(参考:おすすめの投資先をPythonで分析したら金だった話)
株価はすごく割高!?金の価格と比較したチャートを作成しよう

投資の勉強をする時は、YouTubeでバフェット太郎さんの動画をよく見ています。
金投資がテーマの時に、株価と金の価格との比率チャートが出てきました。
10:36あたりです。
ダウ平均株価を金の価格で割ったチャートを使って、トレンドを読み取るシーンがあります。
これを見て、同じチャートを作りたい!と思い、今回はPythonのプログラミングでチャレンジしました。
プログラミング言語Pythonを使って独自の分析チャートを作成しよう!

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
#データ期間
start = '2000-01-03'
end = datetime.date.today()
#ダウ平均株価のデータをYahoo Financeから取得する
dow_df = data.DataReader('^DJI', 'yahoo', start, end)
dow_open = dow_df['Open']
dow_close = dow_df['Close']
dow_high = dow_df['High']
dow_low = dow_df['Low']
#金の価格データをYahoo Financeから取得する
gold_df = data.DataReader('GC=F', 'yahoo', start, end)
gold_open = gold_df['Open']
gold_close = gold_df['Close']
gold_high = gold_df['High']
gold_low = gold_df['Low']
#指標のデータを作成する
ratio_df = pd.DataFrame()
ratio_df['Open'] = dow_open / gold_open
ratio_df['High'] = dow_high / gold_high
ratio_df['Low'] = dow_low / gold_low
ratio_df['Close'] = dow_close / gold_close
#空欄を削除
ratio_df.dropna(inplace=True)
#グラフ作成用のモジュールをインポートする
#conda install -c conda-forge cufflinks-py
import cufflinks as cf
import plotly.offline as plyo
plyo.init_notebook_mode(connected=True)
#グラフデータの作成
qf = cf.QuantFig(
ratio_df, #データ(Open-High-Low-Closeの4列)
title='Dow to Gold ratio', #グラフタイトル
legend='top', #凡例の場所
name='Dow/Gold' #凡例に表示する名前
)
#グラフの表示と保存
plyo.iplot(
qf.iplot(asFigure=True), #グラフの表示
image='png', #png形式のファイル
filename='dowtogoldratio' #ファイル名
)
できあがったグラフがこちら。

この指標は上昇すると、ダウ平均株価が金の価格よりも上昇していることを意味します。
下落は金の価格がより上昇していることを意味します。
2000年から2011年は、金の価格が6倍まで大きく伸びた期間です。
金が株価を大きくアウトパフォームしていました。

しかし、それ以降は株価が上昇し、金は下落しました。
特に米国の株価が2倍以上に成長した期間です。
そして、2019年ごろから指標が横ばいになってきました。
では、指標は今後どうなるのか?
移動平均を見て考えます。
今後の株価と金価格のパフォーマンスをPythonで予測しよう

ダウ平均株価と金は、今後どちらがアウトパフォームするのか?
Pythonを使って分析します。
#移動平均を計算
ratio_df['SMA1'] = ratio_df['Close'].rolling(window=50).mean()
ratio_df['SMA2'] = ratio_df['Close'].rolling(window=200).mean()
#グラフ用のデータを用意する
ratio_date = ratio_df.index
ratio_close = ratio_df['Close']
ratio_sma1 = ratio_df['SMA1']
ratio_sma2 = ratio_df['SMA2']
#グラフの表示
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio_close, lw=2, label = 'Close', 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=1, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('ratio', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("dowtogold_SMA.png")
作成したグラフはこちら。

チャートには50日と200日の単純移動平均線を追加しました。
短期の移動平均線が長期を割り込もうとしており、デッドクロスができつつあります。
さらに直近1年間にフォーカスします。
#直近1年分のデータを抽出
ratio_date = ratio_df.index[-365:]
ratio_close = ratio_df['Close'][-365:]
ratio_sma1 = ratio_df['SMA1'][-365:]
ratio_sma2 = ratio_df['SMA2'][-365:]
#グラフを表示して保存する
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio_close, lw=2, label = 'Close', 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=2, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('ratio', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("dowtogold_SMA2.png")
できあがったグラフはこちら。

指数は2020年11月頃から50日移動平均に支えられて下値を切り上げてきました。
これは株価が上昇してきたことを意味します。
しかし、2021年に6月に割り込み、以降は不安定な動きが続いています。
今後、指数が下落トレンドになれば金の上昇が期待できます。
金に投資するなら今のうちかもしれませんね。
Pythonで投資の分析をするなら、この本がおすすめです。
ここまで読んでいただきありがとうございました。^^