いま何に投資したらいいの?
プログラミングで投資の分析ができるの?
どんなコードを書いたらいいの?
という悩みを解決できる記事になっています。
なぜなら、私はPythonで投資先の分析をして
すでに含み益を出しているからです。
結論だけ言うと、
2022年は金が歴史的な割安水準であり、投資先におすすめです。
この記事ではプログラミングで金の分析をする方法を紹介します。
読み終えていただければ、
投資先で失敗しないようになります。
※おすすめの証券口座
これから投資を始める人にはSBI証券がおすすめです。
初期設定や操作が簡単なので、トントン調子で投資を始められます。
ネクシィズトレードから申し込めば電話サポート付きなのでネットが苦手な人にもおすすめです。
プログラミングで投資の分析ができる?Pythonでベストな投資先を見つけた話

よい投資先を見つけるためにエクセルを編集してグラフ作成するのは大変ですよね。
プログラミングを活用して一気に分析できればいいなあと思ったのは
私だけではないと思います。
書店で見かけた一冊の本をきっかけにこの悩みは解消されました。

Pythonによるファイナンス データ駆動型アプローチに向けて 第2版/オライリ-・ジャパン/Yves Hilpischposted with カエレバ楽天市場AmazonYahooショッピング7net
タイトルからして最高に役立つアイテムです。
これはプログラミング言語Pythonを使って
PCへのインストールから文字入力、データ系列の扱い、グラフ作成、自動売買、ポートフォリオ分析まで
多岐にわたる分析を可能とする本です。
過去の記事でもさまざまな投資分析に活用してきました。
今回は2022年にベストな投資先として金を見出したので、
その分析に使用したコードを紹介します。
2022年のベストな投資先は金だと見出したコード

金がベストな投資先だと見出した理由はこちらの記事に詳しく書いています。
投資分析に使用したのは金価格をマネーサプライで割った指数です。
この指数が歴史的な割安水準にあるため、ベストな投資先だと考えました。

このチャートを作ったコードを記載します。
#ライブラリをインポート
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-08-03'
end = datetime.date.today()
#金価格のデータ、USD/once単位
gold_df = data.DataReader('GC=F', 'yahoo', start, end)
#M2のデータ、Billions USD単位
m2_df = data.DataReader('WM2NS', 'fred', start, end)
#指標を作成するデータ
ratio_df = pd.DataFrame()
ratio_df['gold'] = gold_df['Close']
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")
金価格はYahoo!Fianance、マネーサプライはFREDから取得しました。
グラフは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[-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")
いまは下落トレンドですが、
仕込み時だと考えてコツコツ積み立て投資を継続していきます。
ここまで読んでくださりありがとうございました。^^
※今回は過去記事を修正して再投稿しています。
FREDから金価格のデータが削除されたのでコードが一部使えなくなっていました。