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

월간 주식 수익률 산정 방식과 기준

월간 주식 수익률은 선택하는 가격 기준과 배당금 포함 여부 및 주식 분할 조정 방식에 따라 달라집니다. 본문은 실제 시장 데이터를 바탕으로 수익률 산정의 표준 관례와 수치 차이가 발생하는 원인을 상세히 분석합니다.

주식 수익률 산정의 기준과 차이

특정 주식이 6월에 어떤 성과를 냈는지 질문하면 출처마다 서로 다른 수치를 제시할 수 있으며, 이들 모두는 각자의 기준에서 정확한 값입니다. 월간 주식 수익률은 일반 투자자가 쉽게 접하기 어려운 몇 가지 선택 사항에 의해 결정됩니다. 즉, 월의 시작과 끝을 결정하는 두 가격이 무엇인지, 배당금을 수익에 포함할지, 그리고 주식 분할에 따른 가격 조정(price series adjustment) 여부가 수익률을 결정합니다. 본 페이지는 실제 시장 데이터를 바탕으로 서로 다른 산정 관례를 나란히 비교하여, 이러한 수치 차이가 발생하는 원인을 명확히 설명합니다.

종가 기준(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 총 수익률(total return, 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"은 가격 지수입니다), 펀드 성과 페이지는 총수익률을 표시하도록 규정되어 있으며, 스크리너들은 이 두 가지를 혼용합니다. 배당주 수익률을 두고 두 출처의 수치가 소수점 단위로 차이가 날 때 가장 먼저 의심해야 할 것은 배당금이며, 배당락일이 해당 지급액이 어느 달에 귀속되는지를 결정합니다.

단일 6월의 차이는 0.1% 단위에 불과합니다. 두 관습을 구분 짓는 것은 투자 기간이며, 다음은 동일한 산술 방식을 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)를 제공합니다. 이는 과거의 거래 가격을 액면분할(일부 플랫폼에서는 배당까지 반영)에 맞춰 하향 조정하여 시계열상에서 가격을 비교할 수 있도록 만든 데이터입니다. 반면 당사의 데이터 웨어하우스는 실제 체결된 가격(raw prints)을 그대로 저장합니다. 일반적인 달에는 두 수치가 일치하지만, 액면분할이 발생한 달에는 완전히 다른 결과를 보여줍니다. 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
직접 실행해 보기

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

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

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

조회SPY 2026년 6월 30일: 공식 종가 vs 최종 시간외 거래가(extended-hours print)
정규장 종가최종 시간외 거래가시간외 변동률(%)
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%였으며, 당일 저녁에는 미미한 수준이었습니다. 하지만 특정 종목의 실적 발표가 있는 밤에는 연장 세션에서 퍼센트 단위의 변동이 나타날 수 있으며, 이는 공식 월간 수익률 산정 시 다음 달의 실적으로 반영됩니다. 시간외 및 프리마켓 거래에서 해당 경계에 대해 자세히 다룹니다. 이와 관련된 예외적인 경우로, 월말이 휴일로 인해 단축 거래되는 날과 겹치는 경우가 있습니다. 이 경우 정규장은 오후 1시(미 동부시간 기준)에 종료되며 공식 종가는 조기 종가 경매를 통해 결정됩니다. 관련 일정은 시장 휴장 일정에서 확인할 수 있습니다.

12개월 복리 계산

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

조회SPY 월간 종가 기준 수익률: 2026년 6월까지 12개월간, 단순 수익률 및 로그 수익률(log return)
월 종가단순 수익률(%)로그 수익률(%)
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개월 직접 수익률(%)복리 차이(points)월간 로그 수익률 합계(%)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 시가 대 종가), 배당 포함 여부, 원본 가격과 수정 주가(split-adjusted prices)의 차이, 또는 서로 다른 종가 데이터 소스 사용입니다. 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) 방식으로 계산됩니다. 입출금이 발생하는 계좌는 현금 흐름이 수익률로 오인되지 않도록 금액 가중(money-weighted) 방식, 즉 내부수익률(IRR) 계산이 필요합니다. 대부분의 증권사는 투자자의 입출금 영향을 배제하기 위해 시간 가중 수익률을 제공합니다.


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

#returns#conventions#dividends#splits#education