암호화폐 과거 데이터를 인샘플과 아웃오브샘플로 나누는 방법, 인샘플에서만 좋아 보이는 전략이 과최적화인 이유, 그리고 Traseq에서 이 분할을 실행하는 방법.
Traseq··6분 읽기
이 글에서
인샘플과 아웃오브샘플 테스트는 연구된 전략과 곡선 맞추기에 불과한 전략을 가르는 가장 단순한 규율입니다. 과거의 한 구간(인샘플)에서 규칙을 구축하고 조정한 다음, 구축하는 동안 한 번도 보지 않은 이후 구간(아웃오브샘플)에서 검증합니다. 조정에 사용한 데이터에서만 좋아 보인다면, 그것은 엣지를 찾은 것이 아니라 과거를 외운 것입니다.
하나의 아이디어를 검증 가능한 버전으로 바꾸세요.
노코드 암호화폐 현물 전략으로 시작해 버전을 고정하고, 백테스트를 실행하고, 비교를 위해 결과를 추적 가능하게 유지하세요.
이 글은 실전 방법론 글입니다. BTC/USDT 과거 데이터를 사용한 분할 예시, 버전을 확정하고 날짜 범위를 바꿔 가며 Traseq에서 그 분할을 실행하는 방법, 그리고 아웃오브샘플 테스트가 무엇을 증명하고 무엇을 증명하지 않는지에 대한 솔직한 주의점을 다룹니다.
Traseq는 연구 워크스페이스이며, 실거래나 거래소 체결 플랫폼이 아닙니다. 주문을 넣거나, 거래소 계정에 연결하거나, 성과를 보장하지 않습니다.
BTC/USDT 1d 데이터가 2년치, 대략 2024-01-01부터 2025-12-31까지 있다고 합시다. 깔끔한 분할은 다음과 같습니다.
기간
날짜 범위
역할
여기서 해도 되는 일
인샘플
2024-01-01 → 2025-06-30
구축·조정
이동평균 기간, 손절 폭, 임계값 조정. 여러 번 반복 실행
아웃오브샘플
2025-07-01 → 2025-12-31
검증만
고정한 버전을 한 번만 실행. 여기에 맞춰 조정하지 않음
워크플로우는 의도적입니다.
인샘플 범위만 사용해 전략을 구축하고 모든 파라미터를 조정합니다.
만족하면 규칙을 고정합니다. 더 이상 변경하지 않습니다.
손대지 않은 아웃오브샘플 범위에서 그 고정한 버전을 실행합니다.
비교합니다. 인샘플은 강해 보였는데 아웃오브샘플에서 무너진다면, 인샘플 결과는 과최적화였을 가능성이 높습니다.
합리적인 결과는 어느 정도의 저하입니다. 인샘플 적합의 일부는 운이었기 때문에, 아웃오브샘플은 거의 항상 인샘플보다 조금 나쁩니다. 건강한 결과란 전략이 손실로 뒤집히는 것이 아니라, 여전히 알아볼 수 있는 동작(같은 방향, 비슷한 드로다운 형태)을 유지하는 경우입니다.
가장 중요한 규율이 하나 있습니다. 일단 아웃오브샘플 결과를 보고 나면 그 데이터는 "소진"됩니다. 다시 돌아가 아웃오브샘플 숫자를 고치려고 재조정하면, 그 홀드아웃은 더 이상 홀드아웃이 아니며, 한 겹 떨어진 채로 다시 과최적화하는 것일 뿐입니다.
Traseq에는 전용 "분할" 버튼이 없지만, 필요하지도 않습니다. 버전을 추적할 수 있는 워크플로우가 같은 규율을 수작업으로 제공합니다.
Sentence 모드, Canvas 모드, 템플릿 또는 재사용 가능한 block으로 전략을 구축합니다. 인샘플 날짜 범위를 보면서 자유롭게 반복합니다.
조정을 멈추면 버전을 확정합니다. 확정된 버전은 잠기므로 규칙이 모르는 사이에 바뀌지 않습니다.
인샘플 날짜 범위에서 백테스트를 실행합니다. 이것이 기준 실행입니다.
같은 확정 버전을 아웃오브샘플 날짜 범위에서 다시 실행합니다. 같은 페어, 같은 타임프레임, 같은 수수료와 슬리피지로, 바꾸는 것은 날짜뿐입니다.
두 실행을 모두 비교 세트에 추가하고 나란히 놓고 봅니다.
두 실행이 모두 같은 확정 버전을 가리키므로, 둘이 동일한 로직을 사용했음을 증명할 수 있습니다. 달랐던 것은 과거의 어느 구간이었는지뿐입니다. 이 추적 가능성이 핵심입니다. 확정 버전이 왜 이를 신뢰할 수 있게 만드는지는 리서치 추적 가능성과 전략 버전 관리를 참고하세요.
비교 세트에서는 수익률, 최대 드로다운, 승률, 손익비가 두 기간에서 버텨 내는지, 아니면 전략이 인샘플 기간만으로 지탱되었는지를 봅니다. 비교를 읽는 방법은 백테스트 결과를 비교하는 방법과 비교 가이드를 참고하세요.
Learn의 가입 없이 쓰는 데모는 세 가지 시스템 템플릿을 실제 BTC/USDT 1h 봉(2024-11-03부터 2024-12-31까지)에서 실행합니다. 이는 랠리 이후의 짧고 변동성 있는 횡보-하락 국면입니다. 이 단일 기간에서 SMA(200) 추세 필터는 -6.89%, Donchian 돌파는 **-10.27%**였고, RSI 평균 회귀만 간신히 **+1.74%**로 손익분기에 가까웠습니다.
이 두 달짜리 기간 자체가 일종의 아웃오브샘플 교훈입니다. 전략은 추세 구간에서는 괜찮아 보이다가도 변동성 있는 구간에서는 순손실을 낼 수 있습니다. 이 데모는 구축과 검증을 나눈 분할이 아니라 고정된 단일 기간입니다. 그래도 하나의 보기 좋은 기간만으로는 결코 충분한 증거가 되지 않는 이유를 보여 줍니다. 솔직한 결과는 백테스트의 목적이지 숨겨야 할 부끄러움이 아닙니다.
단일 IS/OOS 분할에는 약점이 하나 있습니다. 아웃오브샘플 판정을 한 번만 얻고, 그것이 우연히 고른 기간에 좌우된다는 점입니다. 워크포워드 테스트는 이 아이디어를 확장해 분할을 과거를 따라 앞으로 굴립니다. 기간 1에서 조정하고, 기간 2에서 검증한 다음, 두 기간을 함께 앞으로 옮겨 반복합니다. 그 결과 하나가 아니라 일련의 아웃오브샘플 결과를 얻습니다.
Traseq에서도 오늘 버전을 확정하고, 그것을 연속된 여러 날짜 범위에서 실행한 뒤, 모든 실행을 하나의 비교 세트에서 비교하면 워크포워드를 근사할 수 있습니다. 전용 도구보다는 수작업이지만, 규율——규칙을 고정한 다음, 조정에 쓰지 않은 데이터로 테스트한다——은 동일합니다.