B 바이낸스 · 전 세계 1위 암호화폐 거래소바이낸스 가입 → AD OKX OKX · 글로벌 대형 암호화폐 거래소OKX 가입 → AD
cco.kr.
📚 키워드 목록 › 📊 차트 분석, 처음부터 제대로 › 백테스트 결과 읽는 법: 수익률보다 먼저 볼 것과 흔한 함정
🧪

백테스트 결과 읽는 법: 수익률보다 먼저 볼 것과 흔한 함정

최대낙폭·비용·미래 참조·과최적화처럼, 백테스트 숫자를 믿기 전에 확인할 것들을 정리합니다.

📚 차트 분석, 처음부터 제대로 · 31/52· ⏱ 읽는 데 약 11분 ·정보 업데이트 2026-10-07
📋 기본 정보4
핵심
규칙을 과거에 그대로 따랐다면의 기록이지 예측이 아니다
먼저
수익률보다 최대낙폭·거래 수·보유 대비 성적을 먼저 본다
비용
체결마다 수수료 0.1% 안팎, 잦은 매매일수록 크게 깎인다
함정
미래 참조, 과최적화, 생존 편향, 한 번의 상승장

백테스트가 답하는 질문

백테스트는 정해 둔 매매 규칙을 과거 가격에 그대로 적용해 보는 일입니다. 답하는 질문은 '이 규칙을 그때 그대로 따랐다면 어땠을까'이지 '앞으로도 그럴까'가 아닙니다. 그래서 결과표의 숫자 하나보다 그 숫자가 얼마나 우연에 가까운지를 먼저 따져야 합니다. 이 사이트의 코인 전략 백테스터는 바이낸스의 실제 과거 봉으로 여섯 가지 규칙을 돌려 보고, 결과를 그냥 들고 있었을 때와 나란히 보여 줍니다. 사람들이 백테스트를 과신하는 이유는 단순합니다. 매끄럽게 오르는 곡선은 설득력이 크고, 그 곡선을 만든 사람은 대개 잘 나온 설정만 남겨 두기 때문입니다. 읽는 순서를 정해 두면 이 함정을 줄일 수 있습니다. 규칙이 말로 정확히 적혀 있는지, 체결 시점과 비용이 어떻게 들어갔는지, 보유와 비교하면 어떤지, 거래 수가 충분한지, 구간을 나눠도 유지되는지를 차례로 봅니다. '적당히 눌렸을 때 산다'처럼 규칙이 모호하면 시험 자체가 성립하지 않습니다.

결과표의 숫자들

총수익률은 기간이 길수록 커지므로, 기간이 다른 결과끼리는 연환산 수익률(CAGR)로 비교합니다. 승률이 높아도 진 거래 하나가 크면 손실이 나고, 승률이 낮아도 이긴 거래가 크면 이익이 납니다. 그래서 승률은 손익비와 함께 봐야 뜻이 생깁니다. 시장 노출은 포지션을 들고 있던 시간의 비율입니다. 노출이 30%인 규칙은 나머지 70% 동안 현금으로 있었으므로, 수익률과 낙폭을 보유와 비교할 때 이 차이를 함께 봐야 합니다. 손절은 늦추고 이익은 빨리 확정하는 규칙은 승률이 높아지는 대신 손익비가 나빠지는데, 승률만 보면 이 성질이 장점처럼 보입니다. 프로핏 팩터가 1보다 작으면 비용을 넣기 전부터 손실이라는 뜻이고, 1을 조금 넘는 정도라면 비용과 슬리피지에 쉽게 뒤집힙니다. 노출이 낮은 규칙의 낙폭이 작은 것은 당연한 일이라, 그것만으로 규칙이 뛰어나다고 보기도 어렵습니다.

  • CAGR = (최종 자산 ÷ 처음 자산)^(1 ÷ 햇수) − 1
  • MDD: 그때까지의 최고점에서 가장 깊이 내려간 비율
  • 승률: 이긴 거래 ÷ 끝난 거래
  • 손익비: 평균 이익 ÷ 평균 손실
  • 프로핏 팩터: 이긴 거래 이익의 합 ÷ 진 거래 손실의 합
  • 시장 노출: 포지션을 들고 있던 봉 ÷ 전체 봉
  • 평균 보유 기간: 포지션 하나를 들고 있던 평균 봉 수

보유와 비교하고, 비용을 넣는다

규칙의 결과는 같은 기간 사서 들고만 있었을 때(보유)와 비교해야 의미가 있습니다. 코인이 크게 오른 기간이라면 대부분의 매수 규칙이 이익을 냅니다. 비용도 넣어야 합니다. 바이낸스 현물 기본 수수료는 체결마다 0.1%이고, 주문이 생각한 가격보다 불리하게 체결되는 슬리피지가 더해집니다. 매번 전액을 사고판다면 체결 200번에 0.1%씩으로 자산의 약 18%가, 0.15%씩이면 약 26%가 비용으로 깎입니다. 그림은 체결이 49번뿐인 예시인데도, 비용을 빼기 전 최종 자산은 168로 보유(165)보다 높았지만 체결마다 0.15%를 빼자 157로 보유보다 낮아졌습니다. 적립식으로 나눠 샀을 때와의 비교는 코인 적립식 시뮬레이터로 해 볼 수 있습니다. 비용 산수는 단순합니다. 0.999 를 200번 곱하면 약 0.819, 0.9985 를 200번 곱하면 약 0.741 입니다. 짧게 사고파는 규칙일수록 체결 수가 늘어 이 효과가 커지고, 거래가 적은 코인이나 급변 구간에서는 슬리피지가 0.05%보다 훨씬 클 수 있습니다. 보유와 비교할 때는 같은 기간, 같은 시작 자산, 같은 비용 가정을 맞춥니다.

자산 곡선비용 전보유비용 후
예시: 무작위로 만든 가격 240봉(여러 개를 만들어 고른 것)에 '종가가 5봉 이동평균 위로 올라서면 다음 봉 시가에 사고, 아래로 내려서면 판다' 규칙을 적용한 자산 곡선(시작 100)입니다. 체결 49번에 매번 0.15%(수수료 0.1%+슬리피지 0.05%)를 빼면, 보유보다 높던 최종 자산이 보유보다 낮아집니다.

최대낙폭(MDD)을 먼저 본다

최대낙폭은 자산이 그때까지의 최고점에서 가장 깊이 내려간 비율입니다. 최종 수익률이 같아도 중간에 35% 빠졌던 곡선과 10% 빠졌던 곡선은 전혀 다른 경험입니다. 손실과 회복은 비대칭이어서 20%를 잃으면 25%, 35%를 잃으면 약 54%, 50%를 잃으면 100%가 올라야 제자리로 돌아옵니다. 최고점을 다시 넘기까지 걸린 기간도 함께 봅니다. 그림의 예시에서 보유 곡선의 MDD 는 35%, 같은 기간 비용을 넣은 규칙 곡선의 MDD 는 11%였습니다. 낙폭을 수익률보다 먼저 보는 이유는, 그 곡선을 실제로 따라갈 사람이 버틸 수 있는지가 낙폭에 달려 있기 때문입니다. 낙폭 한가운데에서는 규칙이 망가졌는지 잠시 쉬는 중인지 구별할 수 없어, 많은 사람이 바로 그 지점에서 규칙을 버립니다. 백테스트의 MDD 는 과거 한 경로에서 나온 값이므로, 앞으로의 낙폭은 그보다 깊을 수 있다고 보는 편이 안전합니다.

회복최고점MDD -35%보유 곡선의 최대낙폭
예시: 위 그림의 '보유' 곡선. 그때까지의 최고점에서 가장 깊이 내려간 비율이 최대낙폭(MDD)이며, 여기서는 -35%입니다. 최고점을 다시 넘기까지 걸린 기간도 함께 봅니다.

미래 참조: 그때는 몰랐던 정보

미래 참조(look-ahead)는 그 시점에는 알 수 없던 정보를 판단에 쓰는 실수입니다. 가장 흔한 형태는 봉의 종가로 신호를 판단하고 같은 종가에 체결했다고 치는 것입니다. 종가는 봉이 끝나야 알 수 있으므로, 마감된 봉의 종가로 판단했다면 체결은 다음 봉 시가로 잡아야 맞습니다. 이 사이트의 백테스터도 그렇게 합니다. 하루의 고가·저가를 그날이 시작될 때 안다고 가정하는 것, 오른쪽 봉이 마감돼야 확정되는 스윙 고점을 그 봉 자리에서 쓰는 것도 같은 종류입니다. 흔한 착각은 결과가 너무 좋은 것을 실력으로 읽는 것입니다. 승률이 비정상적으로 높거나 손실 거래가 거의 없으면 먼저 미래 참조를 의심합니다. 지표 계산에 그 봉 이후의 값이 섞였는지(전체 기간의 최고·최저로 맞춘 값 등), 신호 봉과 체결 봉이 같은지, 데이터의 봉 시각이 시작 기준인지 마감 기준인지를 차례로 확인합니다.

과최적화: 많이 시도할수록 우연이 뽑힌다

기간·배수 같은 설정을 수십 가지로 바꿔 보면 그중 하나는 우연히 좋은 결과를 냅니다. 그 설정을 고르는 순간 결과표는 규칙의 실력이 아니라 고르기의 결과가 됩니다. 위 그림도 그렇게 만들었습니다. 무작위 가격을 여러 개 만들어 설명하기 좋은 것을 골랐더니, 사고팔 시점을 고르는 규칙이 통할 이유가 없는 무작위 가격인데도 비용 전에는 보유보다 나아 보이는 곡선이 나왔습니다. 점검 방법은 고른 설정의 이웃 값도 비슷하게 좋은지, 다른 기간과 다른 코인에서도 결과가 유지되는지 보는 것입니다. 조건을 하나 더할 때마다 과거에는 더 잘 맞게 됩니다. 조건 하나하나가 과거의 특정 손실 구간을 피해 가도록 다듬어지기 때문입니다. 그래서 설정을 고르는 구간과 시험하는 구간을 나누는 방법이 쓰입니다. 앞 구간에서 설정을 정한 뒤, 손대지 않은 뒤 구간에서 한 번만 돌려 봅니다. 뒤 구간 결과를 보고 설정을 다시 고치면 그 구간도 더는 시험용이 아닙니다.

생존 편향과 국면 의존

지금 거래되는 코인만 골라 과거를 시험하면 그사이 사라지거나 상장 폐지된 코인은 빠지고, 살아남은 코인만 남은 표본은 결과를 좋게 만듭니다. '지금 시가총액 상위 코인'으로 대상을 고르는 것도 그사이 크게 오른 코인을 미리 알고 고르는 셈이라 같은 문제가 있습니다. 이 강좌의 실측 통계도 지금 남아 있는 대형 코인 10개로 잰 것이라 같은 한계가 있습니다. 국면도 봐야 합니다. 그 10개 코인 일봉(각 코인 상장일~2026년 9월)의 모든 봉 29,746개에서 봉 종가부터 20봉 뒤 종가까지 잰 수익률은 평균 +4.62%였지만 중앙값은 +0.15%, 오른 비율은 50.4%였습니다. 소수의 큰 상승이 평균을 끌어올렸다는 뜻이고, 그 몇 번이 시험 기간에 들어가느냐에 따라 결과가 크게 달라질 수 있습니다. 결과가 한 번의 상승장에 기대고 있지 않은지 구간을 나눠 확인합니다. 구간을 나눌 때는 오르는 구간, 내리는 구간, 옆으로 흐르는 구간을 따로 보고 규칙이 어디서 벌고 어디서 잃었는지 적어 둡니다.

거래 수가 적으면 숫자가 흔들린다

끝난 거래가 열 번 안팎이면 승률·프로핏 팩터는 몇 번의 우연에 크게 흔들립니다. 이 강좌의 실측에서 바이낸스 BTC 일봉 골든크로스(SMA50 이 SMA200 을 위로 넘음)는 2017년 8월부터 2026년 9월까지 9번뿐이었는데, 5봉 뒤 오른 비율은 9번 중 1번(11.1%), 20봉 뒤에는 8번 중 6번(75.0%)이었습니다. 모든 봉 기준은 각각 53.1%, 53.7%입니다. 같은 신호가 재는 시점만 바꿔도 정반대로 보입니다. 표본이 적은 결과는 좋든 나쁘든 결론을 미루고, 기간이나 코인을 늘려 거래 수를 키워 보는 것이 순서입니다. 열 번 중 일곱 번 이긴 결과와 백 번 중 일흔 번 이긴 결과는 승률이 같아도 무게가 다릅니다. 동전을 열 번 던져 앞면이 일곱 번 이상 나올 확률이 약 17%로, 드문 일이 아니기 때문입니다.

좋은 백테스트가 말하지 않는 것

함정을 모두 피한 백테스트도 과거의 한 경로를 보여 줄 뿐입니다. 시장의 성격이 바뀌면 잘 맞던 규칙이 한동안 맞지 않을 수 있고, 실제 매매에서는 손실이 이어질 때 규칙을 그대로 지키기가 생각보다 어렵습니다. 백테스트는 규칙의 성격, 곧 얼마나 자주 사고파는지와 얼마나 깊이 빠지는지를 미리 보여 주는 도구로 보는 편이 정확합니다. 자기 눈대중을 시험해 보고 싶다면 차트 맞히기 퀴즈에서 정답률을 찍기 기준선과 비교해 볼 수 있습니다. 그래서 결과표를 본 뒤에 할 일은 얼마를 벌지 계산하는 것이 아니라, 그 낙폭과 연패를 실제로 견딜 수 있는지, 비용 가정이 내 거래 환경과 맞는지를 따져 보는 것입니다. 같은 규칙을 몇 달 실제로 지켜본 기록과 백테스트를 나란히 놓아 보면, 비용·체결·심리에서 생기는 차이가 어디서 오는지 드러납니다.

코인과 주식에서 다르게 보이는 점

같은 규칙이라도 시장에 따라 결과표의 가정이 깨지는 방식이 다릅니다. 코인은 24시간 거래되어 일봉 사이에 빈틈이 거의 없지만, 주식은 정규장이 끝난 뒤 나온 소식이 다음 날 시가에 한꺼번에 반영되어 갭이 생깁니다. '다음 봉 시가에 체결'이라는 가정은 같아도 주식에서는 그 시가가 전날 종가와 크게 다를 수 있고, 손절도 손절가가 아니라 갭이 난 시가에 체결되는 일이 잦습니다. 국내 주식에는 하루 가격제한폭(±30%)이 있어 상한가·하한가에 묶이면 원하는 가격에 사고팔 수 없는 날이 생기는데, 백테스트는 대개 그날도 체결된 것으로 칩니다. 미국 주식에는 종목별 하루 제한폭이 없는 대신 급변할 때 거래를 잠시 멈추는 장치가 있습니다. 비용도 다릅니다. 국내 주식은 팔 때 거래세가 붙어 왕복 비용이 수수료만 내는 코인과 다르게 계산됩니다. 생존 편향의 모양도 다릅니다. 지금의 지수 구성 종목이나 미국 대형 기술주로 과거를 시험하면 그사이 빠진 종목이 사라지고, 삼성전자·SK하이닉스처럼 오래 살아남은 대형주만 고르면 결과가 좋게 보이기 쉽습니다. 주식 데이터가 액면분할·배당을 반영한 수정 주가인지도 확인합니다.

실전 점검 순서

결과표를 받아 들었을 때 아래 순서로 보면 놓치는 것이 줄어듭니다. 실시간 차트에서 같은 규칙을 지켜볼 때는 하나를 더 확인합니다. 백테스트는 닫힌 봉만 쓰지만 화면의 마지막 봉은 아직 진행 중이라, 종가·이동평균·RSI 가 갱신될 때마다 바뀝니다. 장중에 켜졌던 신호가 봉이 닫힐 때 꺼지는 일이 흔하므로, 백테스트와 같은 조건으로 비교하려면 봉이 닫힌 뒤의 신호만 셉니다. 백테스터의 결과는 과거 봉이 모두 닫힌 상태에서 계산되므로, 지금 화면에서 본 신호와 결과표의 신호 개수가 다르게 보일 수 있습니다. 진행 중인 봉을 신호로 세면 실제로는 체결할 수 없었던 신호까지 들어갑니다. 아래 목록은 결과표를 읽는 순서이기도 합니다.

  • 규칙이 말로 정확히 적혀 있는가(진입·청산·손절 조건)
  • 신호 봉과 체결 봉이 다른가(종가로 판단, 다음 봉 시가에 체결)
  • 수수료와 슬리피지가 체결마다 들어갔는가
  • 같은 기간 보유와 비교했고, 노출 차이를 감안했는가
  • MDD 와 회복 기간을 실제로 견딜 수 있는가
  • 끝난 거래가 충분하고, 구간을 나눠도 결과가 유지되는가
  • 고른 설정의 이웃 값, 다른 코인·종목에서도 비슷한가
  • 실시간 비교는 닫힌 봉의 신호로만 했는가

🧰 관련 서비스

실시간으로 확인하기

🔗 같은 분류의 다른 항목

🌍 검색엔진에서 더 찾아보기

아래 버튼을 누르면 해당 검색엔진에서 이 키워드로 바로 검색합니다