NOONOO TRADING봇에서 시작하기

백테스트 기간 선택 편향: 짧은 기간의 좋은 결과를 믿기 전에 확인할 것

전략을 시험할 때 가장 먼저 정하는 것이 백테스트 기간입니다. 그런데 이 기간을 어떻게 잡느냐에 따라 같은 전략이 수익으로도, 손실로도 보입니다. 데이터가 쌓여 있는 최근 한 달만 돌려 보거나, 여러 기간을 돌려 보고 가장 그럴듯한 결과를 기억하는 일은 흔합니다. 이렇게 고른 기간에서 나온 좋은 성적은 전략의 실력보다 그 기간 시장이 어땠는지를 더 많이 반영합니다. 이 글은 기간 선택 편향이 생기는 구조와, 결과를 믿기 전에 확인할 순서를 정리합니다. 본문 숫자는 계산 구조를 보여주기 위한 가정 예시입니다.

1. 거래 수가 많아도 표본은 적을 수 있다

한 달 동안 500건을 거래했다면 표본이 충분해 보입니다. 하지만 같은 날 일어난 거래들은 대부분 같은 시장 흐름을 함께 탑니다. 그날 시장 전체가 올랐다면 롱 거래 수십 건이 한꺼번에 이기고, 급락한 날에는 한꺼번에 집니다. 이런 거래들은 서로 독립된 시행이 아닙니다.

예시 — 거래 수와 독립 표본 수
· 기간 30일, 거래 500건 → 하루 평균 약 17건
· 같은 날 거래의 결과가 강하게 함께 움직인다면 실제로 독립적인 관측은 날짜 수 30개에 가깝다
· 1년(365일)을 쓰면 독립 관측은 약 12배로 늘어난다

표본 크기를 볼 때는 거래 건수보다 며칠, 몇 개의 서로 다른 시장 국면을 지났는지를 먼저 봅니다. 거래 수 자체에 대한 기준은 거래 표본 크기 글에 정리돼 있습니다.

2. 하루 단위로 묶어 신뢰구간을 다시 잰다

거래를 날짜별로 묶어 하루 손익을 하나의 값으로 만들고, 그 날짜들을 다시 뽑아 평균을 여러 번 계산하면(블록 부트스트랩) 같은 날 거래끼리의 연동을 반영한 신뢰구간이 나옵니다.

예시 — 같은 평균, 다른 구간 길이
· 하루 평균 손익 +20달러, 하루 손익의 표준편차 120달러
· 30일: 표준오차 = 120 ÷ √30 ≈ 21.9 → 95% 구간 ≈ +20 ± 43 = [−23, +63]
· 365일: 표준오차 = 120 ÷ √365 ≈ 6.3 → 95% 구간 ≈ +20 ± 12 = [+8, +32]

30일 결과로는 이 전략이 돈을 버는지 잃는지 구분할 수 없다

평균이 플러스여도 구간이 0을 포함하면 "수익 전략"이라고 말할 근거가 없습니다. 날짜 단위로 다시 뽑는 방법은 블록 부트스트랩 신뢰구간 글에서 다뤘습니다.

3. 좋은 결과의 상당 부분은 시장 흐름일 수 있다

짧은 기간에는 한 방향 흐름이 이어지는 경우가 많습니다. 그 기간에 롱 위주로 진입하는 전략은 신호가 아무 의미가 없어도 수익이 납니다. 이를 걸러내려면 같은 시각 시장 전체의 수익률을 빼고 남는 부분을 봅니다.

예시 — 시장 상승분 빼기
· 전략의 거래당 평균 수익률 +0.25% (4시간 보유)
· 같은 시각에 진입했을 때 전체 코인 평균의 4시간 수익률 +0.22%
· 전략 고유 성분 = 0.25 − 0.22 = +0.03%
· 왕복 수수료·슬리피지 0.10%를 빼면 −0.07%

겉보기 +0.25%의 대부분은 "그 시각 시장이 올랐다"였고, 신호가 더한 몫은 비용보다 작습니다. 시장이 하락하는 구간으로 넘어가면 이 전략은 바로 손실이 납니다. 분해 방법은 시장 조정 잔차 수익률 글, 비용 계산은 왕복 거래 비용 글을 참고합니다.

4. 여러 기간을 돌려 보고 하나를 고르면 생기는 일

기간 선택 편향의 다른 형태는 여러 구간을 시험한 뒤 결과가 좋은 구간을 기준으로 삼는 것입니다. 수익이 전혀 없는 전략이라도 구간을 여러 개 보면 그중 일부는 우연히 좋게 나옵니다.

예시 — 기대값 0인 전략, 한 달 구간 12개
· 각 한 달 결과가 플러스일 확률 약 50%
· 12개 중 가장 좋은 달 하나를 고르면 그 달은 거의 항상 플러스이고, 크기도 평균보다 크다
· 12개 중 적어도 한 달이 신뢰구간 상단 5%에 들 확률 = 1 − 0.95¹² ≈ 46%

시작일·종료일을 바꿔 가며 보거나, 결과가 나쁜 구간을 "특이한 장세였다"며 빼는 것도 같은 구조입니다. 시험한 횟수가 늘수록 기준을 높여야 합니다. 이 문제는 다중 검정 함정 글에서 더 자세히 다뤘습니다.

5. 구간을 나눠 같은 방향인지 본다

긴 기간을 갖고 있다면 전체 합계 하나만 보지 말고 월별로 나눠 봅니다. 실력이 있는 전략은 시장 국면이 바뀌어도 대부분의 달에서 같은 부호를 보입니다.

예시 — 같은 연간 합계, 다른 분포
· 전략 A: 12개월 중 10개월 플러스, 연간 +3,000달러
· 전략 B: 12개월 중 4개월 플러스, 연간 +3,000달러 — 그중 한 달이 +4,500달러

B는 한 달을 빼면 −1,500달러. B의 결과는 사실상 그 한 달 시장 흐름의 기록이다

상승장·하락장·횡보장에서 각각 어떻게 됐는지 나눠 보면 더 분명해집니다. 국면 구분은 코인 시장 레짐 글에 있습니다. 시간 순서대로 구간을 옮겨 가며 검증하는 방법은 워크포워드 분석 글을 참고합니다.

6. 기간과 판정 기준을 먼저 정한다

기간 선택 편향을 막는 가장 확실한 방법은 결과를 보기 전에 규칙을 고정하는 것입니다.

· 개발 구간과 확인 구간을 미리 나눈다. 예를 들어 앞 8개월로 규칙을 만들고, 뒤 4개월은 한 번도 보지 않은 채 남겨 둔다.
· 통과 기준을 숫자로 적어 둔다. "확인 구간에서 비용 차감 후 거래당 평균이 플러스이고, 하루 단위 95% 구간 하단이 0보다 크다"처럼.
· 확인 구간은 한 번만 쓴다. 결과를 보고 규칙을 고쳐 다시 돌리면 그 구간은 개발 구간이 된다.
· 시험한 모든 변형을 기록한다. 몇 개를 시험했는지 알아야 결과를 얼마나 할인해서 읽을지 정할 수 있다.

예시 — 개발 구간과 확인 구간의 차이
· 개발 구간(8개월)에서 고른 최적 설정: 거래당 +0.40%
· 확인 구간(4개월) 같은 설정: 거래당 −0.05%

개발 구간 성적은 고르는 과정에서 부풀려진 값이다. 판단은 확인 구간 숫자로 한다

확인 구간을 다루는 방법은 홀드아웃 표본 외 검정 글, 규칙을 과하게 맞추는 문제는 과최적화 글에 정리돼 있습니다.

7. 기간 끝을 잘라 내는 문제

기간 마지막에 아직 청산되지 않은 포지션을 빼고 계산하면 결과가 좋아 보이는 경우가 많습니다. 이긴 거래는 목표가에 빨리 닿아 먼저 닫히고, 진 거래는 손절 전까지 오래 버티며 열려 있기 때문입니다.

예시 — 청산 거래만 셀 때
· 기간 종료 시 청산 80건(승률 85%), 미청산 40건(대부분 평가손실)
· 청산분만 보면 거래당 +12달러
· 미청산분을 종료 시점 가격으로 평가해 합치면 거래당 −2달러

기간이 짧을수록 열린 포지션의 비중이 커져 이 왜곡이 심해집니다. 끝나지 않은 거래도 종료 시점 가격으로 평가해 함께 셉니다. 이 밖에 상장 폐지된 코인이 데이터에서 빠지는 문제는 생존자 편향, 진입 시점에 알 수 없던 정보가 섞이는 문제는 미래 참조 편향 글에서 다뤘습니다.

8. 결과를 믿기 전 점검 순서

· 백테스트가 몇 일, 몇 개의 서로 다른 시장 국면을 지났는가.
· 하루 단위로 묶은 신뢰구간이 0을 넘는가.
· 같은 시각 시장 평균 수익률을 빼도 비용을 넘는 몫이 남는가.
· 월별로 나눴을 때 대부분 같은 부호인가, 한두 달이 전체를 만들었는가.
· 기간을 결과 보기 전에 정했는가, 여러 기간 중 좋은 것을 골랐는가.
· 기간 끝의 미청산 포지션까지 평가에 넣었는가.
· 한 번도 보지 않은 확인 구간에서 같은 결과가 나왔는가.

정리

짧은 기간이나 골라낸 기간의 좋은 성적은 전략의 실력과 그 기간 시장 흐름을 구분하지 못합니다. 거래 수가 많아도 같은 날 거래는 함께 움직이므로 독립 표본은 날짜 수에 가깝고, 한 달은 30개 정도에 불과합니다. 하루 단위 신뢰구간, 시장 상승분 차감, 월별 분해, 미리 정한 확인 구간으로 검사했을 때도 결과가 남아야 그 전략을 다음 단계로 넘길 근거가 됩니다. 짧은 기간에서 나온 플러스는 가설로만 다루고, 긴 기간과 보지 않은 구간에서 다시 확인하는 순서가 기본입니다.

주의

본문의 거래 수, 손익, 수익률, 표준편차는 계산 구조를 보여주기 위한 가정 예시이며 특정 전략이나 거래소의 실제 성과가 아닙니다. 백테스트 결과는 미래 수익을 보장하지 않습니다. 이 글은 교육 정보이며 특정 자산의 매매 권유가 아닙니다. 코인 선물 거래는 원금 손실 위험이 크고, 투자 판단과 그 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →