Strasmore Research
학습 Matt Connor작성자 Matt Connor · 업데이트됨 2026-10-03

월간 주가 수익률 계산 방법과 기준

월간 주가 수익률은 두 시점의 가격 설정과 배당 포함 여부 및 주식 분할 조정 방식에 따라 달라집니다. 실제 시장 데이터를 활용하여 종가 기준을 포함한 다양한 측정 관례가 수익률 수치에 미치는 영향을 상세히 분석합니다.

215.73
6월의 주가 수익률을 확인하면 출처마다 서로 다른 수치가 제시되지만, 이들 모두는 각자의 기준에서 정확한 값입니다. 월간 주가 수익률은 일반 투자자가 쉽게 접하기 어려운 몇 가지 선택 기준에 따라 결정됩니다. 즉, 월의 시작과 끝을 결정하는 두 시점의 가격, 배당 포함 여부, 그리고 주식 분할에 따른 가격 조정 여부가 기준이 됩니다. 본 페이지는 실제 시장 데이터를 바탕으로 이러한 상충하는 관례들을 나란히 비교하여, 수치 차이에 대한 의문을 해소하고자 합니다.

종가 기준(Close-to-close): 표준 관례

지수 산출 기관, 펀드 운용보고서, 그리고 대부분의 시세 페이지에서 사용하는 관례는 다음과 같습니다. 월간 수익률은 전월 마지막 정규장 종가부터 당월 마지막 종가까지를 기준으로 합니다. 5월의 마지막 종가가 6월의 시작점이 됩니다. 산술 방식은 간단합니다. (종료 가격 - 시작 가격)을 시작 가격으로 나눕니다. 예시를 들어보겠습니다. 5월 말 50.00달러로 마감한 주식이 6월 말 53.50달러로 마감했다면, 해당 월 수익률은 (53.50 - 50.00) ÷ 50.00 = 0.07, 즉 7%입니다. 이 페이지에 소개된 모든 관례는 동일한 공식에 서로 다른 입력값을 대입합니다. 실제 2026년 6월의 데이터를 통해 주요 대안과 함께 살펴보겠습니다.

조회2026년 6월 수익률 산출 방식 비교: 종가 대비 종가(close-to-close) vs 시가 대비 종가(open-to-close), NVDA 및 SPY
ticker5월 최종 종가6월 첫 시가6월 최종 종가종가 대비 종가 변동률(%)시가 대비 종가 변동률(%)컨벤션 갭 포인트
NVDA211.15215.73199.76-5.39-7.42.01
SPY756.4755.36746.32-1.33-1.20.14
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT ticker,
       round(argMaxIf(cl, day, day <= '2026-05-31'), 2) AS may_final_close,
       round(argMinIf(op, day, day >= '2026-06-01'), 2) AS june_first_open,
       round(argMaxIf(cl, day, day <= '2026-06-30'), 2) AS june_final_close,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
             / argMaxIf(cl, day, day <= '2026-05-31'), 2) AS close_to_close_pct,
       round(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
             / argMinIf(op, day, day >= '2026-06-01'), 2) AS open_to_close_pct,
       round(abs(100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMinIf(op, day, day >= '2026-06-01'))
                 / argMinIf(op, day, day >= '2026-06-01')
             - 100 * (argMaxIf(cl, day, day <= '2026-06-30') - argMaxIf(cl, day, day <= '2026-05-31'))
                 / argMaxIf(cl, day, day <= '2026-05-31')), 2) AS convention_gap_points
FROM (
    SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
)
GROUP BY ticker
ORDER BY ticker
직접 실행해 보기

NVDA의 6월 수익률은 종가 기준(close-to-close)으로 -5.39%였으나, 6월 첫 정규장 시가부터 마지막 종가까지 측정했을 때는 -7.4%이었습니다. 같은 주식, 같은 달임에도 두 정직한 답변 사이에는 2.01 퍼센트포인트의 차이가 발생합니다. 이 차이의 전부는 하룻밤 및 주말 사이의 변동분에서 기인합니다. NVDA는 5월을 $211.15에 마감하고 6월을 $215.73에 시작했는데, 이 가격 차이는 시가 대비 종가(open-to-close) 관례에서는 '6월'의 성과로 포함되지만, 종가 기준 관례에서는 경계선 밖의 영역으로 간주됩니다. SPY는 이와 같은 구조를 더 완만하게 보여줍니다. 종가 기준으로는 -1.33%인 반면, 시가 대비 종가 기준으로는 -1.2%입니다.

어느 쪽 수치도 틀린 것은 아닙니다. 종가 기준 수익률은 "월 경계선을 넘어서까지 보유한 투자자가 경험한 성과는 무엇인가?"라는 질문에 답합니다. 반면 시가 대비 종가 수익률은 "6월 시가에 매수한 투자자에게 해당 월의 거래가 어떤 결과를 가져다주었는가?"라는 질문에 답합니다. 시장이 경계선에서 갭(gap)을 보일 때마다 두 수치는 달라지며, 오버나이트 갭은 드문 현상이 아니라 일상적인 일입니다.

배당: 가격 수익률(price return) 대 총수익률(total return)

두 번째 선택지는 해당 월에 주식이 지급한 현금을 포함할 것인가의 문제입니다. 가격 수익률은 이를 무시하지만, 총수익률은 이를 합산합니다. 대부분의 단일 월에는 그 차이가 작습니다. 분기 배당주는 분기별로 배당 수익률의 약 4분의 1을 분배하기 때문입니다. 그러나 수년이 지나면 이 차이는 거대한 격차로 복리화됩니다. 2026년 6월은 SPY의 배당 지급 월이었습니다.

조회SPY 2026년 6월: 가격 수익률 vs 총 수익률(6월 배당락 포함)
5월 최종 종가6월 최종 종가6월 주당 배당금가격 수익률(%)배당 기여율(%)총 수익률(%)
756.4746.321.9035-1.330.25-1.08
모든 수치 뒤에 숨겨진 정확한 SQL
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2026-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS jun_close
    FROM (
        SELECT ticker,
               toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMinIf(toFloat64(open), window_start, rth) AS op,
               argMaxIf(toFloat64(close), window_start, rth) AS cl
        FROM (
            SELECT ticker, window_start, open, close,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York') AS rth
            FROM global_markets.delayed_stocks_minute_aggs
            WHERE ticker IN ('NVDA', 'SPY')
              AND window_start >= '2026-05-28 04:00:00'
              AND window_start < '2026-07-01 08:00:00'
        )
        GROUP BY ticker, day
    )
    WHERE ticker = 'SPY'
),
dv AS (
    SELECT sum(cash_amount) AS div_per_share
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2026-06-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(may_close, 2) AS may_final_close,
       round(jun_close, 2) AS june_final_close,
       round(div_per_share, 4) AS june_dividend_per_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS price_return_pct,
       round(100 * div_per_share / may_close, 2) AS dividend_contribution_pct,
       round(100 * ((jun_close + div_per_share) - may_close) / may_close, 2) AS total_return_pct
FROM px CROSS JOIN dv
직접 실행해 보기

SPY의 6월 가격 수익률은 -1.33%였습니다. 해당 월에 배당락일(ex-dividend date)이 도래한 주당 1.9035의 분배금을 더하면 총수익률은 -1.08%로 개선되며, 현금 기여도는 0.25%입니다. 지수 산출 기관들은 두 가지 방식을 모두 발표하며(통상 인용되는 "S&P 500"은 가격 지수입니다), 펀드 성과 페이지는 총수익률을 표시하도록 의무화되어 있습니다. 반면 종목 검색기(screener)들은 두 방식을 혼용합니다. 배당주 수익률에 대해 두 출처의 수치가 소수점 단위로 다를 경우, 가장 먼저 배당금을 의심해야 합니다. 배당락일이 해당 배당금이 어느 달에 귀속되는지를 결정하기 때문입니다.

단일 6월의 차이는 1퍼센트의 10분의 몇 수준입니다. 두 관습을 구분 짓는 것은 기간이며, 다음은 동일한 산술을 5년에 걸쳐 적용한 결과입니다.

조회SPY 5개년 수익률(2021년 6월~2026년 6월): 가격 수익률 vs 배당 포함 수익률
2021년 6월 종가2026년 6월 종가주당 지급 배당금배당 지급액5년 가격 수익률(%)5년 배당 포함 수익률(%)추가 배당 포인트
428.07746.3234.072074.3582.37.96
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND ((window_start >= '2021-06-28 04:00:00' AND window_start < '2021-07-01 08:00:00')
        OR (window_start >= '2026-06-26 04:00:00' AND window_start < '2026-07-01 08:00:00'))
    GROUP BY day
),
px AS (
    SELECT argMaxIf(cl, day, day <= '2021-06-30') AS start_close,
           argMaxIf(cl, day, day <= '2026-06-30') AS end_close
    FROM daily
),
dv AS (
    SELECT round(sum(cash_amount), 2) AS divs_per_share,
           count() AS payments
    FROM global_markets.stocks_dividends
    WHERE ticker = 'SPY'
      AND ex_dividend_date >= '2021-07-01'
      AND ex_dividend_date <= '2026-06-30'
)
SELECT round(start_close, 2) AS june_2021_close,
       round(end_close, 2) AS june_2026_close,
       divs_per_share AS dividends_paid_per_share,
       payments AS dividend_payments,
       round(100 * (end_close - start_close) / start_close, 2) AS five_year_price_return_pct,
       round(100 * ((end_close + divs_per_share) - start_close) / start_close, 2) AS five_year_return_with_divs_pct,
       round(100 * divs_per_share / start_close, 2) AS dividend_points_added
FROM px CROSS JOIN dv
직접 실행해 보기

2021년 6월 종가 428.07에서 2026년 6월 종가 746.32까지, SPY의 5년 가격 수익률은 74.35%로 측정됩니다. 같은 기간 동안 SPY는 20회에 걸쳐 주당 총 34.07의 분배금을 지급했습니다. 해당 현금을 합산하면 수치는 82.3%로 상승하며, 배당금을 재투자하기 전에도 7.96포인트의 격차가 발생합니다. 진정한 의미의 총수익률 지수는 각 배당금을 배당락일에 재투자하며, 재투자된 주식은 격차를 더욱 벌립니다. 성숙한 배당주에 있어 "큰 격차"는 비유가 아닙니다. 이는 수년간의 분기별 현금 지급이 만들어내는 당연한 결과입니다.

수정 종가와 실제 종가: 주식 분할의 함정

대부분의 차트 도구, Yahoo Finance, Google Finance 및 다수의 증권사 앱은 수정 종가(adjusted close)를 제공합니다. 이는 과거의 실제 체결가(print)를 주식 분할(및 일부 플랫폼의 경우 배당)에 맞춰 나눗셈하여 시계열상에서 가격을 비교할 수 있도록 조정한 수치입니다. 당사의 데이터 웨어하우스는 실제 체결된 가격 그대로를 저장합니다. 일반적인 달에는 두 수치가 일치하지만, 주식 분할이 포함된 달에는 완전히 다른 결과를 나타냅니다. 2024년 6월 10일에 실행된 NVDA의 10 대 1 분할 사례를 살펴보겠습니다.

조회NVDA 2024년 6월: 단순 종가 대비 종가 수익률 vs 액면분할 조정 수익률
5월 최종 종가(원본)6월 최종 종가(원본)액면분할 후 주식 수원본 가격 변동률(%)5월 종가(분할 조정)조정 수익률(%)
1097.46123.4110-88.75109.7512.45
모든 수치 뒤에 숨겨진 정확한 SQL
WITH px AS (
    SELECT argMaxIf(cl, day, day <= '2024-05-31') AS may_close,
           argMaxIf(cl, day, day <= '2024-06-30') AS jun_close
    FROM (
        SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
               argMaxIf(toFloat64(close), window_start,
                   toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
                   AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
        FROM global_markets.delayed_stocks_minute_aggs
        WHERE ticker = 'NVDA'
          AND window_start >= '2024-05-29 04:00:00'
          AND window_start < '2024-07-01 08:00:00'
        GROUP BY day
    )
),
sp AS (
    SELECT split_to / split_from AS ratio
    FROM global_markets.stocks_splits
    WHERE ticker = 'NVDA'
      AND execution_date >= '2024-06-01'
      AND execution_date <= '2024-06-30'
)
SELECT round(may_close, 2) AS may_final_close_raw,
       round(jun_close, 2) AS june_final_close_raw,
       toInt32(ratio) AS shares_after_split_per_old_share,
       round(100 * (jun_close - may_close) / may_close, 2) AS raw_price_change_pct,
       round(may_close / ratio, 2) AS may_close_split_adjusted,
       round(100 * (jun_close - may_close / ratio) / (may_close / ratio), 2) AS adjusted_return_pct
FROM px CROSS JOIN sp
직접 실행해 보기

실제 종가(raw close) 기준으로 보면, NVDA는 해당 6월에 $1097.46에서 $123.41로 하락하여 -88.75%의 폭락을 기록한 것으로 보입니다. 그러나 실제로는 그런 일이 발생하지 않았습니다. 실행일에 기존 주식 한 주는 10주의 새로운 주식으로 분할되었고, 가격도 그에 맞춰 조정되었기 때문에 모든 보유자의 자산 가치는 그대로 유지되었습니다. 5월 종가를 동일한 비율로 나누어 수정 종가 기준으로 $109.75로 계산하면, 2024년 6월은 12.45% 상승한 달이 됩니다. 수정 데이터를 제공하는 모든 소스는 두 번째 수치와 유사한 값을 보고하지만, 실제 체결가를 단순 계산하면 첫 번째 수치가 나옵니다. 수정 종가는 두 소스 간의 과거 월간 수익률이 크게 차이 나는 가장 흔한 원인입니다. 특정 수치가 양방향으로 비정상적으로 크게 보인다면, 다른 무엇보다 먼저 분할 일정(split calendar)을 확인하십시오.

어떤 '종가'가 진짜 종가인가?

관례 속에는 또 하나의 경계가 숨어 있습니다. 바로 종가 그 자체입니다. 모든 팩트시트가 사용하는 수치는 오후 4시(미 동부시간 기준) 종가 경매(closing auction)를 통해 결정된 단일 가격인 공식 종가입니다. 그러나 정규장 종료 후에도 거래는 계속되며, 연장 거래 세션의 마지막 체결가는 공식 종가와 차이가 발생할 수 있습니다.

조회SPY 2026년 6월 30일: 공식 종가 vs 최종 시간외 거래가
정규장 종가최종 시간외 거래가시간외 변동률(%)
746.32746.3-0.003
모든 수치 뒤에 숨겨진 정확한 SQL
SELECT round(argMaxIf(toFloat64(close), window_start, rth), 2) AS regular_session_close,
       round(argMax(toFloat64(close), window_start), 2) AS last_extended_print,
       round(100 * (argMax(toFloat64(close), window_start) - argMaxIf(toFloat64(close), window_start, rth))
             / argMaxIf(toFloat64(close), window_start, rth), 3) AS after_hours_drift_pct
FROM (
    SELECT window_start, close,
           toTimeZone(window_start, 'America/New_York') >= toDateTime('2026-06-30 09:30:00', 'America/New_York')
           AND toTimeZone(window_start, 'America/New_York') < toDateTime('2026-06-30 16:00:00', 'America/New_York') AS rth
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2026-06-30 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
)
직접 실행해 보기

6월 30일 당시 두 가격의 차이는 -0.003%로 그날 저녁에는 미미했으나, 개별 종목의 실적 발표가 있는 밤에는 연장 세션에서 퍼센트 단위의 변동이 나타날 수 있으며, 이는 공식 월간 수익률 산정 시 다음 달의 실적으로 반영됩니다. 시간외 및 프리마켓 거래(After-hours and premarket trading)에서 해당 경계에 대해 자세히 다룹니다. 한 가지 관련 예외 사례로, 월말 경계가 휴일로 단축된 세션과 겹치는 경우가 있습니다. 이 경우 정규장은 오후 1시(미 동부시간 기준)에 종료되며 공식 종가는 조기 종가 경매에서 결정되는데, 시장 휴장 일정(market holiday schedule)에 해당 내용이 명시되어 있습니다.

12개월 복리 계산

연간 수익률은 12개월 수익률의 합이 아니라 곱입니다. 연결 공식은 다음과 같습니다. 각 월별 수익률을 성장 계수(1 + 수익률)로 변환한 뒤 12개의 계수를 모두 곱하고 1을 뺍니다. -5%인 달 다음에 +5%인 달이 오면 합계는 0이 되지만, 복리 계산 시에는 0.95 × 1.05 - 1 = -0.25%가 됩니다. 다음은 2026년 6월로 끝나는 12개월 동안 SPY의 실제 월별 경로입니다.

조회SPY 월간 종가 대비 종가 수익률: 2026년 6월까지 12개월간 단순 및 로그(log) 수익률
월월말 종가단순 수익률(%)로그 수익률(%)
2025-07631.972.282.25
2025-08645.042.072.05
2025-09666.113.273.21
2025-10681.992.382.36
2025-11683.390.210.21
2025-12681.84-0.23-0.23
2026-01691.851.471.46
2026-02686.23-0.81-0.82
2026-03650.24-5.25-5.39
2026-04718.4310.499.97
2026-05756.45.295.15
2026-06746.32-1.33-1.34
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           formatDateTime(month_start, '%Y-%m') AS month,
           round(month_close, 2) AS month_final_close,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
)
SELECT month,
       month_final_close,
       round(r, 2) AS simple_return_pct,
       round(100 * log(1 + r / 100), 2) AS log_return_pct
FROM rets
WHERE isFinite(r)
ORDER BY month_start
직접 실행해 보기

2.28%부터 2025-07까지, 그리고 -1.33%부터 2026-06까지 이어지는 12개월간의 종가 기준 수익률입니다. 마지막 행은 첫 번째 패널에서 측정한 2026년 6월 SPY 수치와 동일합니다. 12개월 수익률을 올바르게 연결하여 단순히 백분율을 더하는 방식과 비교해 보십시오.

조회합계 vs 복리: SPY 12개월 월간 수익률의 3가지 연산 방식 비교
연결 월수단순 합계(%)기하 평균 수익률(%)12개월 직접 수익률(%)복리 차이(pt)월간 로그 수익률 합계(%)12개월 로그 수익률(%)
1219.8320.7920.790.9618.8918.89
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
    SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS day,
           argMaxIf(toFloat64(close), window_start,
               toTimeZone(window_start, 'America/New_York') >= toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 09:30:00'), 'America/New_York')
               AND toTimeZone(window_start, 'America/New_York') < toDateTime(concat(toString(toDate(toTimeZone(window_start, 'America/New_York'))), ' 16:00:00'), 'America/New_York')) AS cl
    FROM global_markets.delayed_stocks_minute_aggs
    WHERE ticker = 'SPY'
      AND window_start >= '2025-06-24 04:00:00'
      AND window_start < '2026-07-01 08:00:00'
    GROUP BY day
),
monthly AS (
    SELECT toStartOfMonth(day) AS month_start,
           argMax(cl, day) AS month_close
    FROM daily
    GROUP BY month_start
),
rets AS (
    SELECT month_start,
           100 * (month_close / lagInFrame(month_close) OVER (ORDER BY month_start) - 1) AS r
    FROM monthly
),
ends AS (
    SELECT argMin(month_close, month_start) AS base_close,
           argMax(month_close, month_start) AS final_close
    FROM monthly
)
SELECT count() AS months_linked,
       round(sum(r), 2) AS simple_sum_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1), 2) AS geometric_compound_pct,
       round(100 * (any(final_close) / any(base_close) - 1), 2) AS direct_twelve_month_pct,
       round(100 * (exp(sum(log(1 + r / 100))) - 1) - sum(r), 2) AS compounding_gap_points,
       round(sum(100 * log(1 + r / 100)), 2) AS sum_of_monthly_log_returns_pct,
       round(100 * log(any(final_close) / any(base_close)), 2) AS twelve_month_log_return_pct
FROM rets CROSS JOIN ends
WHERE isFinite(r)
직접 실행해 보기

12개월 수익률의 합은 19.83%이지만 복리 수익률은 20.79%입니다. 2025년 6월 종가에서 2026년 6월 종가로 직접 계산하면 20.79%가 나오며, 이는 합계가 아닌 복리 계산 수치와 일치합니다. 비교적 안정적인 한 해 동안의 차이는 0.96 포인트이며, 변동성이 커지고 기간이 길어질수록 이 격차는 벌어집니다. 월별 백분율을 단순히 더하는 것은 스프레드시트에서 흔히 하는 습관이지만, 이는 명백히 잘못된 방식입니다.

마지막 두 열은 합산이 가능하도록 고안된 관습인 로그 수익률(log return), 즉 성장 계수의 자연로그인 ln(1 + 수익률)을 보여줍니다. 월별 로그 수익률의 합은 18.89%으로, 12개월 로그 수익률인 18.89%와 동일합니다. 이것이 바로 분석가와 리스크 모델이 로그 수익률을 사용하는 이유입니다. 수익률이 작은 달에는 두 방식의 차이가 거의 없지만(2025-11: 단순 수익률 0.21%, 로그 수익률 0.21%), 월별 수익률이 커질수록 격차는 벌어집니다(2026-04: 단순 수익률 10.49%, 로그 수익률 9.97%). 펀드 운용보고서는 단순 수익률을 기재하며, 로그 수익률은 연구 논문과 변동성 계산에 사용됩니다.

두 소스를 조정하기 위한 체크리스트

두 월간 수익률 수치가 일치하지 않을 때, 그 차이는 거의 항상 다음 네 가지 설정 중 하나에서 발생합니다.

  1. 종가 기준(Endpoints): 종가 대 종가(표준) 방식인지, 시가 대 종가(해당 월의 실제 거래) 방식인지에 따라 다릅니다. 월말 경계에서 갭(gap)이 발생할 때마다 차이가 나타납니다.
  2. 배당(Dividends): 가격 수익률(price return)인지 총수익률(total return)인지에 따라 다릅니다. 배당락일(ex-dividend date)이 포함된 모든 달에서 차이가 발생합니다.
  3. 조정(Adjustment): 원본 거래 데이터(raw prints)인지 수정 종가(adjusted-close) 시리즈인지에 따라 다릅니다. 주식 분할이 포함된 달에는 수치가 크게 달라집니다.
  4. 종가 자체(The close itself): 공식 장 마감가(표준)인지, 시간 외 거래를 포함할 수 있는 마지막 체결가인지에 따라 다릅니다.

두 소스에 동일한 설정을 적용하면 불일치는 사라집니다. 펀드와 지수를 비교할 때는 두 수치가 모두 동일한 네 가지 설정에 기반할 때만 유효합니다. 하나라도 설정이 어긋나면 비교 결과는 성과가 아닌 설정의 차이를 측정하게 됩니다. 바로 이러한 이유로 당사의 2026년 6월 요약은 그 관례를 사전에 명시하고 있으며, 해당 자료의 모든 월간 수치는 종가 대 종가, 공식 체결가, 가격 수익률을 기준으로 합니다.

월간 수익률 FAQ

종가 대 종가(close-to-close) 수익률이란 무엇입니까?

이전 기간의 정규장 최종 종가에서 당기 최종 종가까지의 변동률을 의미합니다. 이는 팩트시트와 지수 보고서에서 일간, 월간, 연간 주식 수익률을 산출할 때 사용하는 표준 관례입니다.

왜 두 웹사이트에서 동일한 주식의 같은 달 수익률이 다르게 나타납니까?

거의 항상 다음 네 가지 관례 중 하나 때문입니다. 측정 시점의 차이(종가 대 종가 vs 시가 대 종가), 배당 포함 여부, 수정 전 가격(raw price)과 수정 주가(split-adjusted price)의 차이, 또는 종가 데이터 출처의 차이입니다. NVDA의 2026년 6월 수익률은 첫 번째 기준만으로도 -5.39% 또는 -7.4%로 나타날 수 있습니다.

주식 분할이 월간 수익률 계산에 영향을 줍니까?

영향을 주어서는 안 됩니다. 주식 분할은 주식 수와 가격을 동시에 조정하여 포지션 가치를 동일하게 유지하기 때문입니다. 하지만 수정되지 않은 원본 가격으로 계산할 경우 수치가 왜곡됩니다. NVDA의 2024년 6월 수익률은 수정 전 종가 기준으로는 -88.75%처럼 보이지만, 10대 1 주식 분할을 반영하면 12.45%로 측정됩니다.

월간 주식 수익률에 배당금이 포함됩니까?

총수익률(total return)에만 포함됩니다. S&P 500 지수와 같은 가격 수익률(price return)에는 배당이 포함되지 않습니다. 2026년 6월의 경우, 배당금은 SPY의 월간 수익률에 0.25%만큼 기여했으며, 이는 가격 수익률과 총수익률 사이의 차이입니다.

개인 포트폴리오의 월간 수익률도 같은 방식으로 계산됩니까?

현금 입출금이 발생하면 그렇지 않습니다. 이 페이지에 기재된 것과 같은 단일 종목 수익률은 시간 가중 수익률(time-weighted return)입니다. 입출금이 발생하는 계좌는 현금 흐름이 성과로 오인되지 않도록 금액 가중 수익률(money-weighted return, 내부수익률) 계산이 필요합니다. 대부분의 증권사는 투자자의 입금액을 성과에서 제외하기 위해 정확히 시간 가중 수익률을 보고합니다.


위의 모든 수치는 실제 시장 데이터를 기반으로 저장 및 버전 관리되는 쿼리 결과입니다. Strasmore 터미널에서 패널의 SQL을 확장하거나, 원하는 티커의 월간 수익률을 임의의 관례에 따라 측정할 수 있습니다.

#returns#conventions#dividends#splits#education