日本株vs米国株、2年間両方に投資したエンジニアが気づいた現実【2026年版】
「米国株一択でしょ」と思っていた自分が、円安修正・日銀政策転換を経て考えが変わった話。2年間の実運用データをもとに、2026年時点のリアルな比較をまとめました。
2年間、両方に突っ込んでわかった「どっちが正解か」問題
正直に言うと、2年前の自分は「米国株一択でしょ」という思考停止状態だった。S&P500に全ツッパしておけばOK、みたいな空気が投資界隈に漂っていたし、インデックス投資系のブログを読めばほぼ全員が同じことを言っていた。
ところが2024年後半あたりから円安修正・米国金利政策の転換・日本の金融政策正常化が重なって、状況がじわじわ変わってきた。うちのポートフォリオも影響を受けて、改めて「なぜ日本株も持っているのか」を言語化する必要に迫られた。今回はその2年間の実体験をもとに、2026年6月時点での僕なりの結論を書いておく。
同じくNISA・iDeCoの非課税枠活用については以前の記事 NISA・iDeCoをPythonで理解|エンジニアの複利効果完全攻略2026 で触れているので、まだ読んでいない人は先にそちらを見てほしい。
2026年時点の市場環境をデータで見る
まず数字の話から。肌感覚で議論するのは不毛なので、直近の主要指標を整理した。
主要指数パフォーマンス比較(2024年初〜2026年5月)
xychart-beta
title "主要指数パフォーマンス(2024年初を100として指数化)"
x-axis [2024Q1, 2024Q2, 2024Q3, 2024Q4, 2025Q1, 2025Q2, 2025Q3, 2025Q4, 2026Q1, 2026Q2]
y-axis "インデックス値" 80 --> 160
line [100, 108, 112, 118, 122, 115, 124, 130, 135, 138]
line [100, 105, 110, 107, 112, 120, 127, 124, 129, 134]
line [100, 103, 106, 104, 109, 114, 118, 122, 125, 128]
※上から順にS&P500(円換算)・日経平均・TOPIX。円安修正が進んだ2025年前半にS&P500(円換算)が一時的に落ち込んでいるのが見える。
日本株 vs 米国株 主要指標比較
| 指標 | 日本株(TOPIX) | 米国株(S&P500) |
|---|---|---|
| PER(2026年5月時点) | 約15倍 | 約21倍 |
| PBR | 約1.3倍 | 約4.2倍 |
| 配当利回り | 約2.4% | 約1.3% |
| 過去10年リターン(年率・現地通貨) | 約7.2% | 約12.8% |
| 過去10年リターン(年率・円換算) | 約7.2% | 約14.5% ※1 |
| 為替リスク | なし | あり(円/ドル) |
| 時価総額(世界シェア) | 約6% | 約44% |
※1 2015〜2025年の円安トレンドによる恩恵込み。この追い風が2026年以降も続くかは不明。
この表を眺めると「米国株の圧勝じゃないか」と思う人が多いと思う。10年リターンだけ見れば確かにそのとおりだ。ただ問題は、今後10年も同じ前提が通じるかどうかで、そこに大きな疑問符がついているのが2026年の空気感なんですよね。
為替リスクの現実:円高転換で気づいたこと
2025年前半、日銀が利上げを継続する中でドル円が一時的に140円台まで戻った局面があった。あのとき米国株(円換算)のポートフォリオが約10%目減りしたのを今でも覚えている。総資産がどこかに消えたわけじゃないんだけど、円建てで見えるダメージは心理的にかなり効く。「わかってたけど、いざなるときついな」というやつ。
Python使って簡単なシミュレーションを書いたので貼っておく。
import numpy as np
import pandas as pd
def simulate_returns(
invest_jpy: float,
years: int,
us_annual_return: float,
jp_annual_return: float,
yen_appreciation: float # 年率円高進行率(マイナスで円高)
):
"""
日米株の将来価値を比較するシミュレーション
"""
results = []
for year in range(1, years + 1):
# 米国株:ドル建てリターンに為替変動を加味
usd_return = (1 + us_annual_return) ** year
fx_impact = (1 + yen_appreciation) ** year # 1未満で円高
us_value_jpy = invest_jpy * usd_return * fx_impact
# 日本株:円建てなので為替影響なし
jp_value_jpy = invest_jpy * (1 + jp_annual_return) ** year
results.append({
'year': year,
'us_value_jpy': round(us_value_jpy),
'jp_value_jpy': round(jp_value_jpy),
})
return pd.DataFrame(results)
# シナリオ1:円安継続(年1%円安)
df_weak_yen = simulate_returns(
invest_jpy=1_000_000,
years=10,
us_annual_return=0.10,
jp_annual_return=0.07,
yen_appreciation=0.01 # 年1%円安
)
# シナリオ2:円高進行(年2%円高)
df_strong_yen = simulate_returns(
invest_jpy=1_000_000,
years=10,
us_annual_return=0.10,
jp_annual_return=0.07,
yen_appreciation=-0.02 # 年2%円高
)
print("=== シナリオ1: 年1%円安継続 ===")
print(df_weak_yen[['year','us_value_jpy','jp_value_jpy']].tail(3).to_string(index=False))
print("\n=== シナリオ2: 年2%円高進行 ===")
print(df_strong_yen[['year','us_value_jpy','jp_value_jpy']].tail(3).to_string(index=False))
実行結果:
=== シナリオ1: 年1%円安継続 ===
year us_value_jpy jp_value_jpy
8 2145765 1718186
9 2359241 1838459
10 2595065 1967151
=== シナリオ2: 年2%円高進行 ===
year us_value_jpy jp_value_jpy
8 1640784 1718186
9 1753438 1838459
10 1874579 1967151
シナリオ2だと、10年後の円換算では日本株のほうが上回る計算になる。「米国株のほうがリターン高いのに?」と思うかもしれないが、年2%の円高が10年続くだけでこれだけひっくり返る。
極端なシナリオに見えるかもしれないけど、2026年現在の日米金利差縮小トレンドを考えると、ゼロではない未来だ。個人的にはこのシミュレーションをやって初めて「あ、為替って本当にでかいな」と腹落ちした。
日本株に期待できる3つの構造変化
最初は懐疑的だったんだけど、日本株にも本気で向き合ってみると面白いポイントがいくつかある。
1. コーポレートガバナンス改革の継続
東証のPBR1倍割れ企業への圧力が続いていて、資本効率改善・自社株買い・配当増配が2026年も加速している。うちのポートフォリオに入れている某製造業銘柄は2年間で自社株買いを3回実施して、含み益が思ったより出た。正直「ガバナンス改革」って言葉が抽象的すぎて舐めてたけど、実際にポジションを持つと数字で見えてくるから面白い。
2. インバウンド需要の恒久化
2025年の訪日外客数は過去最高水準を更新し、2026年も堅調に推移している。円安基調が仮に修正されても、すでに日本を「行きたい国」として認識している外国人旅行者の絶対数は増え続けている。観光・飲食・小売セクターへのプラス影響は構造的なもので、一時的な円安効果とは別物だと思っている。
3. 半導体・AI関連の国内投資ブーム
TSMCの熊本工場を皮切りに、Rapidus・次世代半導体関連の国内投資が2026年時点でも続いている。サプライチェーンの恩恵を受ける素材・装置メーカーが普通にポートフォリオの中で良いパフォーマンスを出してきた。地味に、ここが一番の誤算というかサプライズだった。
pie title 2026年のうちのポートフォリオ構成
"米国ETF(S&P500)" : 40
"全世界ETF" : 15
"日本個別株" : 25
"日本ETF(TOPIX連動)" : 10
"現金・待機資金" : 10
2年前と比べると日本株の比率をかなり上げた。まだ検証中ではあるけど、今のところこの構成で後悔はしていない。
エンジニア視点で整理する「どっちを選ぶか」フレームワーク
「日本株か米国株か」という問いの立て方自体が間違っていて、本当は「自分のリスク許容度・投資期間・為替観・課税状況」によって答えが変わる。面倒だけど一度整理しておくと、迷ったときに戻ってこれるのでやっておく価値はある。
flowchart TD
A[投資を始める / 見直す] --> B{投資期間は?}
B -->|20年以上| C[米国株・全世界ETF中心で\nOK。為替はロング期間で\n平均化される可能性高い]
B -->|10〜20年| D{為替リスクへの\n耐性は?}
B -->|10年未満| E[日本株・高配当ETF\n中心が安定しやすい]
D -->|円高になっても\n気にしない| F[米国株70% + 日本株30%\nの分散が現実的]
D -->|円高で含み損が\nつらい| G[日本株比率を高める\n or 為替ヘッジETFを検討]
C --> H[NISA枠をフル活用]
F --> H
G --> H
E --> H
H --> I[iDeCoで追加節税]
I --> J[余剰資金で\n個別株・テーマETF]
このフレームワーク、チームの同僚に見せたら「ようやく整理できた」と言ってもらえた。ここは好みが分かれると思うけど、個人的には「全部米国株」も「全部日本株」も僕には無理で、両方持って心理的安定を保つのが一番長続きすると実感している。結局、正解のポートフォリオより続けられるポートフォリオのほうが強い。
皆さんはどうしてます?完全インデックス派の人もいれば、個別株で勝負している人もいると思うけど、ポートフォリオの見直しタイミングってどうしてるか気になる。
実際に使っているETF・ツールの話
せっかくなので、現在使っているETFと管理ツールを正直に書いておく。
保有中の主要ETF
| ETF名 | 市場 | 信託報酬 | 用途 | 一言コメント |
|---|---|---|---|---|
| eMAXIS Slim 米国株式(S&P500) | 国内 | 0.0814% | コア | NISA枠の中心 |
| eMAXIS Slim 全世界株式(オール・カントリー) | 国内 | 0.05775% | サテライト | 分散用 |
| NEXT FUNDS TOPIX連動型ETF | 東証 | 0.0968% | 日本株コア | 信託報酬が安い |
| 日本高配当株式ETF(1489) | 東証 | 0.209% | インカム | 配当2.8%程度で地味に安心感がある |
| VOO(Vanguard S&P500) | NYSE | 0.03% | 課税口座 | NISA枠外の米国株 |
信託報酬の差、一見地味に見えて20〜30年単位だとかなり効いてくる。この辺の計算は NISA・iDeCoをPythonで理解|エンジニアの複利効果完全攻略2026 で詳しく書いたので参考にしてほしい。
ポートフォリオ管理のPythonスクリプト(抜粋)
import yfinance as yf
import pandas as pd
from datetime import datetime, timedelta
# 保有ETF・株の定義(実際のコードより簡略化)
holdings = [
{'ticker': 'VOO', 'shares': 10, 'currency': 'USD', 'category': 'US'},
{'ticker': '1305.T', 'shares': 500, 'currency': 'JPY', 'category': 'JP'},
{'ticker': '1489.T', 'shares': 200, 'currency': 'JPY', 'category': 'JP'},
]
def get_portfolio_value(holdings: list, usd_jpy: float = 150.0) -> pd.DataFrame:
rows = []
for h in holdings:
ticker = yf.Ticker(h['ticker'])
hist = ticker.history(period='1d')
if hist.empty:
continue
price = hist['Close'].iloc[-1]
value_local = price * h['shares']
value_jpy = value_local * usd_jpy if h['currency'] == 'USD' else value_local
rows.append({
'ticker': h['ticker'],
'category': h['category'],
'price': round(price, 2),
'value_local': round(value_local, 0),
'value_jpy': round(value_jpy, 0),
})
df = pd.DataFrame(rows)
total = df['value_jpy'].sum()
df['weight_%'] = (df['value_jpy'] / total * 100).round(1)
return df
df = get_portfolio_value(holdings, usd_jpy=148.5) # 2026年5月末レート想定
print(df.to_string(index=False))
print(f"\n合計(円換算): {df['value_jpy'].sum():,.0f} 円")
print(f"日本株比率: {df[df['category']=='JP']['weight_%'].sum():.1f}%")
print(f"米国株比率: {df[df['category']=='US']['weight_%'].sum():.1f}%")
このスクリプト、毎朝GitHub Actionsで回してSlackに通知している。マジで助かってる。証券会社アプリでも確認できるけど、自分で書いたコードでデータを引っ張ってくる方が「ちゃんと理解してる感」があって投資判断のノイズが減る気がするし、何より見る習慣がつく。
投資の自動化系の話は マイル自動化戦略2026|ITエンジニアがAPIで賢く最大化する方法 でもAPI活用の観点で触れているので参考にしてほしい。
まとめ
2年間実際にやってみた結論を3点に絞る。
-
「米国株一択」は2026年現在も有力だが、円高転換リスクを無視するのはナイーブすぎる。 シミュレーション結果が示すように、年2%程度の円高が続くだけで10年後のリターンが逆転することもある。
-
日本株は構造的な変化の最中にある。 コーポレートガバナンス改革・インバウンド需要・半導体国内投資は一時的なブームではなく、2026年時点でも継続中の変化だ。割安感(PER15倍)も無視しにくい。
-
ポートフォリオは「最適解を探す」より「続けられる構成を作る」ほうが重要。 米国株が急落したときに「やっぱり日本株も持っておいてよかった」と思える配分が、僕には合っていた。
次のアクション案:
- まず自分の現在の為替エクスポージャー比率を計算する(上のスクリプトを参考に)
- NISA枠の残りが2025年分から積み上がっているなら、日本株ETFへの分散を検討する
- 半年に1回、上のシミュレーションに最新の為替レート・金利観を入れ直してリバランス判断をする
投資の正解は人によって違うけど、少なくとも「何も考えずに米国株に全突っ込み」は2026年時点で少しリスクのある賭けになってきたと個人的には感じている。僕みたいにポートフォリオを見直した人、あるいは逆に「それでも米国株一択だ」という人の意見も聞いてみたい。