첫 전략을 막 완성한 분들에게 이런저런 형태로 가장 자주 받는 질문입니다. 결과가 진짜라고 할 수 있으려면 거래가 몇 건이나 필요하나요? 대개 숫자도 함께 나옵니다. "거래가 1,200건인데, 충분하겠죠?" 솔직히 말하면 다들 못마땅해할 답이 돌아갑니다. 필요한 건 거래 건수가 아니니까요.
핵심을 한 줄로 먼저 말씀드릴게요. 나머지 글에서는 왜 이 한 줄이 불편한지 살펴보겠습니다.
샤프 비율의 표준오차란?
n개의 주기별 수익률로 샤프를 계산한다고 해보죠. 수익률이 서로 독립적이고 대략 정규분포를 따른다고 가정하면 표본 오차는 다음과 같습니다.
SE(s) ≈ √((1 + s²/2) / n)
여기서 s는 같은 빈도로 측정한 샤프입니다. 양변을 연율화하면 깔끔한 식이 나옵니다. 연간 관측치가 k개이고 데이터가 T년치라면, 연율화한 샤프 S의 표준오차는 다음과 같습니다.
SE(S) ≈ √((1 + S²/(2k)) / T)
분모의 2k를 보세요. 일간 수익률에서는 k = 252이므로 샤프가 2여도 분자에 더해지는 값은 4/504 ≈ 0.008에 불과합니다. 전체 항은 결국 1로 단순해집니다. 연율화한 샤프의 표준오차는 대략 1/√T이며, T는 데이터가 쌓인 연수입니다. 샤프 자체에는 거의 영향을 받지 않고, 표본 빈도와도 관계가 없습니다. 거래를 몇 건 했는지는 전혀 상관없습니다.
정리하면:
| 데이터 연수 | SE(Sharpe) | 측정한 샤프가 1.5일 때의 95% CI |
|---|---|---|
| 1 | 1.00 | −0.46~3.46 |
| 2 | 0.71 | 0.11~2.89 |
| 3 | 0.58 | 0.37~2.63 |
| 5 | 0.45 | 0.62~2.38 |
| 10 | 0.32 | 0.88~2.12 |
2년치 기록을 사용한 백테스트에서 샤프가 1.5로 나왔더라도, 95% 수준에서는 동전 던지기와 통계적으로 구별할 수 없습니다. 대부분의 암호화폐 리서치가 처한 기본 조건이기도 합니다. 생존 편향을 바로잡고 수수료를 정확히 반영한 깨끗한 데이터는 대개 2022년쯤부터 있고, 흥미로운 심볼 가운데 절반은 2023년 전에는 존재하지 않았으니까요.
거래가 40,000건인데요. 그래도 해결이 안 되나요?
안 됩니다. 제가 가장 바로잡고 싶은 오해가 바로 이겁니다.
거래 건수와 표본 기간은 서로 다른 양이고, 공식에 들어가는 건 둘 중 하나뿐입니다. 전략이 6개월 동안 40,000번 신호를 내면 T = 0.5이고 SE ≈ 1.41입니다. 측정한 샤프가 2.0일 때 95% 구간은 −0.8~4.8입니다. 거래 40,000건을 해도 솔직한 결론은 "좋을 수도 있고, 마이너스일 수도 있다"입니다.
이유는 그 40,000건이 서로 다른 시장 국면 40,000개에 건 독립적인 베팅이 아니기 때문입니다. 약 180일간의 시장 움직임에서 뽑은 표본 40,000개일 뿐이고, 날짜별 움직임은 서로 상관되어 있으며 시장 국면 안에서도 상관성이 있습니다. 4개월 동안 매일 수익을 낸 고빈도 평균회귀 포지션은 실제로 한 가지에 베팅한 셈입니다. 바로 현재 유동성 국면에서 짧은 주기의 평균회귀가 통한다는 가설이죠. 그 베팅의 결과를 독립적으로 관찰한 횟수는 기껏해야 몇 번일 수 있습니다.
저는 이렇게 바꿔 생각합니다. 체결 횟수가 아니라 시장 국면을 세세요. 이 전략은 실제로 서로 다른 시장 상황을 몇 가지나 견뎌냈나요? 펀딩 캐리 전략이 베이시스가 계속 양수였던 한 구간에서만 작동했다면, 시간당 리밸런싱을 몇 번 기록했든 n = 1을 관찰한 셈입니다.
간단한 진단법: 일간 P&L에 블록 길이 20일로 블록 부트스트랩을 적용하고, 재표집한 샤프의 분포를 보세요. 5백분위수가 0보다 낮으면 거래 건수는 의미가 없습니다. numpy 코드 약 9줄이면 되고, 저는 이 검사 하나로 다른 어떤 검사보다 많은 전략을 포기했습니다.
이 공식은 실제 전략에도 적용되나요?
정확히 들어맞지는 않습니다. 게다가 마음에 들지 않을 방향으로 오차가 납니다. 1/√T 결과는 수익률이 IID 정규분포를 따른다고 가정합니다. 실제 전략 수익률에는 자기상관과 왜도가 있고, 캐리나 변동성 매도, 평균회귀처럼 보이는 전략의 왜도는 대개 음수입니다. Mertens의 보정식은 이런 모멘트를 반영합니다.
SE(s) ≈ √((1 + s²/2 − γ₃·s + (γ₄−3)·s²/4) / n)
여기서 γ₃는 왜도, γ₄는 첨도입니다. 왜도가 음수이면 −γ₃·s 항이 양수가 되어 구간이 넓어집니다. 초과 첨도가 있으면 더 넓어집니다. 왜도가 약 −1.2이고 첨도가 약 9인 전형적인 암호화폐 캐리 P&L에서는 보정한 표준오차가 단순 계산보다 30–40% 더 크게 나오는 경우를 봤습니다. Lo의 2002년 논문은 자기상관을 다루며, 효과의 방향도 같습니다. 수익률의 양의 계열상관은 단순 계산에서 샤프를 부풀리고 겉보기 오차를 줄여 불편한 조합을 만들어냅니다.
그러니 1/√T를 불확실성의 하한으로 보세요. 가장 낙관적인 경우입니다.
500개 변형을 테스트했다면 샤프는 얼마나 높아야 하나요?
이제 매일 Stratmill에서 하는 일처럼 자동화된 리서치 파이프라인을 돌리는 분들에게 중요한 부분입니다. 생성 에이전트는 후보 하나가 아니라 수백 개를 만들어냅니다.
표준정규분포에서 M개를 뽑았을 때 최댓값의 기댓값은 대략 √(2 ln M)입니다. 여기에 표준오차를 곱하면, 실제로는 아무 가치도 없는 M개 전략 중 가장 운 좋은 전략이 보여줄 샤프가 나옵니다.
| 테스트한 전략 수 | √(2 ln M) | 잡음 중 최고 샤프, 5년(SE 0.45) | 잡음 중 최고 샤프, 2년(SE 0.71) |
|---|---|---|---|
| 10 | 2.15 | 0.96 | 1.52 |
| 100 | 3.03 | 1.36 | 2.16 |
| 500 | 3.53 | 1.58 | 2.50 |
| 5,000 | 4.13 | 1.85 | 2.93 |
아래에서 두 번째 행을 보세요. 2년치 데이터로 후보 500개를 만들었고 우승 후보의 샤프가 2.4라면, 아무것도 찾지 못한 겁니다. 잡음의 기준치보다 낮으니까요. Bailey와 López de Prado의 deflated Sharpe는 단순한 √(2 ln M) 대신 시행된 샤프들의 분산을 사용해 이 문제를 공식화합니다. 제대로 구현할 가치가 있지만, 단순한 계산만으로도 지금 당장 행동을 바꾸기엔 충분합니다.
이 표가 보여주는 것보다 상황을 악화시키는 요인이 두 가지 있습니다. 첫째, M은 저장한 전략의 수가 아니라 평가한 횟수입니다. 모든 매개변수 조정, "룩백을 30기간으로 바꿔볼까?" 같은 시도, 버그 수정 뒤의 재실행을 모두 포함합니다. 정직하게 세는 사람은 없습니다. 둘째, 후보들은 서로 독립적으로 추출된 값이 아니므로 √(2 ln M)은 실질적인 탐색 폭을 과대평가합니다. 하지만 시행들이 상관되어 있으면 운 좋은 시장 국면 하나가 후보군 전체를 함께 끌어올리기도 합니다.
퀀트 리서치에서 가장 위험한 숫자는 기록한 사람이 없는 숫자입니다. 결과를 몇 번 들여다봤는가 하는 숫자죠.
그럼 실제로는 어떻게 할까요?
제가 할 순서대로 다섯 가지를 말씀드릴게요.
- 모든 평가를 기록하세요. 백테스트를 실행할 때마다 증가하는 카운터를 두고, 값을 저장하며, 초기화하지 마세요. M이 얼마인지 모르면 기준치도 정할 수 없습니다. 이 목록에서 가장 가치가 큰 엔지니어링 작업 한 시간입니다.
- 항상 샤프와 신뢰구간을 함께 보고하세요. 단독 숫자만 출력하지 마세요. 저희 백테스트 보고서에는
1.72 ± 0.51 (2.9y, skew-adjusted)가 나오며, ± 표시는 생략할 수 없습니다. 이 표기 하나가 팀 전체의 결과 논의 방식을 바꿉니다. - 결과를 보기 전에 M과 T를 바탕으로 기준을 정하세요. 위 표에서 숫자를 찾아 적어두세요. 사후에 기준을 정하면 누구나 곡선 적합을 합리화하게 됩니다.
- 표본이 부족하면 빈도를 높이기보다 범위를 넓히세요. 달력 시간을 더 만들어낼 수는 없지만, 같은 신호를 서로 상관되지 않는 심볼 40개에 적용할 수는 있습니다. 거래 빈도를 높여서는 얻지 못하는 방식으로 유효 n을 실제로 늘릴 수 있습니다. 다만 상관관계는 살펴보세요. 위험회피 장세의 한 시간 동안 움직이는 암호화폐 무기한 선물 40개는 사실상 하나의 상품입니다.
- 그다음엔 페이퍼 트레이딩을 하세요. 아웃오브샘플 데이터는 하루에 하루씩 쌓이며 지름길은 없습니다. 그래서 이것만큼은 과적합할 수 있는 사람이 아무도 없습니다.
이런 방법으로 짧은 표본이 쓸 만해지는 건 아닙니다. 짧은 표본으로 어떤 주장을 뒷받침할 수 있는지 솔직하게 파악하게 해줄 뿐입니다. 그 주장은 대부분의 백테스트 보고서가 암시하는 것보다 훨씬 약합니다. 2년치 데이터에서 샤프 1.5가 나왔다면 페이퍼 트레이딩을 해볼 만한 가설입니다. 아직 발견한 사실은 아닙니다.
← 전체 글
