주식 시장 매수 타이밍 실수의 비용
시장 체류 기간이 타이밍보다 중요합니다. 2016년 이후 SPY(S&P 500 ETF)의 급등일을 놓치면 수익률이 급감합니다.
시장 내 최적의 매수 시점을 맞추려는 시도(market timing)의 숨겨진 비용은 가장 수익률이 높은 날들을 놓치는 것이다. 2016년 초부터 SPY(S&P 500 추종 ETF)에 전액 투자했을 경우의 수익률은 275.5%였다. 지난 10년 동안 가장 수익률이 높았던 10일을 제외하면 수익률은 97%로 떨어진다. 가장 높은 수익률을 기록하는 날들은 평온한 오후에 찾아오지 않는다. 이 날들은 시장이 가장 변동성이 크고 불안정한 구간에 집중되어 있으며, 바로 그 시점은 불안한 투자자들이 매도를 고민하게 되는 시기이다.
최적의 매수 시점을 놓치는 비용
핵심 개념은 다음과 같다. 2016년 초부터 모든 거래일을 일일 수익률 기준으로 나열한 뒤, SPY의 단순 매수 후 보유(buy-and-hold) 전략에서 가장 수익률이 높은 날들을 제외하는 것이다. 나머지 날들은 그대로 유지한다. 아래 차트는 상위 몇 개의 날을 제외했을 때 10년간의 복리 수익률이 어떻게 변하는지 보여준다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
rets AS (
SELECT dt, c / lagInFrame(c) OVER (ORDER BY dt) - 1 AS ret FROM daily
),
ranked AS (
SELECT log(1 + ret) AS lr, row_number() OVER (ORDER BY ret DESC) AS rnk
FROM rets
WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
)
SELECT k AS best_days_missed,
round((exp(sumIf(lr, rnk > k)) - 1) * 100, 1) AS total_return_pct
FROM ranked
CROSS JOIN (SELECT arrayJoin([0, 10, 20, 30, 50]) AS k) AS kvals
GROUP BY k
ORDER BY k해당 기간 동안 SPY에 전액 투자했을 때의 복리 수익률은 275.5%였다. 상위 10개의 날을 제외하면 수익의 약 3분의 2가 사라져 97%가 된다. 상위 20개를 제외하면 42.4%가 남는다. 상위 50개를 제외하면 10년 전체 수익률은 -32.5%로 마이너스로 전환된다. 2,000일이 넘는 기간 중 단 50일이 전체 결과의 대부분을 결정했다. 장기 수익률은 시간에 따라 균등하게 분포되지 않는다. 수익률은 극소수의 거대한 세션에 집중되어 있다.
최적의 매수 시점을 의도적으로 피할 수 없는 이유
현명한 투자자라면 하락장도 피할 것이라는 반론이 있을 수 있다. 하지만 실제로는 상승장과 하락장이 겹쳐서 나타난다. 가장 큰 상승일 20일과 가장 큰 하락일 20일을 연도별로 그룹화하면, 두 그룹 모두 동일한 연도들에 집중되어 있다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
rets AS (
SELECT dt, c / lagInFrame(c) OVER (ORDER BY dt) - 1 AS ret FROM daily
),
clean AS (
SELECT dt, ret FROM rets WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
),
ranked AS (
SELECT dt, ret,
row_number() OVER (ORDER BY ret DESC) AS best_rnk,
row_number() OVER (ORDER BY ret ASC) AS worst_rnk
FROM clean
)
SELECT toYear(dt) AS year,
countIf(best_rnk <= 20) AS best_20_days,
countIf(worst_rnk <= 20) AS worst_20_days
FROM ranked
GROUP BY year
ORDER BY year2020년 한 해에만 상위 20일 중 11가 포함되었고, 하위 20일 중 9가 포함되었다. 2022년 약세장(bear market)에는 각각 5씩 포함되었다. 그 사이의 평온한 연도들에는 두 경우 모두 거의 나타나지 않았다. 극단적인 상승과 극단적인 하락은 동일한 기상 현상과 같으며, 공포 장세 중에 함께 찾아온다. 폭락을 피하기 위한 규칙을 적용한다면, 그 폭락 직후에 나타나는 반등도 함께 놓치게 된다.
가장 큰 상승일이 실제로 발생한 시점
가장 수익률이 높은 날들을 확대해 보면 패턴이 더욱 명확해진다. 다음은 지난 10년 동안 SPY의 일일 수익률이 가장 높았던 10개 사례를 크기순으로 나열한 것이다.
모든 수치 뒤에 숨겨진 정확한 SQL
WITH daily AS (
SELECT toDate(toTimeZone(window_start, 'America/New_York')) AS dt,
argMax(toFloat64(close), toTimeZone(window_start, 'America/New_York')) AS c
FROM global_markets.delayed_stocks_minute_aggs
WHERE ticker = 'SPY' AND window_start >= '2016-01-01'
AND (toHour(toTimeZone(window_start, 'America/New_York')) * 60
+ toMinute(toTimeZone(window_start, 'America/New_York'))) BETWEEN 570 AND 959
GROUP BY dt
),
rets AS (
SELECT dt, c / lagInFrame(c) OVER (ORDER BY dt) - 1 AS ret FROM daily
),
clean AS (
SELECT dt, ret FROM rets WHERE ret IS NOT NULL AND ret > -0.5 AND ret < 0.5
),
ranked AS (
SELECT dt, ret, row_number() OVER (ORDER BY ret DESC) AS best_rnk FROM clean
)
SELECT formatDateTime(dt, '%b %e, %Y') AS episode,
round(ret * 100, 1) AS daily_return_pct
FROM ranked
WHERE best_rnk <= 10
ORDER BY daily_return_pct DESC지난 10년 중 단일 최대 수익일은 SPY가 9.5% 급등한 Mar 24, 2020였다. 상위 10개 상승일 중 대부분은 2020년 봄의 폭락장에서 발생했으며, 나머지는 2018년 말, 2022년 하락장, 그리고 2025년 4월 매도세 중에 발생했다. 이 10개 중 가장 작은 수익률조차 한 세션 동안 4.4%를 기록했다. 이 모든 날은 시장이 급락하는 와중에 발생했다. 공포스러운 한 주를 견디지 못하고 상황이 진정되기를 기다리며 현금을 보유한 투자자는 바로 이러한 반등 구간을 놓치게 된다.
타이밍 매매가 아닌 시장에 머무는 시간
시장의 타이밍을 맞추는 것보다 시장에 머무는 시간(time in the market)이 더 중요하다는 격언의 산술적 근거는 명확하다. 10년 동안의 수익은 수십 개의 세션에 집중되어 있으며, 이 세션들은 하락장이 끝난 후가 아니라 하락장 중간에 나타난다. 최악의 날을 피하기 위해 시장을 떠나는 것은 최적의 날을 놓칠 위험을 의미하며, 이 두 날은 종종 며칠 간격으로 붙어 있다.
이는 타인이 두려워할 때 매수하라는 교훈과 일맥상통한다. 가장 가파른 회복은 헤드라인 뉴스가 여전히 부정적일 때 시작된다. 이는 또한 포트폴리오를 장기 보유할 수 있도록 구축하는 방식과도 연결된다. 변동성을 견디기 위해서는 적절한 규모로 포지션을 설정해야 하며, 이는 집중 리스크(concentration risk)를 제한하고 폭풍 속에서도 보유하기 쉬운 저변동성 주식(lower-volatility stocks)을 활용해야 하는 이유이기도 하다. 최고의 수익률은 영리함에 대한 보상이 아니다. 그것은 시장에 계속 머물러 있는 것에 대한 보상이다.
FAQ
시장의 최적의 날들을 놓치면 어떤 비용이 발생하는가?
2016년 이후 SPY에 계속 투자했을 때의 수익률은 275.5%였다. 상위 10일만 놓쳐도 수익률은 97%로 감소하며, 상위 50일을 놓치면 10년 수익률은 -32.5%로 마이너스가 된다. 소수의 날이 장기 수익의 대부분을 차지한다.
왜 최악의 날들만 피할 수는 없는가?
최고의 날과 최악의 날은 동일한 변동성 구간에 집중되어 있으며, 종종 같은 주 안에 발생한다. 2020년에는 상위 20일 중 11와 하위 20일 중 9가 해당 연도에 발생했다. 두 시점을 미리 구분할 수 있는 신뢰할 만한 규칙은 없으며, 하락을 피하기 위해 매도하는 것은 대개 반등을 놓치는 결과로 이어진다.
가장 큰 상승일은 언제 발생했는가?
2016년 이후 SPY의 단일 최대 수익일은 9.5%의 수익을 기록한 Mar 24, 2020였다. 상위 10개 상승일 대부분은 2020년 봄 폭락장에서 발생했으며, 그 외에는 2018년 말, 2022년, 2025년 4월의 급격한 시장 하락기에 발생했다.
시장에 머무는 것이 타이밍 매매보다 유리한가?
이 기록에 따르면 그렇다. 전액 투자한 포지션은 단 몇 개의 최적의 세션을 놓친 어떤 전략보다 훨씬 높은 복리 수익을 기록했다. 최적의 날들은 수가 너무 적고 하락장 내에 너무 집중되어 있어, 이를 기준으로 매매 전략을 짜는 것은 불가능에 가깝다.
이곳의 모든 수치는 직접 열람하고 검증할 수 있는 저장된 쿼리이다. Strasmore 터미널에서 모든 지수나 주식에 대해 동일한 최적의 날 테스트를 실행해 보라.