米ドル円はかなり割安水準にある
2024-07-31 by 内田裕之
こんにちは。
投資で老後資産づくりに励むうっちゃんです。
最近は円安が大きく進行していますね。
米国株など海外資産に投資している方は、資産がかなり増えたのではないでしょうか。
一方で、YouTubeで高橋洋一先生が「マネタリーベース比で見たら110〜120円が適当」とおっしゃいました。
今の円安は行き過ぎなのか?
Pythonで分析してみます。
この記事は内容に広告・プロモーションを含みます。
円安は過剰に進行している?
2021年から円安が大きく進行しましたね。
私も投資面では米国株、金銀、ビットコインともに大きく恩恵を受けました。
円安は資産が増えるので嬉しいのですが、YouTubeで気になる動画を見つけました。
(参考:真相深入り! 虎ノ門ニュース、【メンバーシップ限定】2024/7/12(金) 髙橋洋一×松原 仁×長谷川幸洋)
この動画のなかで高橋洋一先生が「マネタリーベース比で見たら米ドル円は110〜120円が適当」とおっしゃいました。
まず、この120円程度が適当という為替レートがどこから算出されたものか、検証します。
為替レートの理論的な決まり方
為替とは通貨の交換比率であるため、理論的に大変おおざっぱにいえば、両通貨の発行量の比に落ち着くそうです。
ここで、通貨の発行量にはマネタリーベースという指標を使います。
マネタリーベースは円の場合は日本銀行、米ドルの場合はFREDで公開されています。
(日本円:マネタリーベース)
(米ドル:Monetary Base; Total (BOGMBASE))
両者の比と米ドル円レートを重ね合わせたグラフを作成してみましょう。
マネタリーベース比と為替レート
先に出来上がったグラフを示します。
黒色がドル円のレート、緑色がマネタリーベースの比です。
完全には一致していませんが、おおまかなトレンドはそろっているように見えます。
最近はマネタリーベース比より円安に振れている様子もわかります。
高橋洋一先生によれば米民主党は特に指摘していないので円安は放置されていますが、トランプ政権(共和党)になれば非難され、円高に振れるだろうという話でした。
円安もどうなるか、米大統領選挙を注目する必要がありそうですね。
プログラミングコード
グラフの作成に使ったPythonコードを示します。
#ライブラリをインポート
from pandas_datareader import data
import yfinance as yf
import pandas as pd
from pylab import mpl, plt
import numpy as np
import datetime
import os
import openpyxl
plt.style.use('ggplot')
mpl.rcParams['font.family'] = 'serif'
%matplotlib inline
#日本のマネタリーベース,億円単位
jpy_df = pd.read_csv("mblong.csv", encoding='UTF-8', header=6, usecols=[1,2])
jpy_df = jpy_df.set_axis(['date', 'jpy_moneytarybase'], axis='columns')
jpy_df['date'] = pd.to_datetime(jpy_df['date'])
jpy_df = jpy_df.set_index('date')
jpy_df['jpy_moneytarybase'] = jpy_df['jpy_moneytarybase'].str.replace(',', '').astype(int) #str to int
#データの期間
start = '1971-01-01'
end = datetime.date.today()
#米国のマネタリーベース、Millions USD単位
usd_df = data.FredReader('BOGMBASE', start, end)
#Yahoo FinanceからUSDJPY取得
yf.pdr_override()
fx_df = data.get_data_yahoo('JPY=X', start, end)
merge_df = pd.DataFrame()
merge_df['JPY_monetarybase'] = jpy_df['jpy_moneytarybase']
merge_df['USD_monetarybase'] = usd_df.read()
merge_df['JPY=X'] = fx_df['Close']
merge_df.dropna(inplace=True)
#理論値を計算
merge_df['theory'] = ( merge_df['JPY_monetarybase'] * 100000000 ) / ( merge_df['USD_monetarybase'] * 1000000 )
#グラフに使用するデータ
date = merge_df.index
fx = merge_df['JPY=X']
theory = merge_df['theory']
#グラフの表示と保存
plt.figure(figsize=(20, 10))
plt.plot(date, fx, lw=2,label='JPY=X', color='black')
plt.plot(date, theory, lw=2, label='monetarybase JPY/USD', color='g')
plt.legend(loc=2, fontsize=18)
plt.xlabel('year', fontsize=18)
plt.ylabel('USD-JPY', fontsize=18)
plt.tick_params(labelsize=18)
plt.savefig("usdjpytheory20240729.png")
2年ぶりにプログラミングしたらアップデートの影響で、昔のコードが使えなくて苦労しました。
苦労した話は別の記事でまとめます。
まとめ
今回は米ドル円の為替がマネタリーベース比に対して過剰に円安にあることを紹介しました。
海外資産で運用中の方は要注意です。
たとえ円高になって資産が減っても、気にせずに積立投資を継続しましょう。
この記事がおもしろいと感じた方はX(旧Twitter)やブログで紹介いただけますと嬉しいです。
おすすめ記事
PythonでFXのデータを取得する方法【ALPHA VANTAGE】