/ 투자 인사이트 ← 인사이트 목록

한국·일본·미국 종목을 하나의 CSV로 — 환율 변동을 수익률에서 분리하는 법

2026.05.17 · 수정 2026.10.07 · 멀티 통화 · CSV · FX 분리

외국 주식의 현지 가격이 그대로여도 환율이 움직이면 원화 평가액은 달라집니다. 다만 앱이 원금과 평가액에 어떤 환율을 적용하는지에 따라 표시되는 수익률의 의미도 달라집니다. 가상 사례와 CSV 계산으로 가격 변화, 환율 변화, 현재 보유현황을 구분해 보겠습니다.

가격이 그대로인데 원화 평가액이 달라지는 이유

이 글의 거래 시점·가격·수량·환율은 모두 계산을 위한 가정이며 실제 거래나 과거 시세가 아닙니다. 특정 거래일 대신 매수 시점을 T0, 한 달 뒤 비교 시점을 T1이라고 하겠습니다. T0에 1321.T를 100주, 주당 28,000엔에 매수하고 환율이 1엔 = 9.0원이었다면 원화 기준 취득금액은 28,000 × 100 × 9.0 = 25,200,000원입니다. 배당·수수료·세금·환전 스프레드·추가 매매는 제외합니다.

T1에도 ETF 가격은 28,000엔이고, 환율만 1엔 = 8.55원으로 낮아졌다고 가정합니다. 원화 평가액은 28,000 × 100 × 8.55 = 23,940,000원입니다. T0의 환율로 계산한 취득금액 25,200,000원과 비교하면 손익은 −1,260,000원, 수익률은 −5%입니다.

이 사례의 현지 통화 가격 수익률은 0%이고, 원화로 표시한 엔화 가치의 변화는 −5%입니다. 100주의 엔화 평가액 2,800,000엔은 같지만 원화 평가액은 줄었습니다. 원화 손실을 모두 ETF 가격 하락으로 해석하면 안 됩니다.

가격 수익률과 환산 기준 구분하기

먼저 현재 보유분을 보여주는 앱의 두 계산을 구분합니다. 아래 수익률은 평균 매입단가 대비 가격 변화이며, 배당·수수료·세금·실현손익을 합친 총투자수익률은 아닙니다.

수익률 유형계산 방식의미
현지 통화 가격 수익률(현재가 − 평균 매입단가) / 평균 매입단가현지 통화 가격의 변화. 투자 실력이나 환율을 포함한 전체 손익을 증명하는 수치는 아닙니다.
앱의 현재 환율 기준 환산(현재 평가액 − 보유분 원가) / 보유분 원가 — 두 금액 모두 같은 현재 환율로 환산개별 종목의 원가와 평가액에 같은 환율을 곱하므로 종목별 수익률 %는 현지 통화 가격 수익률과 같습니다. 매수 당시 환율부터의 손익은 담지 않습니다.

앞의 −5%는 T0 원화 취득금액과 T1 원화 평가액의 비교입니다. 앱처럼 둘 다 T1 환율로 환산하면 원가와 평가액이 각각 23,940,000원이므로 수익률은 0%가 됩니다. 두 계산은 출발 기준이 다릅니다.

한 번 매수해 수량을 유지한 단순 사례에서는 (1 + 현지 가격 수익률) × (1 + 환율 수익률) − 1로 기준 통화 수익률을 계산할 수 있습니다. 여기서 환율은 외화 1단위당 원화입니다. 현지 가격 +10%, 이 환율 −5%라면 1.10 × 0.95 − 1 = +4.5%이며 단순히 5%p를 빼는 계산과 다릅니다. CFA Institute의 통화 수익률 설명도 두 효과를 곱으로 결합합니다.

CSV 컬럼 설계 — 현지 통화를 그대로 보존

멀티폴리오스의 CSV 포맷이 한 가지 원칙으로 만들어진 이유가 여기 있습니다 — 매수 가격은 항상 현지 통화로 기록한다. 환산하지 않습니다. 환율 변환은 표시 시점에 동적으로 처리됩니다.

symbol,currency,buyPrice,shares,accountName
005930.KS,KRW,72000,50,미래에셋
1321.T,JPY,28000,100,SBI
SOXL,USD,15.4,200,라쿠텐
AAPL,USD,178.50,30,라쿠텐

위 CSV의 단가·수량·계좌명은 형식 설명용 예시입니다. 한국 종목은 원, 일본 종목은 엔, 미국 종목은 달러 단가를 적습니다. 입력한 현지 통화 단가는 환율 변화만으로 바뀌지 않지만, 예시 값이나 추정 단가가 실제 거래 원가를 대신하지는 않습니다.

위 예시는 현재 보유수량과 평균 매수단가를 가져오는 형식입니다. buyDate 열을 추가해도 매수일은 보유현황에 저장되지 않으며 개별 매수 이력은 복원되지 않습니다.

대시보드의 CSV → CSV 가져오기 → CSV 파일 선택에서 파일을 고른 뒤, 미리보기의 종목·통화·수량·단가·계좌와 반영 범위를 확인합니다. 기존 보유가 있으면 새 종목만 추가와 보유현황 교체의 결과가 다릅니다. 누락된 통화나 같은 값의 행에 대한 확인이 나오면 선택을 마친 뒤 반영합니다. 추정 단가를 사용했다면 해당 표시도 선택합니다.

가져오기 시점에 저장되는 스냅샷 기준일은 업로드한 날이며 실제 매수일이 아닙니다. 이후 편집 화면의 보유 시작일 (선택·추정) 칸에 보이는 예) 2024-03-15는 입력 안내용 자리표시자입니다. 날짜를 입력하지 않으면 빈칸이며, 그 예시 날짜가 자동 저장되지는 않습니다.

종목 코드 규칙

앱에서 확인할 것 — 표시 통화와 환율 기여

같은 가상 사례로 화면 계산의 의미를 살펴보겠습니다. CSV를 실제로 가져오면 앱은 조회된 시세와 현재 환율을 사용하므로 아래 가정값과 같은 금액이 나온다는 뜻은 아닙니다. 과거 T0·T1 시세를 CSV로 재현하는 절차도 아닙니다.

단계 1 — 표시 통화 KRW 로 보기

화면 상단의 톱니바퀴 설정 → 표시 통화 → KRW를 선택하면 평가액과 손익 금액을 원화로 봅니다.

T1의 가정값이 적용된다면 1321.T 평가액은 23,940,000원입니다. 앱은 보유분 원가도 같은 현재 환율로 환산하므로(28,000 × 100 × 8.55 = 23,940,000원) 화면의 수익률은 0.0%입니다. 이 보유현황에는 매수 시점 환율 9.0원이 저장되어 있지 않습니다.

단계 2 — 표시 통화 JPY 로 전환

같은 설정에서 표시 통화 JPY. 1321.T 평가액 2,800,000엔, 손익 0엔, 수익률 0.0%. 표시되는 금액의 단위만 바뀌고 수익률은 KRW 일 때와 같습니다.

가격·수량·환율이 같은 시점에 표시 통화만 바꾸면 원가와 평가액이 함께 같은 비율로 환산되어 합계 수익률 %도 같습니다. 기간 중 환율 변화의 기여는 대시보드의 주가·환율 기여 분해(오늘의 요약·월간 평가금액 변화 카드)에서 별도로 확인합니다.

단계 3 — 종목 자체 성과는 현지 통화 가격으로 확인

시세와 유효한 평균 매입단가가 있는 종목 카드의 수익률 %는 현지 통화 가격 수익률입니다. 원가와 평가액의 환산에는 같은 환율을 사용하므로 표시 통화를 바꿔도 이 비율은 같습니다.

가령 미국 종목의 평균 매입단가가 $40, 현재가가 $64라면 가격 수익률은 +60%이고 KRW 표시에서도 같습니다. 반면 시간이 지나 실제 환율이 바뀌면 통화가 섞인 포트폴리오의 원가 가중치가 달라져 합계 수익률이 변할 수 있습니다. 같은 환율 아래에서 표시 단위만 바꾸는 것과 구분해야 합니다.

주가·환율 기여도는 특정 비교 기간의 분해입니다. 월간 카드는 현재 보유수량을 고정하고 월초 대비 가격을 바꾼 뒤 환율을 바꾸는 방식의 추정치로, 기간 중 매매·입출금을 재현하지 않습니다. 과거 가격·환율이 없으면 현재값으로 대체되는 항목도 있어, 매수 이후 전체 투자손익이나 정확한 거래 이력으로 읽으면 안 됩니다.

분할 매수를 정리하려면 보유 종목의 편집 → 매수 내역 → + 추가 → 저장을 사용합니다. CSV로 가져온 종목은 먼저 날짜 없는 합산 수량·평균단가 한 줄로 표시됩니다. 원본 내역으로 나눠 적을 때는 이 합산 행을 조정하거나 대체해 수량과 가중평균 단가를 맞추세요. 합산 행을 그대로 둔 채 과거 매수분을 더하면 이중 계산됩니다. 종목 추가는 기존 종목의 매수 행을 늘리는 기능이 아니라 별도 보유 종목을 만듭니다.

사람들이 자주 빠지는 함정

  1. 매수 가격을 환산해서 CSV 에 적기: 28,000엔을 "원화로 환산해서" 252,000원으로 적는 실수. 환율이 매일 바뀌니까 두 번째 환산이 발생할 때 모순이 생깁니다. 항상 현지 통화로.
  2. 표시 통화만 바꿔 보고 환율 영향을 확인했다고 여기기: 표시 통화를 바꿔도 수익률 % 는 그대로입니다. 환율이 얼마나 기여했는지는 오늘의 요약과 월간 카드의 주가·환율 기여에서 확인하세요.
  3. 매수 시점 환율이 필요한데 기록해 두지 않기: Multifolios 는 매수 시점 환율을 저장하지 않고 원금·평가액을 모두 현재 환율로 환산합니다. "그때 환율로 얼마였나" 가 필요하면 원본 거래내역(실제 매수일 · 수량 · 단가)을 따로 보관해 두고, 그 기록을 외부 도구에서 과거 환율과 결합해 계산해야 합니다.
  4. CSV 가 매수 이력까지 복원해 줄 거라 기대하기: CSV 가져오기는 현재 보유수량과 평균 매수단가를 담은 보유현황 스냅샷입니다. 여러 날에 걸친 개별 매수 이력(랏)은 자동 복원되지 않고 날짜 없는 단일 포지션으로 저장됩니다. 분할 매수 내역을 남기려면 앱에서 직접 입력해야 하고, 과거 매수 시점 환율을 외부에서 계산하려면 원본 거래내역과 실제 매수일을 CSV 와 별도로 보관해 두어야 합니다.

CSV 내보내기 → 외부 분석

기본 보유현황 CSV는 symbol,currency,buyPrice,shares,accountName,buyDate 순서로 내보냅니다. buyDate에는 직접 입력한 매수 기록 중 첫 기록의 날짜가 들어가며, 매수 기록이 없는 CSV 가져오기 종목은 빈칸입니다. 개별 매수 이력 전체를 내보내는 형식은 아닙니다. 아래 예시는 기본 CSV를 외부 도구에서 분석하는 방법입니다.

CSV → CSV 다운로드로 받는 기본 파일명은 multifolios_YYYY-MM-DD.csv입니다. 상세 CSV는 현재가·평가액 등을 추가하지만 역시 전체 거래 장부는 아닙니다. 두 형식의 buyDate는 저장된 첫 매수 행의 날짜로, 시간순으로 가장 이른 날짜라는 보장은 없으며 빈칸일 수도 있습니다.

아래 Python 3 코드는 위 네 행의 예시 CSV를 코드 안에 넣어 그대로 실행할 수 있게 했습니다. 추가 패키지는 필요 없습니다. 실제 기본 내보내기 파일을 분석하려면 StringIO(sample) 대신 해당 파일을 open("실제파일명.csv", encoding="utf-8-sig", newline="")으로 읽으세요. 환율 8.55와 8.1225는 조회값이 아니라 가정값입니다.

import csv
from decimal import Decimal
from io import StringIO

sample = """symbol,currency,buyPrice,shares,accountName
005930.KS,KRW,72000,50,미래에셋
1321.T,JPY,28000,100,SBI
SOXL,USD,15.4,200,라쿠텐
AAPL,USD,178.50,30,라쿠텐
"""
rate_now = Decimal("8.55")
rate_scenario = rate_now * Decimal("0.95")
print("symbol,base_krw,scenario_krw,fx_impact_krw")
for row in csv.DictReader(StringIO(sample)):
    if row["currency"] != "JPY":
        continue
    yen = Decimal(row["buyPrice"]) * Decimal(row["shares"])
    base = yen * rate_now
    scenario = yen * rate_scenario
    print(f"{row['symbol']},{base:.2f},{scenario:.2f},{scenario - base:.2f}")
symbol,base_krw,scenario_krw,fx_impact_krw
1321.T,23940000.00,22743000.00,-1197000.00

출력은 23,940,000원에서 22,743,000원으로 −1,197,000원의 추가 변화입니다. 기준 환율 8.55에서 엔화가 다시 5% 하락한 시나리오이며, 앞에서 T0의 9.0과 T1의 8.55를 비교한 −1,260,000원과는 기준이 다릅니다.

위 코드는 현재가가 아니라 buyPrice × shares를 사용한 매입원금 환산액의 환율 시나리오입니다. 현재가가 매입단가와 같고 주가·수량이 고정되어 있다고 가정할 때만 평가액 변화로 해석할 수 있으며, 일반적인 현재 평가손익 계산은 아닙니다. 실제 평가액 변화를 보려면 현재가가 필요하고, 매수 시점부터의 투자손익을 계산하려면 원본 거래내역과 당시 환율도 따로 필요합니다.

“무엇을 기준으로 환산한 수익률인지 먼저 확인하고, 가격 변화와 환율 변화를 구분해서 읽습니다.”

정리

Sangji Lee
개인투자자·개발자 · Multifolios 제작·운영
여러 증권사와 통화에 흩어진 자산을 직접 추적하다 불편해서 Multifolios를 만들었습니다. 실제로 운용하며 부딪힌 수익률 계산·환율 분리·리밸런싱 문제를 글로 정리합니다. 문의: 소개 · 연락처
이 내용을 내 포트폴리오로 직접 확인해보세요
로그인 없이 샘플 포트폴리오로 모든 기능을 바로 체험할 수 있습니다.
데모로 체험하기 →
📬 주간 시장 요약 받기
매주 일요일, 미국·한국·일본 시장 핵심을 이메일로 — 무료.