기술적 분석 4장: MACD 골든크로스는 언제 유효한가?
MACD 골든크로스는 MACD 선이 Signal 선을 아래에서 위로 통과하는 현상입니다. 상승 전환을 보여주는 것처럼 보이지만, 이동평균에서 파생된 지표이므로 신호가 발생할 때 이미 주가가 상당히 움직였을 수 있습니다.
Python으로 골든크로스 만들기
Section titled “Python으로 골든크로스 만들기”g = df.sort_values(["code", "date"]).copy()g["ema12"] = g.groupby("code")["close"].transform( lambda x: x.ewm(span=12).mean())g["ema26"] = g.groupby("code")["close"].transform( lambda x: x.ewm(span=26).mean())g["macd"] = g["ema12"] - g["ema26"]g["macd_signal"] = g.groupby("code")["macd"].transform( lambda x: x.ewm(span=9).mean())
g["macd_golden_cross"] = ( (g.groupby("code")["macd"].shift(1) <= g.groupby("code")["macd_signal"].shift(1)) & (g["macd"] > g["macd_signal"]))신호의 20일 성과
Section titled “신호의 20일 성과”검증 구간에서 MACD 골든크로스는 1,868회 발생했습니다.
| 신호 | 발생 횟수 | 20일 양수 비율 | 평균 수익률 | 중앙값 |
|---|---|---|---|---|
| MACD 골든크로스 | 1,868회 | 55.1% | +6.98% | +2.72% |
RSI 회복보다 양수 비율과 중앙값이 모두 높았습니다. 최소한 이번 표본과 기간에서는 MACD 골든크로스가 단순 과매도 회복보다 안정적인 결과를 보였습니다.
MACD 상태를 20일 동안 보유하는 추세 전략으로 바꾸면 검증 구간 누적수익률은 +58.15%, 최대낙폭은 -33.52%였습니다. 코스피의 누적수익률 +33.62%보다 높았지만, 손실 구간은 여전히 컸습니다.
MACD는 “오늘 사면 내일 오른다”는 단기 예측 도구가 아니라 방향이 바뀌었는지 확인하는 추세 신호에 가깝습니다. 따라서 다음 조건을 함께 기록해야 합니다.
- 신호 이전 20일 수익률
- 신호일의 거래량 비율
- MA20과 MA60의 방향
- 신호 후 최대 하락폭
평균 수익률이 높아도 특정 몇 개 종목의 급등 때문일 수 있습니다. 그래서 평균과 중앙값, 양수 비율을 동시에 공개했습니다.