円が5%下がった月、日経ETFのリターンからその5%がそのまま消えます。ユーザーは何もしていないのに、です。多国籍ポートフォリオを一つの画面で管理する人なら誰もがぶつかる疑問 — 「為替のせいで損したのか、銘柄そのものが下がったのか」 — をデータレベルで切り分けるワークフローを整理します。
韓国在住のユーザーがSBI証券経由で日経225 ETF (1321) を保有しているとしましょう。2025年1月1日に100株購入、価格28,000円、当時のレートは1円 = 9.0ウォン。購入時点のウォン建て評価額は28,000 × 100 × 9.0 = 25,200,000ウォン。
1か月後、ETFの価格は28,000円のまま。しかし円が下がってレートは1円 = 8.55ウォン。ウォン建て評価額は28,000 × 100 × 8.55 = 23,940,000ウォン。トラッカーが表示する損益は−1,260,000ウォン、リターン−5%。
ユーザーの立場では「自分の買った銘柄が5%下がったのか?」という錯覚が起きかねません。実際には銘柄自体は0% — 為替だけが5%下がったのです。同じ28,000円を持っているのに、換算通貨が変わっただけの結果を銘柄の損益と読み違えてしまいます。
マルチ通貨ポートフォリオには常に2種類のリターンがあります:
| リターンの種類 | 計算方式 | 意味 |
|---|---|---|
| 現地通貨リターン | (現在価格 − 取得価格) / 取得価格、すべて現地通貨で | 銘柄自体の成績。為替ノイズはゼロ。 |
| 表示通貨リターン | (現在評価額 − 取得時評価額) / 取得時評価額、すべて表示通貨に換算 | ユーザーの「実際に口座に反映される」損益。為替変動を含む。 |
どちらのリターンも有効です。どちらが「本物」というより、何を見たいかによって使い分けます。
MultifoliosのCSVフォーマットが一つの原則で作られている理由がここにあります — 取得価格は常に現地通貨で記録する。換算しません。為替変換は表示時点で動的に処理されます。
symbol,buyPrice,shares,buyDate,currency,accountName 005930.KS,72000,50,2024-03-15,KRW,ミレーアセット 1321.T,28000,100,2025-01-02,JPY,SBI SOXL,15.4,200,2024-11-08,USD,楽天 AAPL,178.50,30,2023-09-12,USD,楽天
韓国銘柄はウォン単位、日本銘柄は円単位、米国銘柄はドル単位。そのまま。こう保存しておけば、為替が変動しても購入時点の「実際に支払った現地通貨の金額」は絶対に変わりません。
.KS (KOSPI) または .KQ (KOSDAQ)。例: 005930.KS (サムスン電子)、035420.KQ の形式。.T。例: 1321.T (日経225 ETF)、7203.T (トヨタ)。SOXL、AAPL、SPY。.KS なしの6桁数字だけなら、自動で .KS が付きます。JPY + 4桁も同様に .T が自動付与。実際の利用シナリオを一つたどってみます。1321.T (日経225 ETF) 100株を28,000円で買ったユーザー。1か月後に確認。
ダッシュボード右上の設定で表示通貨KRWを選択。保有銘柄カードに表示される評価額・損益はすべてウォン換算。
結果: 1321.T 評価額23,940,000ウォン、損益−1,260,000ウォン、リターン−5.0%。ユーザーの視点では「5%の損失」に見えます。
同じ設定で表示通貨JPY。1321.T 評価額2,800,000円、損益0円、リターン0.0%。銘柄自体は変動なしだと即座に分かります。
2つの表示通貨の間のギャップ (−5% vs 0%) がまさに為替変動分。他に日本銘柄があれば、それらも同じギャップを持ちます — つまりそのギャップは「円安」という一つの要因から来ています。
表示通貨USDに切り替え。米国銘柄の銘柄自体のリターンを即座に確認。韓国・日本銘柄はそのまま換算して表示されますが、米国銘柄はノイズのないネイティブなリターン。
例: SOXL 取得価格.4、現在価格.8 → +60.4%。表示通貨がKRWだったら、同じSOXLが+52%程度に (ウォン高分が差し引かれて) 見えていたかもしれません。USD基準が銘柄自体の成績の正直な答えです。
MultifoliosからCSVをエクスポートすると同じ列構成で出力されます — つまり外部ツール (Excel、Python pandas、Googleスプレッドシート) に持ち込んで為替シミュレーションを回すのに適した形です。
# Python の例 — 為替シナリオ別の損益計算
import pandas as pd
df = pd.read_csv('multifolios-export.csv')
# シナリオ: 円がさらに5%安になった場合の日本銘柄の損益
df_jp = df[df['currency'] == 'JPY'].copy()
df_jp['fx_scenario_krw'] = df_jp['buyPrice'] * df_jp['shares'] * 8.10 # 仮定: 1円 = 8.10ウォン
df_jp['actual_krw'] = df_jp['buyPrice'] * df_jp['shares'] * 8.55 # 現在: 1円 = 8.55ウォン
df_jp['fx_impact'] = df_jp['fx_scenario_krw'] - df_jp['actual_krw']
print(df_jp[['symbol', 'fx_impact']])
このパターンは「為替ヘッジをするかどうか」のような意思決定に直接役立ちます。日本ETFの比重が大きいなら、円がさらに5%安になった時に損益がどれだけ悪化するかを事前にシミュレーションし、その損益を許容できるかを判断します。
「為替変動を損益に含めるかどうかは選択だが、常にその2つのリターンを別々に見られなければならない。」