プログラミング

プログラミングで投資の分析ができる?為替が円安になっている理由を分析した話

なぜ円安になっているの?

為替は何が影響しているの?


プログラミングで分析できるの?

という悩みを解決できる記事になっています。

なぜなら、私はPythonで投資先の分析をして
すでに含み益を出しているからです。

結論だけ言うと、

Pythonで為替レートの分析もできます。

この記事ではプログラミングで日米の為替レートを分析する方法を紹介します。

読み終えていただければ、

投資先で失敗しないようになります。

※おすすめの証券口座

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

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

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

プログラミングで投資の分析ができる?Pythonで為替を分析した話

プログラミングで投資の分析ができる?Pythonで為替を分析した話

よい投資先を見つけるためにエクセルを編集してグラフ作成するのは大変ですよね。

プログラミングを活用して一気に分析できればいいなあと思ったのは

私だけではないと思います。

書店で見かけた一冊の本をきっかけにこの悩みは解消されました。

Pythonによるファイナンス データ駆動型アプローチに向けて 第2版/オライリ-・ジャパン/Yves Hilpischposted with カエレバ楽天市場AmazonYahooショッピング7net

タイトルからして最高に役立つアイテムです。

これはプログラミング言語Pythonを使って

PCへのインストールから文字入力、データ系列の扱い、グラフ作成、自動売買、ポートフォリオ分析まで

多岐にわたる分析を可能とする本です。

過去の記事でもさまざまな投資分析に活用してきました。

今回は為替が円安に進行した理由を調査するために

日米のマネタリーベース比率を分析したので紹介します。

経済は高橋洋一先生に学ぼう

経済は高橋洋一先生に学ぼう

先進国の通貨政策はリフレが主流となっており、

景気が悪くなったら金利を下げてお金を大量に発行する!

という政策になっています。

このリフレ派を理解するためにおすすめなのが高橋洋一先生です。

安倍元首相から経済政策の相談を受けていた人物であり、

元大蔵省(現財務省)出身であるため役所や政治にも精通したすごい先生です。

最近はYouTubeで情報発信もされており、

私も毎日拝見しています。

そんなときに出てきたのが為替の話です。

円安が進行している理由を日米のマネタリーベース比率で説明されていました。

私も同じような分析がしたいと思い、今回チャレンジしました。

マネタリーベースとは

マネタリーベースとは

マネタリーベースとは中央銀行が世の中に直接的に供給するお金のことです。

アメリカより日本のほうがたくさんお金を供給しているから

円安が進行したと説明されています。

これを直感的にわかるように作成したグラフがこちらです。

日米のマネタリーベース比率
日米のマネタリーベース比率

日本のマネタリーベースを米国の同指標で割って作成した指数です。

日本のマネタリーベースは日本銀行のサイトから取得し、

米国はFREDから取得しました。

上昇→日本がたくさん供給している。

下落→米国がたくさん供給している。

2022年4月時点で確かに上昇はしていますが、

2020年前後と比べるとそんなに増えていないような。。。

マネタリーベースだけでは説明できないようです。

チャート作成に使ったコードはこちら

#ライブラリをインポート
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

jp_df = pd.read_csv('mblong.csv')
jp_df['date'] = pd.to_datetime(jp_df['date'])
jp_df.index = jp_df['date']
jp_mb = jp_df['monetarybase'].astype(int) *100

#データの期間
start = '1970-01-31'
end = datetime.date.today()

#USのデータ、Millions USD単位
us_df = data.DataReader('BOGMBASE', 'fred', start, end) 
us_mb = us_df['BOGMBASE']

#指標を作成するデータ
ratio_df = pd.DataFrame()
ratio_df['us_mb'] = us_mb
ratio_df['jp_mb'] = jp_mb
#欠損の削除
ratio_df.dropna(inplace=True)

#日本のMBを米国のMBで割った指数を作成
ratio_df['ratio'] = ratio_df['jp_mb'] / ratio_df['us_mb']
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 = 'JPY to USD', color='g')
plt.legend(loc=0, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('JP MB(Million Yen)/US MB(Millions Dollar)', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("jpusmb_ratio.png")

為替レートとマネタリーベース比率を見る

日米のマネタリーベース比率と為替レート
日米のマネタリーベース比率と為替レート

次にマネタリーベース比率と為替レートを比較します。

大まかなトレンドは合っているように見えるので

マネタリーベース比率が影響していると確かに言えそうです。

ただトレンドが合わないときもあり、ほかの要因も影響すると考えられます。

チャート作成に使ったコードはこちら。

#米ドル円の推移
usdjpy_df = data.DataReader('USDJPY=X', 'yahoo', start, end) 
usdjpy_date = usdjpy_df.index
usdjpy_rate = usdjpy_df['Close']

#グラフ用のデータ
ratio_date3 = ratio_df.index[-300:]
ratio_close3 = ratio_df['ratio'][-300:]

#グラフの表示と保存
plt.figure(figsize=(20, 10))
plt.plot(ratio_date3, ratio_close3, lw=2, label = 'JPY to USD(MB)', color='g')
plt.plot(usdjpy_date, usdjpy_rate, lw=2, label = 'USDJPY Rate', color='r')
plt.legend(loc=0, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('USDJPY', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("jpusmb_rate.png")

今後も面白い分析があればPythonで再現します。

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

-プログラミング
-