기술적 분석 12장: 백테스트에서 살아남는 전략은 무엇인가?
기술적 분석의 마지막 질문은 “어떤 지표가 가장 유명한가?”가 아니라 “같은 조건에서 실제로 어떤 전략이 남는가?”입니다. 이번 장에서는 300개 종목에 같은 기간과 같은 비용 가정을 적용해 이동평균, MACD, 복합 신호를 비교합니다.
백테스트의 실행 규칙
Section titled “백테스트의 실행 규칙”state = df["close"] > df["ma20"]state &= df["ma20"] > df["ma60"]
# 당일 신호로 다음 거래일부터 보유position = state.groupby(df["code"]).shift(1).fillna(False)gross_return = position * df["return_1d"]turnover = position.groupby(df["code"]).diff().abs().fillna(position)net_return = gross_return - turnover * 0.0015실제 포트폴리오 계산에서는 해당 날짜에 보유 중인 종목의 수익률을 동일 비중으로 평균냈습니다. 거래비용은 포지션 변경 시 0.15%를 차감했습니다.
검증 구간 결과
Section titled “검증 구간 결과”검증 구간은 2026년 1월 1일부터 9월 4일까지입니다.
| 전략 | 누적수익률 | 연환산수익률 | 변동성 | 최대낙폭 | Sharpe 근사 |
|---|---|---|---|---|---|
| MA 추세 | +63.55% | +111.03% | 52.43% | -31.05% | 2.12 |
| MACD 추세 | +58.15% | +100.55% | 50.36% | -33.52% | 2.00 |
| 복합 신호 | +5.11% | +7.86% | 63.69% | -46.21% | 0.12 |
| 코스피 | +33.62% | +55.69% | 61.14% | -38.63% | 0.91 |
이번 검증 구간에서는 MA와 MACD 추세 전략이 코스피를 앞섰습니다. 반면 복합 신호 전략은 조건이 더 많았음에도 누적수익률이 +5.11%에 그쳤고 최대낙폭은 -46.21%였습니다.
시리즈 전체에서 얻은 결론
Section titled “시리즈 전체에서 얻은 결론”이번 데이터에서 확인한 핵심은 다음과 같습니다.
- 거래량 돌파와 MACD 골든크로스는 20일 선행수익률에서 상대적으로 강했습니다.
- RSI 회복과 볼린저 하단 반등은 평균보다 중앙값이 낮아 일부 급등 사례의 영향을 크게 받았습니다.
- 높은 변동성 종목은 복합 신호가 나와도 양수 비율과 중앙값이 낮았습니다.
- 같은 기술 신호라도 산업별 결과가 달랐습니다.
- 조건을 많이 결합한다고 전략 성과가 자동으로 좋아지지는 않았습니다.
- 높은 수익률에는 항상 최대낙폭과 표본 편향을 함께 표시해야 합니다.
따라서 기술적 분석은 미래를 맞히는 주문이 아니라, 가격·거래량에서 반복적으로 관찰되는 조건을 정의하고 그 조건의 성과와 실패 범위를 측정하는 방법으로 보는 편이 정확합니다.
전체 원자료는 OHLCV, 신호 결과, 전략 결과, Python 코드에서 확인할 수 있습니다. 과거 검증 결과는 미래 수익을 보장하지 않으며, 실제 투자 전에는 체결 가능성·세금·슬리피지·생존자 편향을 추가로 검토해야 합니다.