Pythonで投資分析してわかったこと
- 金は歴史的な割安になっている。
- まだ大きな価格上昇は来ていない。
- 今から投資するなら金がおすすめです。
こんにちは、ウチダです。
最近は株式をほとんど売却して、金・銀・仮想通貨を買い集めています。
金と銀への投資は、SBI証券で純金・純銀積立を使っています。
(参考:金へのおすすめの投資方法は?投資コストをシミュレーションします)
なぜ金に投資しているかといえば、
歴史的な超割安だからです。
これは高橋ダンさんのゴールド投資を読んで学びました。
今回は金が割安だと理解したチャートの作り方を紹介します。
金は歴史的な割安!?Pythonで投資の分析しよう

Pythonはデータ分析に強いプログラミング言語です。
コードがシンプルで分かりやすく、誰でも無料で身につけることができます。
今回は金が歴史的な割安レベルにあると理解したチャートを作成します。
そのチャートは、金の価格をアメリカのマネーサプライM2で割った指標です。
マネーサプライとは通貨供給量と呼ばれます。
要するに、アメリカの中央銀行が世の中にどれだけ米ドルを供給しているか
これを表す指標です。
(参考:コロナ禍で歴史的水準に 米マネーサプライの特異性 )
金はもともとお金と考えられていたので、
米ドルと逆相関があることが知られています。
例えば1972年のニクソンショックまでは固定相場制だったので
金と米ドルの交換レートは固定されていました。
しかし、ニクソンショックにより変動相場制となり
金の価値は大きく変動してきました。
金の価値を考えるには、米ドルの供給量が非常に重要なのです。
今回は金価格をマネーサプライM2で割ったチャートを作成します。
それぞれのデータはFREDから取得します。
Pythonoのコードはこちらです。
#ライブラリをインポート
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 = '1980-11-03'
end = datetime.date.today()
#金価格のデータ、USD/once単位
gold_df = data.DataReader('GOLDAMGBD228NLBM', 'fred', start, end)
#M2のデータ、Billions USD単位
m2_df = data.DataReader('WM2NS', 'fred', start, end)
#指標を作成するデータ
ratio_df = pd.DataFrame()
ratio_df['gold'] = gold_df['GOLDAMGBD228NLBM']
ratio_df['M2'] = m2_df['WM2NS']
#欠損の削除
ratio_df.dropna(inplace=True)
#金価格をM2で割った指標を作成
ratio_df['ratio'] = ratio_df['gold'] / ratio_df['M2']
ratio_df.dropna(inplace=True)
#グラフに使用するデータ
ratio_date = ratio_df.index
ratio = ratio_df['ratio']
#グラフの表示と保存
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio, lw=2, label = 'Gold to M2', color='g')
plt.legend(loc=1, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('Gold price(USD)/M2(Billions USD)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("goldm2_ratio.png")
作成したグラフがこちらです。

指数は上昇すると、金の価格が上昇していることを意味します。
下落は米ドルの供給量が増えていることを意味します。
1980年代は指数が非常に大きい時代でした。
しかし、それ以降下落を続け、近年は非常に低い水準で推移しています。
2000年から2010年頃までは一時的に上昇しました。
これは金の価格が大きく上昇した時期と一致しています。

しかし、2011年以降は指数が再び下落しています。
金の価格が下落した影響かと思われます。
一方、2020年からM2は急増しています。

(参考:米国のマネーサプライM2のデータ)
指標のチャートを全体的に見ると、近年は大きく下落しているように見えます。
高橋ダンさんの本では、指標は平均的に0.1〜0.2の間くらいと言われています。
いまは歴史的にも低い水準にあるので、金の価格上昇が期待できます。
では、今後はどのような動きになるのか?
Pythonでさらに分析します。
金の価格はどうなる?Pythonで投資分析してみた

移動平均を使ってトレンドを調べます。
データは1000個で、トレンドは短期(50日移動平均)と長期(200日移動平均)を使って調べます。
Pythonのコードはこちらです。
#単純移動平均の計算
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[-1000:]
ratio_close = ratio_df['ratio'][-1000:]
ratio_sma1 = ratio_df['SMA1'][-1000:]
ratio_sma2 = ratio_df['SMA2'][-1000:]
#グラフの表示と保存
plt.figure(figsize=(20, 10))
plt.plot(ratio_date, ratio_close, lw=2, label = 'Gold to M2', 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('Gold price(USD)/M2(Billions USD)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("goldm2_SMA_ratio.png")
出来上がったグラフがこちらです。

指数(緑)の上昇は金の価格上昇を意味します。
下落は金価格の下落です。
2012年から2020年までは短期の移動平均が長期を下回っています。
これは金価格の下落を意味するので、
金に投資している人は我慢の時期でした。
2020年からは上昇トレンドに転換するように見えましたが
再び短期ラインが長期を下抜け、デッドクロスを形成しています。
もうしばらくは金の価格上昇は我慢する必要があると考えます。
逆に言えば、金の価格上昇は始まっていないたので
いまから投資するなら、金がおすすめです。
Pythonで分析した結果のまとめ

今回は金の価格が歴史的にも割安であることをPythonで分析しました。
まだ金の大きな価格上昇は来ていないので、投資するのにおすすめです。
Pythonで投資の分析をしたいなら、こちらの本がおすすめです。
実例付き、チャート付きで、非常にわかりやすいので愛用しています。
ここまで読んでいただきありがとうございました。^^