ドル円が161円台まで円安が進んだとき、僕が持っている製造業株(輸出系メーカー)はもっと上がるはずだと思っていたのに、実際の値動きはなんだか鈍くて「あれ、思ってたのと違う」と感じました。。。円安=輸出企業に有利、という単純な図式が本当に今のマーケットで成立しているのか気になって、Pythonで相関係数を計算してみることにしました。
製造メーカー中心の日本株とドル円FXを両方やっている身としては、この2つがどれくらい連動しているのか・していないのかを数字で確認しておきたい、というのが今回調べた一番の理由です。
なぜ円安は輸出企業に有利と言われるのか
海外で稼いだドルを円に換算する際、円安(ドル高)が進むほど円換算の売上・利益が膨らみます。そのため自動車や精密機器などの輸出比率が高いメーカー株は、円安局面で業績期待から買われやすいというのが基本的なロジックです。ただし、これはあくまで「平均的にはそうなりやすい」という話で、個別株やタイミングによってズレが出ます。
Pythonで相関係数を計算する
yfinanceで製造業株とUSDJPY=Xの値動きを取得し、日次リターンの相関係数とローリング相関(移動する期間ごとの相関)を計算しました。
import yfinance as yf
import pandas as pd
tickers = {
"USDJPY": "USDJPY=X",
"トヨタ": "7203.T",
"ソニーG": "6758.T",
"ファナック": "6954.T",
}
# 過去1年の終値を取得
data = pd.DataFrame()
for name, code in tickers.items():
data[name] = yf.download(code, period="1y", interval="1d")["Close"]
# 日次リターンに変換
returns = data.pct_change().dropna()
# 全体相関
corr = returns.corr()["USDJPY"]
print("--- USDJPYとの相関係数(過去1年) ---")
print(corr)
# 直近60日のローリング相関
rolling_corr = returns["USDJPY"].rolling(60).corr(returns["トヨタ"])
print("\n--- トヨタとの60日ローリング相関(直近5件) ---")
print(rolling_corr.tail())
実際に計算してみた感想
1年通しの相関係数では、輸出比率の高いメーカーほどドル円との正の相関が出やすい傾向は確かにありました。ただ、60日ローリング相関で区間を切ってみると、相関の強さがかなり上下にブレていることが分かりました。特に今回のように日銀の利上げ観測とFOMCのタカ派姿勢が同時に話題になった局面では、「円安=株高」のロジックよりも、金利差そのものへの警戒感(将来的な日米金利差縮小リスク)が株価に効いてしまい、相関が一時的に弱まっているように見えました。
つまり「円安が進んでいるから輸出株は買い」と単純に決めつけるのは危険で、その時々のマクロ要因(金利・金融政策イベントなど)も合わせて見る必要があるんだな、と数字を見て改めて実感しました。
まとめ
ドル円と製造業株の相関は「常に一定」ではなく、マクロ環境によって強弱が変わることがPythonの数字で確認できました。次は、相関が弱まったタイミングと日銀・FOMCなどのイベント日を重ねてグラフ化し、どんな条件で相関が崩れやすいのかをもう少し深掘りしてみたいです。

