월별 수익률에 계절성이 있을까? 5월에 팔아야 하나? 78개월을 분석했다

도입

“Sell in May and go away.” 5월에 팔고 떠나라는 격언은 미국·유럽 시장에서 유래했다. 국내에서도 이 이야기가 자주 인용되지만, 실제 국내 데이터로 직접 확인한 결과는 드물다.

“5월에 팔고, 11월에 다시 사라”

코스피(KS11)와 코스닥(KQ11) 가격지수의 약 6.5년치 데이터(2020~2026, 월당 약 6~7개 표본)로 월별 수익률을 집계하고, 무작위 시뮬레이션으로 우연 여부를 확인했다.

분석 대상:

  • 코스피(KS11), 코스닥(KQ11) 가격지수
  • 기간: 2020~2026 (월당 표본 6~7개)

확인한 것:

  1. 12개월 중 수익률이 가장 높은 달과 낮은 달의 차이
  2. 그 차이가 우연으로 설명 가능한지 (무작위 시뮬레이션)
  3. “Sell in May” — 5~10월 vs 11~4월 승패 기록
  4. 연도별 순위 안정성

시뮬레이션 결과, 코스피에서 관측된 월별 차이는 무작위로 월 라벨을 섞어도 약 88%에서 나타나는 수준이었다.

핵심 요약

  • 코스피 월별 수익률 1위 5월(약 +5.3%), 12위 3월(약 -2.8%). 차이 약 8.2%p
  • 무작위 시뮬레이션에서 이 정도 차이가 코스피 약 88%, 코스닥 약 96%에서 나타났다. 우연으로 충분히 설명 가능하다
  • Sell in May: 5~10월 2승 vs 11~4월 4승 (6쌍). 표본이 적어 판단할 수 없다
  • 2026년 한 해를 추가하자 7월의 순위가 8계단 변동했다. 월당 표본이 6~7개뿐이기 때문이다

어떻게 계산했나

월별 수익률은 각 월의 첫 거래일 종가에서 마지막 거래일 종가까지의 변화율이다. 미완결 월(데이터의 마지막 달)은 제외했다.

12개월 중 1위와 12위의 차이는, 관계가 전혀 없더라도 반드시 크게 나온다. 12개 중 하나를 골라 “이 달이 특별하다”고 발표하는 것은 사후 선택이다. 이 함정을 확인하기 위해 무작위 시뮬레이션(10,000회)을 실시했다.

시뮬레이션 방법: 각 연도 안에서 12개 월 라벨을 무작위로 섞었다. 이렇게 하면 “좋은 해/나쁜 해”라는 연도별 성격은 유지되고, “3월이라는 이름이 특별한가”만 검정된다.

이 분석은 실제 전략의 재현이 아니다. 거래비용, 세금, 재진입 시점 등이 반영되지 않았다.

분석 결과

코스피

평균 수익률표본
5월 (1위)약 +5.3%약 7개
3월 (12위)약 -2.8%약 7개
차이약 8.2%p

무작위 시뮬레이션에서 이 정도 차이가 약 88%에서 발생했다. 월 라벨을 섞어도 대부분 이 정도 차이는 우연히 나타난다.

코스닥

평균 수익률표본
11월 (1위)약 +2.8%약 6개
9월 (12위)약 -3.6%약 6개

무작위 시뮬레이션에서 약 96%에서 이 정도 차이가 발생했다. 코스닥의 월별 차이는 거의 전적으로 우연으로 설명된다.

Sell in May (5~10월 vs 11~4월)

6쌍을 비교한 결과, 5~10월 2승, 11~4월 4승이었다. 표본이 6쌍에 불과해서 이 승패로 어떤 판단도 내릴 수 없다.

반대 관점

같은 데이터로 반대 주장이 모두 가능하다.

  • “5월 수익률이 1위”를 강조하면: “오히려 5월에 사야 한다”
  • “11~4월이 4승”을 강조하면: “역시 Sell in May가 맞다”
  • 시뮬레이션 결과를 강조하면: “월별 계절성은 없다”

셋 중 어느 것을 강조하느냐에 따라 결론이 달라진다. 공통점은 모두 표본 6~7개에 기반한 사후적 관측이라는 것이다.

진짜 궁금했던 것

연도별로 월 순위가 얼마나 안정적인지 확인했다. 만약 특정 월이 매년 꾸준히 1위라면 표본이 적더라도 의미가 있을 수 있다.

결과: 순위는 해마다 크게 뒤바뀌었다. 2026년 한 해를 추가하자 7월의 순위가 8계단이나 변동했다(코스피 기준). 월당 표본이 6~7개이기 때문에, 한 해의 결과가 전체 평균을 크게 흔든다.

요일 분석(q31)과 비교하면 이 문제가 더 뚜렷하다. 요일 분석은 요일당 표본이 약 320개였지만, 월별 분석은 월당 약 6~7개에 불과하다. 비교 대상은 12개(요일은 5개)로 더 많다. 우연히 튀어나올 여지가 훨씬 크다.

이 결과를 어떻게 해석해야 할까

1. 월별 차이는 우연으로 설명 가능하다

무작위 시뮬레이션에서 코스피 약 88%, 코스닥 약 96%의 경우에 관측된 수준의 차이가 나타났다. 특정 월이 특별히 좋거나 나쁘다는 증거는 없었다.

2. 표본이 적어서 안정적인 결론을 낼 수 없다

월당 6~7개는 통계적으로 매우 적은 표본이다. 연도 하나가 추가되면 순위가 크게 흔들린다. 10년 뒤에 같은 분석을 하면 결과가 달라질 가능성이 높다.

이 분석의 한계

가격지수

배당 미반영. 12월 배당락이 12월 수익률에 하방 압력을 줄 수 있지만, 표본 6~7개로는 확인할 수 없다.

기간 의존성

2020~2026 약 6.5년. 코로나, 2026년 급락 등 특수한 기간이 포함되어 있다.

표본 수

월당 6~7개는 백분율(%)로 표기하면 실제보다 정밀해 보인다. “7번 중 4번” 수준이다.

국내 특수 요인

12월 배당락, 4월 결산, 1월 효과 등 국내 시장 고유의 요인이 있을 수 있지만, 표본 6~7개로는 검증할 수 없다.

인과관계 아님

설령 차이가 통계적으로 유의했더라도, 그 원인을 이 데이터만으로 알 수 없다.

마무리

월별 수익률에 차이가 있는 것은 사실이다. 그러나 무작위 시뮬레이션에서 대부분의 경우 같은 수준의 차이가 나타났다. 특정 월이 특별히 좋거나 나쁘다고 결론 낼 수 없고, Sell in May가 국내에서 유효하다고 말할 수도 없다.

월당 표본이 6~7개라는 점이 이 분석의 근본적 한계다. 데이터는 이랬다.

분석 정보

  • 분석 대상: 코스피(KS11), 코스닥(KQ11) 가격지수
  • 분석 기간: 2020~2026 (월당 표본 6~7개)
  • 데이터 수집일: 2026-07-27
  • 수집 도구: FinanceDataReader
  • 사용 데이터: 일별 종가
  • 표본 수: 약 78개월
  • 지수 유형: 가격지수
  • 배당 반영 여부: 미반영
  • 세금·거래비용 반영 여부: 미반영
  • 분석 도구: Python, SQLite
  • 시뮬레이션: 10,000회 (연도 내 셔플)

소스코드는 정리 후 공개할 예정이다.

※ 이 글은 공개된 과거 시장 데이터를 바탕으로 작성한 정보성 콘텐츠입니다. 특정 금융상품의 매수·매도 또는 투자전략을 권유하지 않으며, 과거의 분석 결과는 미래의 수익을 보장하지 않습니다.

댓글 남기기