백테스트 성과표에는 대개 전체 기간의 샤프 비율과 MDD가 한 번씩 적혀 있습니다. 여러 해의 결과를 빠르게 비교하기에는 편하지만 성과가 꾸준했는지, 특정 호황기에만 좋았는지는 알기 어렵습니다.
롤링 성과지표는 일정한 길이의 측정 창을 한 거래일씩 옮기며 같은 지표를 다시 계산합니다. 252거래일 창이라면 첫 252일의 샤프와 MDD를 계산하고, 다음 날에는 가장 오래된 하루를 빼고 새 하루를 넣어 다시 계산합니다.
LAB 돈치안 돌파 전략의 전체 기간 샤프 비율은 0.95였습니다. 하지만 1년 이동 샤프의 최저값은 -2.21이었고, 계산 가능한 887개 이동 창 가운데 35.3%가 음수였습니다. 전체 평균 하나가 약한 구간의 존재를 숨기고 있었습니다.
이 글의 핵심 결론
- 전체 기간 샤프는 성과의 평균적인 효율을 보여주지만 언제 좋고 나빴는지는 알려주지 않습니다.
- LAB 6개 전략은 전체 샤프가 모두 양수였지만 1년 이동 샤프의 최저값은 모두 음수였습니다.
- 돈치안 돌파는 전체 샤프 0.95였지만 1년 이동 창의 35.3%에서 샤프가 음수였습니다.
- 이동 창은 서로 겹치므로 887개 결과를 887개의 독립 실험으로 해석하면 안 됩니다.
롤링 성과지표는 무엇을 바꿀까
전체 기간 지표와 계산식은 같습니다. 달라지는 것은 계산에 포함되는 데이터의 범위입니다.
전체 샤프 비율 = 전체 수익률의 평균 ÷ 전체 수익률의 표준편차 × 연환산 계수
252일 이동 샤프 = 최근 252거래일 평균 ÷ 최근 252거래일 표준편차 × √252
MDD도 각 창 안에서 자산가치를 1로 다시 시작한 뒤 고점 대비 최대 하락률을 계산할 수 있습니다. 이 글의 이동 MDD는 창이 시작되기 전의 고점을 가져오지 않는 창 내부 MDD입니다.
| 지표 | 답하는 질문 |
|---|---|
| 전체 기간 샤프 | 전체 표본에서 변동성 1단위당 평균수익은 얼마였나 |
| 이동 샤프 | 최근 일정 기간의 위험 조정 성과가 어떻게 변했나 |
| 전체 기간 MDD | 전체 자산곡선에서 가장 깊은 낙폭은 얼마였나 |
| 창 내부 이동 MDD | 각 고정 길이 구간 안에서 경험한 최대 낙폭은 얼마였나 |
전체값과 이동값은 경쟁하는 지표가 아닙니다. 전체값으로 전략의 장기 성격을 요약하고 이동값으로 성과가 시간에 얼마나 편중됐는지 확인합니다.
3개월·6개월·1년 창을 같은 조건으로 계산했습니다
국내 주식 30종목에 적용한 LAB 6개 전략의 수정 일봉을 같은 기간·체결·비용 조건으로 맞췄습니다. 1,138개의 일간 전략 수익률에서 63·126·252거래일 이동 샤프와 이동 MDD를 계산했습니다. 무위험수익률은 0%로 두고 일간 수익률을 252로 연환산했습니다.

| 전략 | 전체 샤프 | 1년 이동 중앙값 | 1년 이동 최저 | 음의 1년 이동 창 비중 | 최악의 1년 창 MDD |
|---|---|---|---|---|---|
| EMA 20·100 | 0.97 | 1.34 | -1.72 | 22.5% | -31.5% |
| EMA 35·120 | 0.98 | 1.39 | -1.74 | 21.6% | -31.8% |
| ROC 추세 | 0.87 | 1.17 | -2.44 | 34.9% | -21.4% |
| 돈치안 돌파 | 0.95 | 0.94 | -2.21 | 35.3% | -16.6% |
| ATR 돌파 | 0.93 | 1.12 | -2.70 | 31.2% | -16.4% |
| CCI 역추세 | 0.50 | 0.80 | -2.93 | 20.3% | -6.5% |
전체 샤프만 보면 EMA 35·120이 0.98로 가장 높고 CCI 역추세가 0.50으로 가장 낮았습니다. 그러나 여섯 전략 모두 적어도 한 번은 1년 이동 샤프가 -1.7 아래로 내려갔습니다.
전체 표본의 양의 샤프는 모든 시기에 수익을 냈다는 뜻이 아닙니다. 좋은 구간의 수익이 나쁜 구간을 상쇄한 뒤 남은 전체 평균입니다.
돈치안 돌파의 전체 0.95 뒤에는 음의 구간이 있었습니다
돈치안 돌파의 1년 이동 샤프 중앙값은 0.94로 전체값 0.95와 비슷했습니다. 중앙값만 보면 전체 성과가 대표성을 가진 것처럼 보입니다.
하지만 이동 창의 범위는 달랐습니다.
- 1년 이동 샤프 최저값은 -2.21이었습니다.
- 최고값은 2.93이었습니다.
- 887개 이동 창 중 313개, 35.3%가 음수였습니다.
- 3개월 이동 창에서는 50.7%가 음수였고 중앙값도 -0.07이었습니다.
3개월 창에서는 손실 한 번과 거래 공백의 영향이 크게 나타났습니다. 1년 창에서는 여러 거래가 합쳐지며 잡음이 줄었지만 음의 구간 자체가 사라지지는 않았습니다.
이 결과는 돈치안 전략이 실패했다는 판정이 아닙니다. 장기 추세추종 전략은 짧은 횡보장에서 작은 손실을 반복하고 드문 큰 추세에서 수익을 회수할 수 있습니다. 중요한 것은 투자자가 이런 약한 구간의 길이와 크기를 버틸 수 있는지, 전략의 가정이 깨진 것과 정상적인 부진을 구분할 기준이 있는지입니다.
ATR 돌파는 더 낮은 최저 샤프를 기록했습니다
ATR 돌파의 전체 샤프는 0.93으로 돈치안 돌파와 비슷했고 전체 MDD도 -18.3%로 돈치안의 -18.8%와 가까웠습니다. 하지만 1년 이동 샤프의 최저값은 -2.70으로 더 낮았습니다.
반면 음의 1년 이동 창 비중은 ATR 31.2%, 돈치안 35.3%로 ATR이 낮았습니다. ATR은 음의 구간이 조금 덜 자주 나타났지만 가장 나쁜 1년 구간의 위험 조정 성과는 더 약했습니다.
하나의 최저값과 음수 구간 비중은 서로 다른 질문에 답합니다.
이동 최저값 : 가장 나빴던 구간은 얼마나 심했나
음의 이동 창 비중 : 약한 구간이 측정 종료 시점 전반에 얼마나 퍼져 있었나
이동 중앙값 : 보통의 창은 어느 수준이었나
최저값만 보면 한 번의 극단 구간에 과도하게 끌릴 수 있고, 음수 비중만 보면 손실의 깊이를 놓칠 수 있습니다. 중앙값·최저값·음수 비중을 함께 봐야 합니다.
측정 창이 짧을수록 값이 더 크게 흔들렸습니다
돈치안 돌파의 음의 이동 샤프 비중은 3개월 50.7%, 6개월 48.9%, 1년 35.3%였습니다. ATR 돌파도 45.7%, 45.1%, 31.2%로 창이 길어질수록 낮아졌습니다.
짧은 창은 최근 변화에 빠르게 반응하지만 거래 수가 적고 극단값 하나의 영향이 큽니다. 긴 창은 안정적이지만 전략이 최근 약해진 사실을 늦게 보여줄 수 있습니다.
| 창 길이 | 장점 | 한계 |
|---|---|---|
| 63거래일 | 최근 변화를 빠르게 확인 | 거래 수 부족과 극단값에 매우 민감 |
| 126거래일 | 반응성과 안정성의 중간 | 전략에 따라 여전히 한 국면에 치우침 |
| 252거래일 | 계절성과 여러 거래를 포함하기 쉬움 | 최근 변화가 과거 양호한 구간에 희석될 수 있음 |
모든 전략에 252일이 정답은 아닙니다. 거래 빈도가 낮은 전략이라면 1년 창에도 거래가 몇 건 없을 수 있습니다. 달력 길이뿐 아니라 각 창의 거래 수와 시장 국면을 확인해야 합니다.
이동 MDD는 현재 낙폭과 계산이 다릅니다
이 글의 252일 이동 MDD는 각 252일 창의 첫날 자산가치를 1로 놓고 창 안의 고점과 저점만 사용했습니다. 따라서 창이 시작되기 전의 전고점에서 아직 회복하지 못한 상태는 반영하지 않습니다.
예를 들어 전체 기간 돈치안 돌파의 MDD는 -18.8%였지만 가장 나쁜 252일 창 내부 MDD는 -16.6%였습니다. 전체 최대 낙폭의 고점과 저점이 252일보다 멀리 떨어졌거나 창 경계에 걸리면 이동 MDD가 더 얕게 나타날 수 있습니다.
다음 세 지표를 구분해야 합니다.
- 전체 MDD: 전체 자산곡선에서 한 번 계산합니다.
- 창 내부 이동 MDD: 각 창을 새로 시작해 창 안의 최대 낙폭을 계산합니다.
- 현재 낙폭: 전체 과거 최고점 대비 현재 자산가치의 하락률입니다.
MDD와 낙폭 기간은 손실의 깊이와 전고점 회복 시간을 구분합니다. 이동 MDD만 사용하면 창 밖의 전고점과 회복 대기 기간을 놓칠 수 있습니다.
887개 이동 창은 887개의 독립 표본이 아닙니다
252일 창을 하루씩 옮기면 앞뒤 두 창은 251일을 공유합니다. 결과가 부드러운 곡선처럼 이어지는 이유도 대부분의 데이터가 겹치기 때문입니다.
따라서 음의 창 313개를 313번의 독립 실패로 세면 안 됩니다. 같은 부진 구간이 여러 종료 시점의 창에 반복 포함됐을 수 있습니다. 롤링 지표는 독립적인 유의성 검정이 아니라 성과가 언제 약해지고 회복됐는지를 보는 진단 도구입니다.
독립성에 가까운 비교가 필요하다면 겹치지 않는 연도별 구간, 시장 국면별 구간 또는 전진분석을 함께 사용합니다. 전진분석은 과거 구간에서 선택한 규칙을 이후 표본 밖 구간에 적용한다는 점에서 단순 롤링 요약과 목적이 다릅니다.
롤링 지표를 전략 점검에 사용하는 순서
- 전체 기간 값을 먼저 확인합니다. 장기 평균과 전체 MDD를 기준점으로 둡니다.
- 거래 빈도에 맞는 창을 고릅니다. 각 창에 충분한 거래와 여러 시장 상황이 들어가는지 확인합니다.
- 중앙값·최저값·음수 비중을 함께 봅니다. 한 극단값이나 평균 하나에 의존하지 않습니다.
- 성과가 약해진 날짜를 원래 가격·거래 기록과 연결합니다. 횡보, 급락, 거래 공백 중 무엇이 원인이었는지 확인합니다.
- 창 길이를 바꿔 결론이 유지되는지 봅니다. 63·126·252일에서 모두 약한지 구분합니다.
- 겹치는 창의 의존성을 기억합니다. 이동 창 개수를 독립 실험 횟수로 사용하지 않습니다.
롤링 샤프가 음수가 됐다고 즉시 시스템을 중단하는 것도 위험합니다. 창 길이와 임계값을 과거 결과에 맞춰 고르면 중지 규칙 자체가 과최적화될 수 있습니다. 사전에 정한 경고·축소·중지·재개 조건과 연결해야 합니다.
전체 숫자 다음에 시간축을 펼쳐봅니다
전체 기간 성과표는 전략을 한 줄로 줄여줍니다. 롤링 성과지표는 그 한 줄을 다시 시간축 위에 펼칩니다.
LAB 6개 전략은 전체 샤프가 모두 양수였지만 1년 이동 최저값은 모두 음수였습니다. 돈치안 돌파의 전체 샤프 0.95도 이동 창의 35.3%가 음수였고, ATR 돌파는 최저 -2.70까지 내려갔습니다.
전체 성과가 좋다는 사실과 모든 구간에서 좋았다는 주장은 다릅니다. 전체 샤프와 MDD를 확인한 뒤 3개월·6개월·1년 이동값, 거래 수, 실패 구간과 전진분석을 차례로 봐야 전략의 성과가 어느 시기에 의존했는지 알 수 있습니다.
참고 자료
- William F. Sharpe, The Sharpe Ratio — 차등수익률의 평균과 표준편차를 사용하는 샤프 비율의 정의와 기간 비교 원칙
이 글은 공개 가격 데이터를 이용한 과거 검증 예시입니다. 특정 종목의 매수·매도 추천이나 미래 수익을 의미하지 않으며, 실제 투자 판단과 책임은 투자자 본인에게 있습니다.