Python お金の健康

2022年の投資は株式と金のどちらがいい?Pythonで分析した話

こんにちは、ウチダです。

最近は株式をほとんど売却して、金・銀・仮想通貨を買い集めています。

株式を売却したのは、自分なりの分析を通して、すごく割高だと感じたためです。

今回はその分析に使用した、株価と金の価格との比率チャートの作り方を紹介します。

(参考:おすすめの投資先をPythonで分析したら金だった話

株価はすごく割高!?金の価格と比較したチャートを作成しよう

株価はすごく割高!?金の価格と比較したチャートを作成しよう

投資の勉強をする時は、YouTubeでバフェット太郎さんの動画をよく見ています。

金投資がテーマの時に、株価と金の価格との比率チャートが出てきました。

10:36あたりです。

ダウ平均株価を金の価格で割ったチャートを使って、トレンドを読み取るシーンがあります。

これを見て、同じチャートを作りたい!と思い、今回はPythonのプログラミングでチャレンジしました。

プログラミング言語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で予測しよう

ダウ平均株価と金は、今後どちらがアウトパフォームするのか?

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")

できあがったグラフはこちら。

直近1年間のダウ平均株価と金の価格との指数

指数は2020年11月頃から50日移動平均に支えられて下値を切り上げてきました。

これは株価が上昇してきたことを意味します。

しかし、2021年に6月に割り込み、以降は不安定な動きが続いています。

今後、指数が下落トレンドになれば金の上昇が期待できます。

金に投資するなら今のうちかもしれませんね。

Pythonで投資の分析をするなら、この本がおすすめです。

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

-Python, お金の健康
-