홀드아웃 검증 — 데이터를 잘라 두고 마지막에 딱 한 번만 여는 이유
규칙을 하나 만들고 과거 데이터에 돌려 봅니다. 결과가 좋습니다. 조건을 조금 바꿔 다시 돌립니다. 더 좋아집니다. 이 과정을 몇 번 반복하면 아주 훌륭한 곡선이 나옵니다. 문제는 그 곡선이 규칙의 성능이 아니라 맞춰 넣은 흔적이라는 점입니다.
같은 데이터로 만들고 같은 데이터로 재면 무조건 좋아 보인다
규칙을 만드는 과정은 사실상 데이터에 맞춰 넣는 과정입니다. 이동평균 기간을 20에서 24로 바꾸고, 진입 문턱을 2%에서 3%로 올리고, 특정 시간대를 빼고 — 이런 조정은 전부 그 데이터에서 잘 나오는 쪽으로 갑니다. 그렇게 다듬은 규칙을 같은 데이터에 다시 돌려 "검증했다"고 말하면, 시험 문제를 보고 답을 고른 다음 그 시험으로 실력을 잰 것과 같습니다.
이 문제 자체는 과최적화라는 이름으로 잘 알려져 있습니다. 홀드아웃은 그 과최적화를 막는 방법이 아니라 들키게 하는 방법입니다. 맞춰 넣는 것을 금지할 수는 없으니, 맞춰 넣을 수 없는 데이터를 따로 남겨 두는 것입니다.
데이터를 세 조각으로 나눈다
조각은 보통 셋입니다. 이름은 자료마다 다르지만 역할은 같습니다.
전체 30개월 데이터
① 탐색 18개월 (60%)
마음껏 만지는 구간
조합을 몇 개 돌리든 자유
② 확인 6개월 (20%)
후보를 추려 내는 구간
여러 번 봐도 되지만 횟수를 센다
③ 홀드아웃 6개월 (20%)
마지막에 한 번만 여는 구간
열기 전까지 쳐다보지 않는다
핵심은 ③입니다. 탐색과 확인은 몇 번을 돌려도 상관없지만, 홀드아웃은 한 번 열면 그것으로 끝입니다. 결과가 나쁘다고 규칙을 고쳐서 다시 열면, 그 순간 홀드아웃은 탐색 데이터가 됩니다. 이름만 홀드아웃인 세 번째 탐색 구간이 되는 것이죠.
시간 순서는 반드시 지킵니다. 과거로 탐색하고 미래로 검증하는 방향이어야 합니다. 뒤 구간으로 규칙을 만들어 앞 구간을 재면 실전에서 절대 알 수 없는 정보가 섞이는데, 이 종류의 오염은 미래참조 편향에 따로 정리돼 있습니다.
숫자로 보면 얼마나 줄어드나
조합을 여러 개 시험할수록 그중 최고 성적은 실력이 아니라 운으로도 충분히 높아집니다. 조합 225개를 돌렸다고 해 보겠습니다.
시험한 조합 225개
상위 8개 평균 건당 +$1.21
전체 225개 중앙값 건당 −$0.31
─────────────
상위 8개만 보면 유망해 보인다
같은 상위 8개
건당 −$0.72
8개 중 (+) 1개
+$1.21 → −$0.72
─────────────
상위권 자체가 운이었다는 뜻
왜 이렇게 되는지는 산수로 나옵니다. 아무 효과 없는 조합 225개를 5% 기준으로 시험하면, 순전히 우연으로 통과하는 개수의 기대값이 225 × 0.05 = 11.25개입니다. 상위 8개를 골랐다면 그 8개가 11.25개 안에 들어 있을 가능성이 충분합니다. 이렇게 여러 번 시험하면서 생기는 착시는 다중검정의 함정에서 더 자세히 다룹니다.
홀드아웃을 여러 번 열면 기준이 헐거워진다
"한 번만 연다"는 규칙이 지나치게 엄격해 보일 수 있습니다. 하지만 여는 횟수가 늘면 기준선 자체가 무너집니다.
1번 1 − 0.951 = 5.0%
3번 1 − 0.953 = 14.3%
5번 1 − 0.955 = 22.6%
10번 1 − 0.9510 = 40.1%
20번 1 − 0.9520 = 64.2%
─────────────
20번 열면 아무 효과 없는 규칙도
3분의 2 확률로 통과한다
그래서 실무에서는 여는 행위 자체를 기록으로 남깁니다. 언제 무엇을 어떤 기준으로 열었는지 적어 두면, 나중에 "이 결과는 몇 번째 시도였나"를 복원할 수 있습니다. 적어 두지 않으면 반년 뒤에는 본인도 모릅니다.
시간만 나누면 부족하다 — 종목도 갈라야 한다
구간을 시간으로만 자르면 놓치는 것이 있습니다. 탐색 구간에서 특정 종목 몇 개가 성적을 다 만들어 냈다면, 그 규칙은 "시장을 읽는 규칙"이 아니라 "그 종목에 맞춘 규칙"입니다.
전체 순손익 +$4,200
상위 3종목 기여 +$4,650
나머지 전 종목 합 −$450
상위 3종목 비중
4,650 ÷ 4,200 = 111%
─────────────
3종목을 빼면 적자다
기여도가 한두 종목에 몰려 있으면 시간 홀드아웃을 통과해도 믿기 어렵습니다. 종목 절반으로 만들고 나머지 절반으로 재는 분할을 시간 분할과 같이 걸어야 합니다. 여기에 더해 지금 상장돼 있는 종목만 골라 시험하면 이미 사라진 종목이 통째로 빠지는데, 이 문제는 생존 편향에 정리돼 있습니다.
얼마나 남길까 — 비율보다 블록 수
"20%를 남겨라" 같은 비율이 흔히 쓰이지만, 실제로 중요한 것은 거래 건수가 아니라 독립적인 덩어리가 몇 개인가입니다. 같은 날 같은 시장 움직임에서 나온 거래 40건은 독립된 40개의 증거가 아닙니다.
홀드아웃 거래 4,500건
기간 26일
건수로 세면 4,500
일 블록으로 세면 26
건당 평균 +$1.97
95% 신뢰구간(일 블록)
[+0.71, +3.52]
─────────────
4,500이 아니라 26이 실제 무게다
26개 블록은 생각보다 약한 증거입니다. 이 정도 폭의 신뢰구간이면 다음 기간에 마이너스로 뒤집혀도 이상하지 않습니다. 그래서 홀드아웃은 기간으로 충분히 길게 잡아야 하고, 통과했더라도 모의매매로 앞으로의 기록을 더 쌓는 절차가 뒤따릅니다. 필요한 표본 규모 자체에 대해서는 거래 표본 크기를 참고하세요.
게이트는 열기 전에 적는다
홀드아웃을 여는 순간 가장 흔한 실패는 "결과를 보고 합격선을 정하는 것"입니다. 건당 +$0.4가 나왔는데 "0.3 이상이면 통과로 하자"고 그때 정하면 그건 시험이 아닙니다.
① 건당 순손익 > 0
수수료·펀딩비 차감 후
② 95% 신뢰구간 하한 > 0
일 블록 기준
③ 적중률 > 손익분기 승률
④ 월별 (+) 비율 ≥ 60%
⑤ 최대 낙폭 ≤ 시드의 25%
⑥ 상위 3종목 기여 ≤ 60%
─────────────
하나라도 못 넘기면 탈락
기준 완화·재시험 없음
여섯 개를 전부 적고 나서 열어야 합니다. 여기서 ①이 수수료 차감 후인 점이 중요합니다. 왕복 수수료가 0.10%인데 평균 기대 이동폭이 0.08%라면 규칙의 방향이 맞아도 구조적으로 적자입니다. 총이익과 총손실의 비율로 보는 손익비(Profit Factor)도 비용을 넣은 뒤의 값으로 적어 둡니다.
탈락했을 때 할 수 있는 일은 하나뿐입니다. 그 후보를 버리고, 새 후보는 새 홀드아웃으로 시험하는 것입니다. 같은 구간을 다시 쓰면 위의 22.6% 표로 돌아갑니다.
워크포워드와 무엇이 다른가
구간을 굴려 가며 앞 구간으로 만들고 뒤 구간으로 재는 워크포워드 분석과 헷갈리기 쉽습니다. 둘은 목적이 다릅니다.
워크포워드
규칙이 시간에 따라 견디는지 본다
여러 번 반복해 쓰는 것이 전제
개발 과정의 도구
홀드아웃
최종 합격 여부를 정한다
한 번만 쓰는 것이 전제
개발이 끝난 뒤의 시험
─────────────
워크포워드를 아무리 돌려도
그 구간은 홀드아웃이 될 수 없다
실무에서는 둘을 겹쳐 씁니다. 탐색·확인 구간 안에서 워크포워드를 돌려 후보를 고르고, 그 후보 하나를 손대지 않은 홀드아웃에서 한 번 시험합니다. 백테스트 전반의 절차와 자주 나오는 실수는 암호화폐 백테스트 쪽에 정리돼 있습니다.
여섯 단계 규약
① 데이터를 받자마자 먼저 자른다
홀드아웃 구간은 파일부터 분리
② 합격 기준을 문서로 적는다
날짜를 남겨 나중 수정 방지
③ 탐색·확인에서 후보를 1개로 좁힌다
여러 개를 들고 가지 않는다
④ 홀드아웃을 한 번 연다
연 날짜와 결과를 그대로 기록
⑤ 기준 미달이면 후보를 버린다
기준을 고치지 않는다
⑥ 통과해도 모의매매를 먼저 돌린다
실제 체결·비용은 또 다른 문제
─────────────
①과 ②를 먼저 하는 것이 전부다
①이 형식적으로 보이지만 실제 효과가 큽니다. 홀드아웃 구간을 별도 파일로 떼어 작업 폴더 밖에 두면 실수로라도 들여다볼 수 없습니다. 눈에 보이는 데이터는 결국 보게 되고, 한 번 본 데이터는 시험 문제로서의 가치를 잃습니다.
⑥도 빠뜨리기 쉽습니다. 홀드아웃은 과거 가격으로 계산한 결과일 뿐이라 실제 체결가·미체결·호가 공백 같은 것은 들어 있지 않습니다. 통과는 출발선이지 결승선이 아닙니다.
정리
② 홀드아웃은 과최적화를 막는 게 아니라 들키게 한다
③ 탐색 18개월 · 확인 6개월 · 홀드아웃 6개월로 나눈다
④ 홀드아웃은 한 번 열면 끝이다
⑤ 고쳐서 다시 열면 그 구간은 탐색 데이터가 된다
⑥ 조합 225개 상위 8개 +$1.21 → 확인 구간 −$0.72
⑦ 효과 0인 조합 225개도 5% 기준이면 11.25개가 통과한다
⑧ 5번 열면 기준이 5.0%에서 22.6%로 헐거워진다
⑨ 20번이면 64.2% — 사실상 아무나 통과한다
⑩ 시간만 아니라 종목도 갈라서 본다
⑪ 상위 3종목 기여가 111%면 그 규칙은 3종목 규칙이다
⑫ 표본은 4,500건이 아니라 일 블록 26개로 센다
⑬ 합격 기준은 열기 전에 적어 둔다
⑭ 미달이면 기준이 아니라 후보를 버린다
⑮ 통과는 출발선이고 다음은 모의매매다
한 줄로 줄이면 이렇습니다. 검증의 가치는 데이터의 양이 아니라 "아직 보지 않았다"는 사실에서 나옵니다. 한 번 들여다본 구간은 다시는 시험 문제로 쓸 수 없습니다.
주의
본문의 전체 30개월과 18·6·6개월 분할, 조합 225개, 상위 8개 건당 +$1.21과 −$0.72, 중앙값 −$0.31, 우연 통과 기대값 11.25개, 여는 횟수별 5.0%·14.3%·22.6%·40.1%·64.2%, 순손익 +$4,200과 상위 3종목 +$4,650·나머지 −$450·비중 111%, 홀드아웃 4,500건·26일·일 블록 26개, 건당 +$1.97과 신뢰구간 [+0.71, +3.52], 합격 기준의 60%·25%·60%, 왕복 수수료 0.10%와 기대 이동폭 0.08% 같은 수치는 계산 구조와 개념을 보여주기 위한 가정 예시이며 특정 전략·특정 기간의 실제 측정값이 아닙니다. 통과 확률 계산은 각 시험이 서로 독립이고 효과가 전혀 없다는 단순화된 가정에서 나온 값이라 실제 데이터에서는 구간끼리 겹치고 조합끼리 비슷해 값이 달라집니다. 신뢰구간과 블록 묶는 방법도 데이터 성격과 계산 방식에 따라 결과가 바뀝니다. 이 글은 검증 절차에 대한 설명이며 특정 종목·방향이나 진입·청산 시점을 권유하지 않습니다. 검증을 통과한 규칙도 앞으로의 수익을 보장하지 않습니다. 암호화폐 거래는 원금 전액을 잃을 수 있고 레버리지를 쓰면 손실이 증거금을 넘을 수도 있습니다. 투자 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →