속설 검증 #17 — MACD·EMA 이중 신호 스윙 백테스트 기록

업데이트

KOSPI 최근 5년(2022-01-03~2026-10-16)에 MACD와 EMA 5-20 교차가 같은 날 겹칠 때만 매수하는 규칙(손절 −8%·익절 +18%·월간 리밸런싱)을 적용했더니 투자 수익률은 −70.14%, CAGR은 −22.33%, 최대 낙폭은 −72.11%, 승률은 32.4%(1,526회)였고 같은 기간 KODEX 코스피는 +124.74%였습니다. 한 규칙·한 기간의 과거 값입니다.

검증한 속설과 규칙

속설 검증 시리즈 17번째 기록입니다. 검증한 말은 “신호가 두 개 겹칠 때만 진입하면 가짜 신호가 걸러진다”입니다. 속설을 그대로 코드로 옮길 수는 없어서, 아래 규칙 하나를 정해 과거 데이터에 적용했습니다. 이 노트는 그 규칙이 맞는지 틀린지 판정하지 않고, 한 가지 설정에서 관측된 값을 기록합니다.

MACD가 시그널선을 넘는 날과 5일 EMA가 20일 EMA를 넘는 날이 같은 날 겹칠 때만 사는 규칙입니다. 청산은 두 지표의 데드크로스 중 먼저 오는 쪽이고, 손절 −8%·익절 +18%·월간 리밸런싱을 함께 두었습니다.

입력한 문장과 해석된 조건

널스탁에 아래 문장을 그대로 입력했습니다.

“노이즈를 줄이기 위해 두 가지 기술 신호가 함께 확인될 때만 진입하고 싶습니다. KOSPI 종목 중 MACD 골든크로스가 발생하면서 5일 EMA가 20일 EMA를 상향 돌파한 경우에만 매수해 주세요. 청산은 EMA 데드크로스 또는 MACD 데드크로스 중 먼저 도달하는 조건으로 하고, 포트폴리오는 최대 10종목, 손절은 -8%, 익절 +18%, 월간 리밸런싱으로 부탁드립니다.”

문장에 없어 버튼으로 정한 값은 세 가지입니다. 리밸런싱 방식은 “종목 교체”와 “비중 조정” 중 매도 조건을 그대로 두는 “비중 조정(균등 유지)”을 골랐고, 백테스트 기간은 최근 5년, 초기 자본은 1,000만원입니다.

  • 유니버스: KOSPI, 최대 10종목 동일 비중(종목당 10%)
  • 매수: “MACD가 시그널선을 상향 돌파” AND “EMA5-EMA20 골든크로스”
  • 매도: “MACD 하향 돌파” OR “EMA5-EMA20 데드크로스” / 손절 −8% / 익절 +18% / 월간 리밸런싱(비중 조정)

결과

2022-01-03~2026-10-16 구간에서 관측된 값입니다. 수수료 0.015%, 슬리피지 0.05%, 거래세 0.23%→0.15%(시행일 기준), 배당소득세 15.4%를 반영했고 체결은 신호 다음 거래일 시가입니다. 전략과 벤치마크는 구성과 규칙이 다르므로 표의 차이는 우열을 뜻하지 않습니다.

속설 검증 #17 — 백테스트 결과
지표값
기간2022-01-03~2026-10-16 (1,169일)
자산1,000만원 → 2,986,306원
투자 수익률−70.14%
CAGR−22.33%
물가 반영 실질 CAGR−24.79%
최대 낙폭−72.11%
샤프 / 소티노−1.12 / −1.49
거래 수1,526회
승률32.4%
손익비0.81
평균 수익 거래+10.83%
평균 손실 거래−5.93%
평균 보유7일
최대 연속 손실18회
같은 기간 벤치마크KODEX 코스피 +124.74%

KOSPI, 2022-01-03~2026-10-16, 신호 다음 거래일 시가 체결, 수수료 0.015%·슬리피지 0.05%. 널스탁 백테스트 엔진 v16.41.0으로 2026-10-19에 계산했습니다.

청산 내역

거래가 끝난 이유별로 건수와 합산 손익을 나눴습니다.

속설 검증 #17 — 청산 방식별 내역
청산 방식건수비고
익절 +18%225회221회가 수익, 합계 +24,584,895원
손절 −8%429회11회가 수익, 합계 −23,450,289원
MACD 데드크로스449회167회가 수익, 합계 −1,283,292원
MACD·EMA 데드크로스 같은 날231회9회가 수익, 합계 −5,049,429원
EMA5-EMA20 데드크로스101회4회가 수익, 합계 −2,017,555원
리밸런싱 비중 조정 매도85회77회가 수익, 합계 +148,607원
백테스트 종료6회5회가 수익, 합계 +53,357원

KOSPI, 2022-01-03~2026-10-16, 신호 다음 거래일 시가 체결, 수수료 0.015%·슬리피지 0.05%. 널스탁 백테스트 엔진 v16.41.0으로 2026-10-19에 계산했습니다.

직접 다시 계산해 대조한 것

화면의 결과를 그대로 믿지 않고, 매수·청산 기록을 가격(·재무) 데이터에서 독립적으로 다시 계산해 신호가 규칙대로 나왔는지 확인했습니다.

  • 거래 기록의 매수 1,543건을 가격 데이터의 MACD(12·26·9)와 EMA로 다시 계산했습니다. 1,436건은 체결 전날 두 교차가 모두 성립했습니다.
  • 나머지 107건 중 104건은 월 첫 거래일(리밸런싱일) 매수입니다. 이날은 빈 자리를 “두 지표가 위에 있는 상태”인 종목으로 채우는 구조라 교차가 아닌 상태 조건으로 들어옵니다. 3건은 이 설명으로 맞지 않았고, 그중 2건은 상태 조건도 제 계산과 달랐습니다.
  • 데드크로스 청산 781건 중 777건은 전날 크로스가 확인되었고 4건은 달랐습니다.

눈에 띈 거래

익절 +18%였던 거래 중 한 건은 매수 직후 이틀 연속 약 30% 상승한 구간이 있어 +101.74%에 체결되었습니다.

손실 쪽에서는 급등 다음 날 시가 부근에서 매수한 두 종목이 같은 날 손절되어 −31.31%와 −26.73%로 정리되었습니다. −8% 손절은 다음 거래일 시가 체결이라 그 사이의 하락이 그대로 반영됩니다.

읽을 때 주의할 점

이 기록은 특정 유니버스·기간·파라미터 한 가지 조합의 과거 시뮬레이션 결과입니다. 다른 기간이나 값에서는 다른 결과가 나올 수 있고, 한 규칙의 결과가 속설 전체의 성립 여부를 말해 주지도 않습니다. 미래 수익은 보장되지 않습니다.

리밸런싱 방식(종목 교체/비중 조정)은 문장에 없어 되물음에서 선택한 값입니다. 다른 방식을 고르면 결과가 달라질 수 있습니다.

자주 묻는 질문

이 결과로 “신호가 두 개 겹칠 때만 진입하면 가짜 신호가 걸러진다”가 맞다 또는 틀리다고 말할 수 있나요?
아닙니다. 속설 하나를 규칙 하나로 옮겨 한 유니버스·한 기간에서 계산한 값이며, 규칙·기간·종목 수를 바꾸면 결과가 달라질 수 있습니다. 관측된 숫자를 기록한 것일 뿐 성립 여부를 판정하지 않고, 미래 수익은 보장되지 않습니다.
표의 벤치마크와의 차이는 무엇을 뜻하나요?
같은 기간 지수 ETF의 수익률(KODEX 코스피 +124.74%)과 전략 수익률(−70.14%)을 표시값 그대로 비교하는 용도입니다. 전략은 조건에 맞는 종목만 일정 수 보유하고 ETF는 지수 전체를 보유하므로 구성과 규칙이 달라 우열을 가리는 값은 아닙니다.

떠오른 전략 아이디어를 문장으로 입력하면 과거 데이터로 백테스트해 볼 수 있습니다.

전략 백테스트하기

연구노트는 과거 데이터에서 관측된 계산 결과를 기준일과 설정값과 함께 기록한 자료입니다. 특정 종목·전략의 매수·매도를 권유하거나 우열을 판단하지 않으며, 모든 결과는 과거 데이터 기반 시뮬레이션이므로 미래 수익은 보장되지 않습니다.