백테스트를 실제보다 좋아 보이게 만드는 조용한 편향들을 암호화폐 사례와 짧은 점검 체크리스트와 함께 설명합니다.
Traseq··6분 읽기
이 글에서
백테스트는 깔끔한 자산 곡선, 높은 승률, 정돈된 손익비를 보여 주면서도 여전히 과거에 대해 틀릴 수 있습니다. 문제는 대개 계산이 아닙니다. 시뮬레이션이 당시 트레이더가 가질 수 없었던 정보를 쓰게 하거나, 실패가 은밀히 배제된 시장에서 테스트하게 만드는 조용한 가정들이 문제입니다. 이 글은 암호화폐 백테스트를 가장 자주 왜곡하는 두 가지 편향, 즉 선견 편향과 생존자 편향을 다루고, 데이터 스누핑도 간략히 짚습니다. 그런 다음 명확한 체결 모델이 앞의 편향을 어떻게 방어하는지 보여 주고, 어떤 백테스트에도 적용할 수 있는 짧은 체크리스트로 마무리합니다.
하나의 아이디어를 검증 가능한 버전으로 바꾸세요.
노코드 암호화폐 현물 전략으로 시작해 버전을 고정하고, 백테스트를 실행하고, 비교를 위해 결과를 추적 가능하게 유지하세요.
Traseq는 리서치 워크스페이스이며, 실거래나 거래소 체결 플랫폼이 아닙니다. 주문을 넣거나, 거래소 계정에 연결하거나, 성과를 보장하지 않습니다. 여기서의 목표는 결과를 약속하는 것이 아니라 과거 연구를 정직하게 만드는 것입니다.
선견 편향은 백테스트가 의사결정 시점에 아직 입수할 수 없었던 정보를 바탕으로 행동할 때 발생합니다. 시뮬레이션 속 트레이더가 사실상 미래를 엿보는 셈입니다. 결과는 과거에서는 훌륭해 보이지만 실거래에서는 무너집니다. 미래는 실시간으로는 실제로 알 수 없기 때문입니다.
암호화폐에서는 이것이 구체적으로 다음과 같이 나타납니다:
같은 봉 종가에서의 체결. "1h 봉이 200봉 SMA 위에서 마감하면 롱"이라는 규칙에서, 백테스트가 그 같은 봉의 종가에 진입을 체결하는 경우입니다. 그러나 종가는 봉이 끝나야 알 수 있고, 그 시점에 다음으로 거래할 수 있는 가격은 다음 봉의 시가입니다. 시그널을 발생시킨 가격에 체결하는 것은 실제로는 거래할 수 없었던 가격에 사는 것입니다.
리페인팅 지표. 일부 지표나 시그널은 봉이 확정된 뒤에 값을 수정합니다. 이후 데이터가 값을 옮겼기 때문에 과거 차트에 "나타난" 시그널은, 당신이 거래했을 시점에는 존재하지 않았습니다. 백테스트가 최종적으로 리페인팅된 값을 읽는다면, 그것은 미래를 읽는 것입니다.
데이터 준비 단계의 선견. 표본 전체(테스트 기간 포함)에서 계산한 통계량으로 특징을 정규화하거나 스케일링하면, 미래 정보가 모든 봉에 새어 들어갑니다. 전체 시계열을 본 뒤에야 알 수 있는 "최적" 파라미터를 사용하는 경우도 마찬가지입니다.
공통된 핵심은 이것입니다. 백테스트의 모든 의사결정은 그 의사결정 시점에 존재했던 데이터만 사용해야 합니다. 그 방어는 어떤 값이 언제 알려지고 체결이 언제 일어날 수 있는지에 대해 명확한 체결 모델입니다.
생존자 편향은 테스트 대상이 오늘까지 살아남은 자산만으로 이루어질 때 발생합니다. 암호화폐는 유난히 심각한 사례입니다. 수천 개의 토큰이 상장 폐지되거나, 붕괴하거나, 거래량이 거의 0에 가까워졌습니다. "상위 50개 코인으로 테스트한다"는 연구를 오늘의 상위 50개로 구성하면, 살아남은 승자들로 테스트하는 셈입니다. 실패한 종목은 당신이 시작하기도 전에 데이터에서 조용히 제거되었습니다.
구체적인 예를 들어 보겠습니다. 2021년부터 2024년까지 "대형 알트의 눌림목 매수" 규칙을 2024년 시점에도 여전히 대형인 종목만으로 백테스트하면 현실보다 훨씬 좋아 보입니다. 눌림 뒤 회복하지 못했거나 상장 폐지된 알트는 표본에 애초에 포함되지 않기 때문입니다. 그 전략은 죽어 간 종목들을 단 한 번도 버텨 낼 필요가 없었던 것입니다.
생존자 편향에 대한 방어:
"지금 유동성이 있는 것"이 아니라 명확하게 정의된 고정 유니버스로 테스트하세요.
최근에 등장했거나 상장과 폐지를 반복한 자산보다, 길고 연속적인 이력을 가진 시장을 우선하세요.
살아남은 대형 페어에서의 결과는 조건부 결과임을 정직하게 인정하세요. 그것은 계속 거래된 자산만 한 번도 벗어나지 않고 거래했다는 전제에 기댑니다.
Traseq의 주요 워크플로우는 길고 연속적인 이력을 가진 대형, 고거래량 토큰의 주요 USDT 현물 페어에 의도적으로 초점을 맞춥니다. 이는 데이터를 깨끗하고 일관되게 유지하지만, 분명히 밝혀야 할 범위이기도 합니다. 당신의 결론은 더 이상 거래되지 않는 토큰의 긴 꼬리 전체가 아니라 그 페어들에 적용됩니다.
데이터 스누핑(데이터 마이닝 편향이라고도 함)은 이 두 편향의 사촌입니다. 같은 이력에 충분히 많은 규칙, 임계값, 타임프레임을 시도하면 그중 일부는 순전히 우연으로 훌륭해 보입니다. 그 결과는 발견이 아니라 탐색에서 살아남은 것일 뿐입니다. 이것은 과적합과 밀접하게 연결되어 있으며, 표준적인 방어는 튜닝에 쓰는 데이터와 판단에 쓰는 데이터를 분리하는 것입니다. 이는 인샘플과 아웃오브샘플 테스트에서 다룹니다.
선견 편향에 대한 가장 효과적인 구조적 방어는 두 질문에 대한 명확하고 고정된 답입니다. 조건은 언제 판정되며, 그 결과로 발생하는 체결은 언제 일어나는가.
Traseq는 하나의 명확한 모델을 사용합니다. 조건은 봉 종가에서 판정되고, 시그널 기반 진입과 청산은 다음 봉 시가에 체결됩니다. 시그널을 만들어 낸 같은 종가에서는 아무것도 체결되지 않습니다.
이것이 중요한 이유:
"종가가 200봉 SMA를 상향 돌파한다" 같은 조건은 봉이 확정되어야 비로소 확인할 수 있습니다. 종가에서의 판정은 이를 존중합니다.
확정된 종가 이후에 실제로 거래할 수 있는 가장 이른 가격은 다음 봉의 시가입니다. 거기서 체결함으로써 가장 흔한 형태의 선견, 즉 시그널을 발생시킨 바로 그 가격에 사고파는 일을 제거합니다.
규칙은 모든 백테스트의 모든 시그널에서 동일하므로 결과가 재현 가능합니다. 동일한 확정 버전, 페어, 타임프레임, 범위, 체결 설정은 동일한 체결을 만들어 냅니다. 미래 정보를 조용히 흘릴 수 있는, 거래별 숨은 재량이 없습니다.
이것은 리서치 모델이며, 틱 수준이나 호가창 수준의 사실성을 주장하지 않습니다. 전략이 "통한다"고 약속하지도 않습니다. 약속하는 것은, 시뮬레이션 속 과거 의사결정이 그 의사결정 시점에 존재했던 정보만 사용하고, 설정 가능한 수수료와 슬리피지가 이론적 체결 가격 위에 적용된다는 점입니다. 그 정직함이 애초에 백테스트를 하는 의의입니다. 진정으로 어려운 구간에서 백테스트가 어떻게 동작하는지 보려면, 인터랙티브 데모가 세 가지 시스템 템플릿을 실제 BTC/USDT 1h 봉으로 횡보에서 하락으로 이어지는 혼조 구간을 통해 실행합니다. 그리고 세 가지 추세 및 돌파 템플릿은 모두 순손실을 기록했습니다. 이것이 바로 깨끗한 체결 모델이 드러내야 할 정직한 결과입니다.
선견 편향은 백테스트가 그 시점에 입수할 수 없었던 정보를 사용해 의사결정을 하는 것입니다. 예를 들어 시그널을 발생시킨 것과 같은 종가에 주문을 체결하는 경우입니다. 이로 인해 트레이더가 실거래에서 달성할 수 있었던 것보다 과거 결과가 좋아 보이게 됩니다.
생존자 편향은 선견 편향과 어떻게 다른가요?
선견 편향은 시간에 관한 것으로, 과거 시점에 미래 정보를 쓰는 것입니다. 생존자 편향은 선택에 관한 것으로, 지금도 존재하는 자산만 테스트하기 때문에 전략을 해쳤을 실패 사례가 데이터에서 통째로 빠지는 것입니다.
Traseq는 선견 편향을 어떻게 줄이나요?
Traseq는 조건을 봉 종가에서 판정하고, 시그널 기반 진입과 청산을 다음 봉 시가에 체결합니다. 시그널을 만들어 낸 종가에서는 아무것도 체결되지 않으므로, 백테스트는 사후에야 알 수 있었던 가격에 거래할 수 없습니다. 수수료와 슬리피지는 이론적 체결 가격 위에 적용됩니다.
생존자 편향은 다른 시장보다 암호화폐에 더 영향을 주나요?
흔히 그렇습니다. 암호화폐는 상장 폐지와 토큰의 거래량이 거의 0까지 붕괴한 긴 역사를 가지고 있어, 오늘 살아남은 대형 페어로 정의한 유니버스는 승자 쪽으로 크게 치우칠 수 있습니다. 테스트한 유니버스를 명시하고, 결과를 그 페어들에 대한 조건부로 다루세요.
깨끗한 백테스트도 틀릴 수 있나요?
그렇습니다. 선견도 생존자 편향도 없고 현실적인 비용을 넣어도, 결과는 시도한 많은 변형 중 최고, 즉 데이터 스누핑의 산물일 수 있습니다. 그래서 단 하나의 보기 좋은 수치가 아니라 아웃오브샘플 테스트와 재현 가능하고 버전에 연결된 실행이 정직한 길입니다. 노코드 백테스트나 첫 암호화폐 백테스트 실행하기로 직접 시작할 수 있으며, 그 바탕이 되는 모델은 Core Concepts에서 확인하세요.