디플레이티드 샤프 비율 — 백테스트 여러 개 중 1등의 샤프를 깎아서 보는 법
파라미터를 바꿔 가며 백테스트를 100번 돌리고 샤프 비율이 가장 높은 하나를 고르면, 그 숫자는 실력과 운이 섞인 값입니다. 전략이 전부 쓸모없어도 100개 중 1등은 꽤 그럴듯한 샤프를 냅니다. 디플레이티드 샤프 비율(Deflated Sharpe Ratio, DSR)은 시도 횟수만큼 기준선을 올려서, 그 1등이 운의 범위를 넘었는지를 확률로 답합니다.
왜 샤프 비율을 깎아야 하나
샤프 비율은 변동성 대비 수익을 하나의 숫자로 보여 줍니다. 문제는 이 숫자가 추정치라는 점입니다. 같은 전략이라도 어떤 1년을 잘라 보느냐에 따라 샤프는 위아래로 흔들립니다. 하나의 전략만 검증했다면 그 흔들림만 감안하면 됩니다.
그런데 실제 개발 과정은 대부분 이렇지 않습니다. 이동평균 기간을 10, 20, 50으로 바꾸고, 손절폭을 1%, 2%, 3%로 바꾸고, 코인을 바꿔 가며 수십~수백 번을 돌립니다. 그리고 결과가 가장 좋은 것을 남깁니다. 이렇게 고른 1등의 샤프는 체계적으로 위로 치우칩니다. 이 현상은 다중검정의 함정과 같은 뿌리이고, 결과적으로 과최적화된 전략이 실전에서 무너지는 대표적인 경로입니다.
DSR은 이 치우침을 두 단계로 보정합니다. 첫째, 샤프 추정치 자체의 불확실성을 반영한 확률적 샤프 비율(PSR)을 계산합니다. 둘째, 그 PSR의 기준선을 0이 아니라 "시도 횟수만큼 돌렸을 때 운만으로 나올 최고 샤프"로 올립니다.
1단계 — 확률적 샤프 비율(PSR)
PSR은 "관측한 샤프가 기준 샤프 SR*보다 진짜로 높을 확률"입니다. 식은 다음과 같습니다.
PSR = Φ( (SR − SR*) × √(T − 1) ÷ √(1 − γ₃·SR + (γ₄ − 1)/4 · SR²) )
SR = 관측한 샤프 (기간 단위, 예: 일간)
SR* = 비교할 기준 샤프
T = 관측 개수 (예: 일수)
γ₃ = 수익률 왜도, γ₄ = 수익률 첨도 (정규분포는 0, 3)
Φ = 표준정규 누적분포
주의할 점은 SR과 T의 단위를 맞추는 것입니다. 일간 수익률로 계산한 일간 샤프와 일수를 넣어야 합니다. 연환산 샤프를 그대로 넣으면 결과가 크게 틀립니다.
일간 샤프 SR = 0.10 (코인 365일 기준 연환산 약 1.91)
관측 기간 T = 365일
기준 SR* = 0, 수익률은 정규분포로 가정 (γ₃ = 0, γ₄ = 3)
분자 = 0.10 × √364 = 0.10 × 19.079 = 1.908
분모 = √(1 + 2/4 × 0.01) = √1.005 = 1.0025
z = 1.908 ÷ 1.0025 = 1.903
PSR = Φ(1.903) = 97.1%
─────────────
전략이 이것 하나뿐이었다면 "샤프가 0보다 크다"는 데 꽤 확신할 수 있다
2단계 — 운만으로 기대되는 최고 샤프
이제 같은 결과를 "100개를 돌려서 1등을 고른 것"이라고 가정해 봅니다. 진짜 샤프가 전부 0인 전략 100개를 1년씩 백테스트하면, 각 결과의 샤프는 0 근처에서 흩어집니다. 일간 샤프 추정치의 표준편차는 대략 1/√T = 1/√365 = 0.0523입니다. 100개 중 최댓값은 0보다 한참 위에 있습니다.
그 기대값의 근사식은 다음과 같습니다. γ는 오일러-마스케로니 상수(약 0.5772)입니다.
E[max SR] ≈ √V × ( (1 − γ)·Φ⁻¹(1 − 1/N) + γ·Φ⁻¹(1 − 1/(N·e)) )
V = 시도한 전략들의 샤프 추정치 분산
N = 100, √V = 0.0523 일 때
Φ⁻¹(0.99) = 2.326, Φ⁻¹(0.99632) = 2.680
0.4228 × 2.326 + 0.5772 × 2.680 = 0.984 + 1.547 = 2.531
E[max SR] = 0.0523 × 2.531 = 0.1325 (연환산 약 2.53)
─────────────
쓸모없는 전략 100개 중 1등이 연 샤프 2.5를 낸다
관측한 일간 샤프 0.10은 운만으로 기대되는 0.1325보다 낮습니다. 다시 말해 100번을 시도했다면, 연 샤프 1.91은 전혀 특별한 숫자가 아닙니다.
DSR = 기준선을 올린 PSR
DSR은 PSR 공식에서 SR*를 0 대신 E[max SR]로 바꾼 값입니다. 같은 결과를 시도 횟수별로 계산하면 다음과 같습니다.
시도 1회 기준 0 → PSR 97.1%
시도 10회 기준 0.0824 (연 1.58) → DSR 63.1%
시도 50회 기준 0.1192 (연 2.28) → DSR 35.8%
시도 100회 기준 0.1325 (연 2.53) → DSR 26.8%
시도 1000회 기준 0.1704 (연 3.26) → DSR 9.0%
시도 100회 계산
z = (0.10 − 0.1325) × 19.079 ÷ 1.0025 = −0.618
Φ(−0.618) = 26.8%
─────────────
숫자는 같고, 몇 번 시도했는지만 다르다
일반적으로 DSR 95% 이상을 통과 기준으로 씁니다. 위 예시는 시도 10회만 돼도 기준에 못 미칩니다. 연 샤프 1.91이 나쁜 숫자여서가 아니라, 1년이라는 짧은 기간과 여러 번의 시도가 겹치면 그 정도 숫자는 운으로 충분히 설명되기 때문입니다.
두꺼운 꼬리는 기준을 더 높인다
코인 수익률은 정규분포가 아닙니다. 급락이 정규분포 가정보다 훨씬 자주 나오는 두꺼운 꼬리를 가집니다. PSR 분모의 왜도·첨도 항이 이 점을 반영합니다. 왜도가 음수이고 첨도가 클수록 분모가 커져서 확률이 내려갑니다.
분모 = √(1 − (−1)×0.10 + (6−1)/4 × 0.01)
= √(1 + 0.10 + 0.0125) = √1.1125 = 1.0548
정규 가정 분모 1.0025 → 두꺼운 꼬리 1.0548
PSR (기준 0) 97.1% → 96.5%
DSR (시도 10회) 63.1% → 62.5%
이 예시에서는 차이가 작습니다. 샤프가 작을수록 왜도·첨도 항의 영향이 작기 때문입니다. 다만 손절 없이 작은 이익을 자주 내다가 가끔 크게 잃는 전략은 왜도가 −1보다 훨씬 나쁜 경우가 많고, 그럴 때는 보정 폭이 커집니다. 샤프만 보고 이런 전략을 고르면 꼬리 위험을 통째로 놓칩니다.
최소 검증 기간 — 얼마나 오래 봐야 하나
같은 식을 거꾸로 풀면 "이 샤프를 믿으려면 최소 며칠의 기록이 필요한가"가 나옵니다. 최소 검증 기간(Minimum Track Record Length)입니다.
MinTRL = 1 + (1 − γ₃·SR + (γ₄−1)/4·SR²) × (Φ⁻¹(0.95) ÷ (SR − SR*))²
일간 샤프 0.10, 정규분포
1 + 1.005 × (1.645 ÷ 0.10)² = 약 273일
일간 샤프 0.10, 왜도 −1 · 첨도 6
1 + 1.1125 × (1.645 ÷ 0.10)² = 약 302일
─────────────
시도 1회 · 기준 0 이라는 가장 너그러운 조건에서도 9~10개월
여러 번 시도했다면 SR* 자리에 E[max SR]이 들어가고, SR − SR*가 작아지거나 음수가 되면서 필요한 기간이 급격히 늘어납니다. 위 예시처럼 관측 샤프가 기대 최고 샤프보다 낮다면, 기간을 아무리 늘려도 그 결과만으로는 통과할 수 없습니다.
실무에서 쓰는 순서
- 시도 횟수를 전부 기록한다. 결과가 나빠서 버린 파라미터 조합도 셉니다. 버린 시도를 빼면 N이 작아져 DSR이 부풀려집니다. 기록이 없으면 DSR은 계산할 수 없습니다.
- 상관된 시도는 묶어서 센다. 이동평균 20일과 21일은 사실상 같은 전략입니다. 서로 비슷한 시도를 각각 세면 N이 과대평가되고, 반대로 전부 하나로 치면 과소평가됩니다. 결과 상관이 높은 묶음을 하나로 보는 방식이 현실적입니다.
- V는 실제 시도 결과에서 구한다. 위 예시는 이해를 돕기 위해 1/T로 근사했습니다. 실제로는 시도한 전략들의 샤프를 모아 그 분산을 씁니다.
- DSR은 마지막 검증을 대체하지 않는다. DSR은 "선택의 운"을 보정할 뿐, 미래 구간에서의 성과를 보여 주지 않습니다. 고른 전략은 홀드아웃 구간이나 워크포워드 분석으로 한 번 더 확인합니다. 거래 단위 성적의 불확실성은 블록 부트스트랩으로 따로 볼 수 있습니다.
흔한 오해
- "샤프 2가 넘으면 좋은 전략이다." 몇 번 시도해서 나온 2인지, 몇 년 기록인지가 빠진 샤프는 판단 근거가 되지 않습니다. 위 예시에서 시도 100회의 운 기준선이 연 2.53이었습니다.
- "백테스트 기간을 늘리면 해결된다." 기간이 길어지면 샤프 추정치의 흔들림(√V)이 줄어 기준선이 내려가는 것은 맞습니다. 하지만 시도 횟수 N은 그대로 남아 있습니다. 기간과 시도 횟수를 함께 봐야 합니다.
- "DSR이 낮으면 전략이 틀렸다." DSR이 낮다는 것은 "이 증거로는 운과 구분이 안 된다"는 뜻이지, 전략이 손실을 낸다는 뜻이 아닙니다. 판정을 보류하고 더 긴 기록이나 새 구간이 필요하다는 신호입니다.
정리
② PSR = 관측 샤프가 기준보다 진짜 높을 확률
③ SR과 T는 같은 단위(예: 일간 샤프 · 일수)로 넣는다
④ 쓸모없는 전략 100개 중 1등도 연 샤프 약 2.5를 낸다 (예시)
⑤ DSR = 기준을 "운으로 기대되는 최고 샤프"로 올린 PSR
⑥ 같은 연 1.91: 시도 1회 97.1% → 100회 26.8% (예시)
⑦ 음의 왜도·높은 첨도는 확률을 더 낮춘다
⑧ 최소 검증 기간: 가장 너그러운 조건에서도 약 273~302일 (예시)
⑨ 버린 시도까지 전부 세야 DSR이 의미가 있다
⑩ DSR 통과 후에도 홀드아웃 · 워크포워드 검증은 따로 한다
한 줄로 줄이면 이렇습니다. 샤프 비율은 숫자 하나가 아니라 "몇 번 시도해서 얼마 동안 본 숫자인가"까지 함께 읽어야 합니다.
주의
본문의 일간 샤프 0.10, 연환산 1.91, 관측 기간 365일, 시도 횟수 10·50·100·1000회, 왜도 −1·첨도 6, PSR 97.1%·96.5%, DSR 63.1%·35.8%·26.8%·9.0%·62.5%, 최소 검증 기간 273일·302일 등 모든 숫자는 계산 방식을 설명하기 위한 가정 예시이며 특정 전략·특정 계좌의 실제 측정값이 아닙니다. 기대 최고 샤프는 근사식이고, 샤프 추정치 분산을 1/T로 단순화했습니다. 실제 적용 시에는 시도 결과에서 구한 분산과 상관을 반영한 유효 시도 횟수를 써야 하며, 수수료와 슬리피지도 별도로 반영해야 합니다. DSR은 통계적 검증 도구이며 수익을 보장하지 않습니다. 이 글은 교육 정보이며 특정 종목의 매수·매도 권유나 특정 수익을 보장하는 내용이 아닙니다. 레버리지 거래는 원금 손실 위험이 있고, 매매 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →