LogiCandle
LEARN / VALIDATION

백테스트 결과, 이렇게 검증하세요

수익률 하나로 판단하지 마세요. 아래 순서로 결과가 나온 이유와 약점을 살펴보세요.

백테스트는 매매 규칙을 과거 시세에 적용해 그 규칙대로 거래했다면 어떤 결과가 나왔을지 계산하는 일입니다. 수익률 하나만 보면 우연히 맞은 결과와 실제로 통하는 규칙을 구분할 수 없습니다.

백테스트가 실전과 달라지는 이유

수수료와 슬리피지를 빼지 않았거나, 봉이 끝나기 전에는 알 수 없는 값을 미리 썼거나(미래 참조), 살아남은 종목만 골랐거나(생존 편향), 과거 차트에 맞춰 조건을 여러 번 고친 경우(과최적화)입니다. LogiCandle은 확정된 봉에서 조건을 평가하고 다음 봉 시가에 진입하는 것으로 계산합니다.

OOS(표본 외) 검증이란

전략을 만드는 동안 한 번도 보지 않은 구간에서 같은 규칙을 그대로 돌려 보는 검증입니다. 한번 열어 본 구간은 다시 순수한 OOS가 될 수 없으므로, 규칙을 고정한 뒤 한 번만 확인합니다.

연습 문제를 잘 풀었다고, 처음 보는 시험도 잘 볼까요?

이미 본 차트에 맞춰 조건을 고치면 과거 성적만 좋아질 수 있습니다. OOS는 전략을 정한 뒤 처음 열어 보는 시험 구간입니다. 한번 본 구간은 다시 순수 OOS가 되지 않습니다.

CHECK 01

거래비용을 늘려도 남는가?

체결이 예상보다 불리해져도 이익이 남는지 확인합니다. 0배는 수수료·슬리피지 모두 0, 1~3배는 수수료를 유지하고 슬리피지만 늘린 실제 재실행입니다. 평균 수익률이 음수로 바뀌면 비용에 민감합니다.

CHECK 02

어떤 시장에서 잘 작동하는가?

진입 당시 BTC의 200봉 평균선과 변동성으로 거래를 나눕니다. 상승·하락 또는 변동성이 큰 시장에 편중되는지 봅니다. 각 분류는 겹칠 수 있어 거래 수를 합산하면 안 됩니다.

CHECK 03

몇 번의 대박에 기대고 있는가?

순이익이 가장 큰 거래를 제외하고 남은 거래만 다시 집계합니다. 수익이 사라지면 일부 거래에 의존한 전략입니다. 거래를 제외한 통계이며 자본 시뮬레이션 재실행은 아닙니다.

CHECK 04

설정을 조금 바꿔도 괜찮은가?

손절 폭과 보유기간을 주변 값으로 바꾼 9개 실험입니다. 딱 한 설정에서만 좋다면 과거 데이터에 맞춘 결과일 수 있습니다. 진입 지표의 길이를 바꾼 실험은 아닙니다.

CHECK 05

다른 시기에도 통했는가?

기간을 시간순 60%·20%·20%로 나눠 재실행합니다. 뒤 구간 성과가 약하면 특정 시기에만 맞았을 수 있습니다. 이름이 OOS여도 이미 본 데이터라면 순수한 미사용 검증은 아닙니다.

CHECK 06

시간을 앞으로 옮겨 확인하기

동일한 전략을 뒤쪽 구간으로 옮겨 세 번 확인합니다. 시간이 바뀌어도 유지되는지 봅니다. 각 구간에서 최적화를 다시 하는 walk-forward는 아직 지원하지 않습니다.

CHECK 07

평균 수익은 얼마나 흔들릴까?

기존 거래를 연속 묶음으로 다시 뽑아 500개 표본을 만들고 평균 수익률의 가운데 95% 범위를 봅니다. 범위에 0이 포함되면 이 자료만으로 이익을 확신하기 어렵습니다. 미래 수익 확률이나 보장은 아닙니다.

CHECK 08

거래 순서가 달랐다면?

같은 거래 수익률을 500번 섞어 연속 복리 경로의 최대 하락을 비교합니다. 손실이 몰릴 때의 부담을 봅니다. 실제 슬롯·동시 보유를 반영한 계좌 재현은 아닙니다.

CHECK 09

동시에 몇 종목을 담을 수 있는가?

자본을 1·2·3·5·10·20슬롯으로 나눠 실제로 다시 실행합니다. 슬롯이 적으면 신호를 놓칠 수 있습니다. 복리 여부도 비교하며 CAGR만 아니라 MDD를 함께 보세요.

숫자 읽는 법

총 수익

최종 자산에서 초기자본을 뺀 금액입니다. 미청산 포지션 평가손익을 포함합니다.

자본수익률

(최종 자산 ÷ 초기자본 − 1) × 100입니다.

최종 자산

분석 종료 시점의 현금과 보유 포지션 평가액입니다.

거래 수익률

이 거래의 순손익 ÷ 진입 명목금액 × 100입니다. 수수료·슬리피지·펀딩비를 반영합니다. 선물에서는 레버리지를 반영한 증거금 수익률과 다릅니다.

완료 거래 수

진입과 청산이 모두 끝난 거래의 개수입니다. 아직 보유 중인 거래는 제외됩니다. 표본이 적으면 승률과 평균 수익이 쉽게 달라집니다.

승률

비용을 빼고 이익이 난 거래 수 ÷ 완료 거래 수 × 100입니다. 60%면 10번 중 약 6번 이겼다는 뜻입니다. 한 번의 큰 손실은 승률에 드러나지 않습니다.

거래당 평균 수익률

각 거래의 순손익 ÷ 진입 명목금액 × 100을 구한 뒤 평균냅니다. 수수료·슬리피지·펀딩비를 반영합니다. 1%라면 투자금 100마다 평균 1의 이익입니다. 계좌 전체 수익률은 아닙니다.

거래 수익률 중앙값

거래 수익률을 작은 순서대로 놓았을 때 가운데 값입니다. 평균은 큰 수익 한두 건에 끌려갈 수 있어, 보통의 거래가 어땠는지 중앙값과 함께 봅니다.

총이익 / 총손실 (PF)

이익 거래의 순손익 합 ÷ 손실 거래의 순손익 합 절댓값입니다. 1.5는 총 100을 잃는 동안 150을 벌었다는 뜻입니다. 손실 거래가 없으면 비율을 계산할 수 없습니다.

평균 손익비

이익 거래의 평균 수익률 ÷ 손실 거래의 평균 수익률 절댓값입니다. 2면 한 번 이길 때의 평균 이익이 한 번 질 때 평균 손실의 두 배입니다. 승률과 함께 보세요.

최악 거래 수익률

완료 거래 중 가장 낮은 순수익률입니다. -8%면 최악의 거래에서 진입금액의 8%를 잃었습니다. 모두 이익이면 이 값도 양수입니다. 계좌 최대 낙폭과 다릅니다.

위험 대비 평균 이익 (R)

각 거래의 순손익 ÷ 진입 당시 손절까지의 금액 위험을 평균냅니다. 손절 위험 100에 순이익 150이면 1.5R입니다. 손절 폭이 다른 전략을 비교할 때 씁니다.

연환산 성장률 (CAGR)

(최종 자산 ÷ 초기자본)^(365 ÷ 분석 일수) − 1을 %로 표시합니다. 같은 속도로 1년 성장했다고 환산한 값입니다. 1년 미만 구간은 수치가 과장될 수 있습니다.

최대 낙폭 (MDD)

미실현 손익을 포함한 자산이 이전 최고점에서 가장 많이 내려간 비율입니다. -20%는 최고 100이었던 자산이 80까지 줄어든 경험입니다. 버텨야 했던 하락을 봅니다.

순손익

완료 거래의 이익과 손실을 모두 더한 금액입니다. 거래 비용을 반영하며, 보유 중인 거래의 평가손익은 제외합니다. 거래 단위 모드는 공통 계좌 잔액을 제한하지 않습니다.

수수료

진입 금액과 청산 금액에 각각 편도 수수료율을 곱해 더한 금액입니다. 슬리피지는 체결 가격에 반영되며 이 수수료 금액에는 포함되지 않습니다.

평균 보유 봉 수

각 거래에서 진입 봉부터 청산 봉까지 센 봉 수의 평균입니다. 실제 시간은 봉 주기를 곱해 대략 비교할 수 있습니다.

최대 연속 손실

청산 순서로 나열한 거래에서 연속으로 손실이 난 최대 횟수입니다. 연달아 손실을 견딜 자금과 계획이 필요한지 확인합니다.

샤프 비율

일별 자산 수익률 평균 ÷ 표준편차 × √365입니다. 무위험수익률은 0으로 가정합니다. 같은 수익을 얼마나 적은 변동으로 냈는지 보며, 짧은 표본에서는 불안정합니다.

소르티노 비율

일별 수익률 평균을 하락 변동폭으로 나누고 √365를 곱합니다. 상승 변동보다 손실 쪽 흔들림에 초점을 맞춰 수익을 비교합니다.

칼마 비율

CAGR ÷ MDD 절댓값입니다. 연환산 수익이 감수했던 최대 하락에 비해 얼마나 컸는지 봅니다. 낙폭이 0이면 계산하지 않습니다.

이 안내는 백테스트 결과를 읽는 방법에 대한 일반 정보이며 투자 자문이 아닙니다. 과거 성과는 미래 수익을 보장하지 않습니다.

내 전략으로 직접 검증하기 →