백테스트는 정의된 거래 규칙이 특정 실행 모델 아래에서 특정한 과거 관측값 집합에 대해 어떤 결과를 냈을지 묻는 작업입니다. 이 작업은 첫 성과 차트보다 먼저 시작됩니다. 반증될 수 있는 규칙을 작성하고, 각 의사결정 시점에 어떤 가격을 이용할 수 있었는지 확인하고, 가정을 결과 옆에 함께 기록해야 합니다.

“차트가 강해 보이면 매수”는 재현할 수 없습니다. “완료된 시간봉 종가가 직전 20봉 고점 위로 이동하면, 다음으로 이용 가능한 봉 시가에 진입하는 것으로 모델링한다”는 테스트할 수 있을 만큼 구체적입니다. 여기에는 여전히 종료 조건, 시장 정의, 비용, 벤치마크가 필요하지만, 다른 연구자도 어떤 근거가 결론을 바꿀지 판단할 수 있습니다.

시간순 리서치 구간시간순 검증은 과거 데이터를 분할해 미래 평가 구간이 이전 파라미터 선택에 참여하지 않도록 합니다. 다만 이후 정보는 연구자가 같은 판단을 반복하는 데 영향을 줄 수는 있습니다.이전 관측치설정; 여기서 파라미터 추정홀드아웃한 번만 평가이후포워드 리뷰가장 오래된 시점시간 →홀드아웃은 한 가지 형태의 재사용을 줄여줄 뿐, 반복되는 리서치 선택을 없애거나 미래 성과를 보장하지는 못합니다
시간순 검증은 과거 데이터를 분할해 미래 평가 구간이 이전 파라미터 선택에 참여하지 않도록 합니다. 다만 이후 정보는 연구자가 같은 판단을 반복하는 데 영향을 줄 수는 있습니다. 설명용 교육 다이어그램 · 실시간 시장 데이터 아님
암호화폐 전략 백테스트 리서치 워크플로우재현 가능한 백테스트는 반증 가능한 질문과 고정된 규칙으로 시작하며, 데이터와 타임스탬프를 확인하고, 실행 및 비용을 모델링하고, 이후 관측치를 평가한 다음, 실패와 한계를 보고합니다. 워크플로우는 연구자의 선택 편향을 제거하지 않습니다.결과는 그것을 만들어낸 결정만큼만 명확하다질문무엇이 실패할 수 있는가?규칙타이밍 고정데이터출처 + 결측치실행체결 + 비용평가이후 샘플보고한계수정은 근거 추적을 다시 시작합니다 · 반복된 선택은 홀드아웃을 오염시킬 수 있습니다백테스트는 조건부 역사적 리서치이며, 예측이 아닙니다
재현 가능한 백테스트는 반증 가능한 질문과 고정된 규칙으로 시작하며, 데이터와 타임스탬프를 확인하고, 실행 및 비용을 모델링하고, 이후 관측치를 평가한 다음, 실패와 한계를 보고합니다. 워크플로우는 연구자의 선택 편향을 제거하지 않습니다. 설명용 교육 그래픽 · 실시간 시장 데이터 아님

1. 가설과 규칙을 고정합니다

상품과 계약, 거래소 또는 데이터 제공자, 봉 간격, 시간대, 진입 이벤트, 종료 및 무효화 조건, 방향, 수량 규칙, 최대 보유 시간, 벤치마크를 적어 둡니다. 그 규칙이 왜 작동할 수 있는지, 그리고 어떤 패턴이 확인되면 규칙에 반하는 근거가 되는지를 설명합니다. 돌파는 종가가 이전 박스권 안으로 빠르게 되돌아오면 실패할 수 있고, 평균 회귀 규칙은 가격이 평균에서 계속 멀어지면 실패할 수 있습니다.

각 규칙의 날짜가 표시된 버전을 보관합니다. 되돌아보기 기간과 종료 조건을 20가지로 조합해 테스트한다면 20가지를 모두 기록하고, 왜 그렇게 선택했는지도 남깁니다. 대규모 탐색에서 나온 최고 성과 행은 그 설정이 사전에 선택되었다는 근거가 아닙니다. 출판사 페이지에 실린 백테스트 과최적화 확률 논문은 최고 후보를 반복해서 선택하면 표본 내 결과가 이후 성과보다 더 설득력 있어 보일 수 있는 이유를 설명합니다.

2. 각 캔들이 실제로 알려주는 내용을 점검합니다

제공자, 상품, 심볼, 계약 유형, 요청 날짜, 조회 시각, 캔들 간격, 원본 타임스탬프, 거래량 단위, 모든 변환 내역을 데이터셋과 함께 보관합니다. 중복되거나 누락된 구간, 잘못된 고가/저가 값, 갑작스러운 심볼 변경, 조회 시점에 아직 마감되지 않은 마지막 봉이 있는지 확인합니다. 입력값을 재현할 수 있도록 원본 파일이나 안정적인 지문을 보존합니다.

예를 들어 시가 $100, 고가 $108, 저가 $97, 종가 $105인 가상의 시간봉을 가정해 봅니다. 이 규칙은 완료된 종가가 직전 20봉 고점인 $104.50을 넘을 때 진입하는 규칙입니다. 신호는 그 캔들의 종가에서야 알 수 있게 됩니다. 그 종가를 보면서 같은 캔들의 $100 시가에 체결하는 테스트는 나중 정보를 이용해 더 이른 가격을 선택하는 것입니다. 인과적 봉 모델은 다음 봉의 가상 시가 $105.20을 사용할 수 있지만, 그 시가도 보장된 체결이 아니라 가격 대용치로 표시해야 합니다. 봉 내부의 스탑이나 돌파를 다루려면 이벤트 순서를 확립할 수 있을 만큼 세밀한 데이터가 필요합니다.

캔들 종가 신호는 더 늦은 실행 가능한 시점에만 모델링될 수 있습니다가상의 12:00부터 13:00까지의 캔들은 이전 20개 바의 고점 104.50을 돌파하고 105에 마감됩니다. 신호는 13:00에 알려집니다. 도표화된 13:00 시가 105.20은 더 늦은 모델 가격입니다. 12:00 시가 100에 체결하는 것은 완료된 캔들의 정보를 너무 일찍 사용하는 것입니다.신호가 언제 알려지는지 확인하세요 · 가상의 시간봉이전 구간20개 바 고점 · $104.50더 일찍 완료된 바만12:00–13:00 UTC 바시가 $100 · 고가 $108 · 저가 $97종가 $10513:00에 크로스가 확인됨후행 모델 가격13:00 시가 · $105.20가정된 진입 대리값12:00 시가에 체결하면 후행 종가를 너무 일찍 사용하게 됨모든 가격은 가상의 값임 · OHLC는 캔들 내 대기열 위치를 나타내거나 체결을 보장하지 않음
가상의 12:00부터 13:00까지의 캔들은 이전 20개 바의 고점 104.50을 돌파하고 105에 마감됩니다. 신호는 13:00에 알려집니다. 도표화된 13:00 시가 105.20은 더 늦은 모델 가격입니다. 12:00 시가 100에 체결하는 것은 완료된 캔들의 정보를 너무 일찍 사용하는 것입니다. 설명용 교육 그래픽 · 실시간 시장 데이터 아님

Binance Spot의 현행 API 레퍼런스는 GET /api/v3/klines를 명시하고, OHLC와 거래량 필드와 함께 시가와 종가 타임스탬프를 정의합니다. 이 필드들은 보존해야 할 제공자 사실로 취급하고, 조회 시점에 각 캔들이 완료되었는지를 판단합니다. 한 거래소의 데이터가 자동으로 시장 전체의 역사가 되는 것은 아니며, 현물 봉이 무기한 선물 계약을 대신하지도 않습니다. Binance Spot Kline 문서.

3. 모든 중요한 비용을 원장에 넣습니다

진입 및 종료 수수료, 스프레드, 불리한 슬리피지, 해당되는 경우 차입 비용이나 펀딩비, 거래소의 수량 및 가격 단위까지 모델에 반영합니다. 수수료가 어떤 계정 등급과 주문 역할을 가정하는지 명시합니다. 무기한 선물의 경우 각 포지션을 보유 기간 안에 실제로 발생한 펀딩비 정산과 연결하고, 그 타임스탬프와 부호를 사용합니다. 누락된 구간은 알 수 없는 상태로 남으며, 지급액이 0인 것은 아닙니다.

같은 OHLC 캔들이 스탑과 목표를 모두 넘을 때 어떻게 처리할지도 정해야 합니다. 캔들 데이터로는 어느 쪽이 먼저 발생했는지 알 수 없습니다. 보수적인 관례를 적용하거나, 더 세밀한 데이터를 쓰거나, 결과를 모호한 것으로 분류합니다. 그런 다음 비용을 더 높여 테스트를 반복하고, 언제 겉으로 보이는 결과가 더 이상 유지되지 않는지 보고합니다. 설명 없는 “보수적 수수료” 하나로 실행 모델이 현실적이 되지는 않습니다.

4. 규칙 선택과 이후 평가를 분리합니다

더 이른 관측값을 사용해 규칙을 만들고 조정합니다. 조정 전에 연대순으로 한 구간을 따로 남겨 두고, 그 구간이 답하려던 질문에 한 번만 사용합니다. 그 구간을 들여다보고 파라미터를 바꾼다면 이미 사용한 것으로 표시합니다. 반복해서 참조한 홀드아웃은 이제 연구 과정의 일부입니다.

연대순으로 반복한 구간은 더 많은 이력이 쌓일 때 고정된 절차가 어떻게 작동하는지 보여줄 수 있습니다. 워크포워드 테스트에서는 각 경계에서 무엇을 다시 적합화하고 어떤 설정을 고정으로 둘지 정의합니다. Scikit-learn의 현행 TimeSeriesSplit 문서는 확장되는, 시간 순서를 따른 폴드와 샘플 단위로 측정된 선택적 갭을 제공합니다. 또한 테스트 폴드가 비교 가능한 기간을 나타내려면 샘플 간격이 균등해야 한다고 명시합니다. 따라서 누락 구간이 있는 시간봉 크립토 데이터에는 누락 시간 처리 정책이 명시적으로 필요합니다. 갭은 행 개수이므로, 기본값을 그대로 복사하지 말고 자신의 레이블에서 결과 지평과 중첩에 맞게 선택합니다. TimeSeriesSplit 문서.

확장되는 시계열 평가 윈도우와 봉인된 최종 홀드아웃세 가지 예시적인 워크포워드 폴드는 훈련 윈도우를 확장하는 동시에 각 검증 윈도우를 앞으로 이동시킵니다. 별도의 후행 홀드아웃은 선택이 완료될 때까지 봉인된 상태로 유지됩니다. 동일한 바 개수는 관측값이 균등하게 분포될 때만 동일한 경과 시간을 나타냅니다.시간을 따라 전진 · 최종 확인은 봉인된 상태로 유지훈련 · 확장검증 · 다음 윈도우홀드아웃시계열 순서 · 각 검증 결과는 다음 연구 선택 전에 기록됨폴드 1폴드 2폴드 3바 1–45–6바 1–67–8바 1–89–10바 11–12이후 한 번 개방규칙 선택 종료그 후 사용됨으로 표시단순 예시 · 폴드 길이는 규칙 및 평가 질문에 적합해야 함
세 가지 예시적인 워크포워드 폴드는 훈련 윈도우를 확장하는 동시에 각 검증 윈도우를 앞으로 이동시킵니다. 별도의 후행 홀드아웃은 선택이 완료될 때까지 봉인된 상태로 유지됩니다. 동일한 바 개수는 관측값이 균등하게 분포될 때만 동일한 경과 시간을 나타냅니다. 설명용 교육 그래픽 · 실시간 시장 데이터 아님

거래 횟수와 캔들 개수를 함께 추적합니다. 비용 차감 후 순결과, 낙폭 (드로다운) 경로, 최장 연속 손실 구간, 노출 시간, 가장 큰 몇 건의 거래가 기여한 부분을 보고합니다. 두 이벤트가 수익의 대부분을 설명한다면 그 집중도는 결론에 포함되어야 합니다. 동일한 시장, 날짜, 자본 관례를 사용한 벤치마크와 비교합니다.

5. 차트를 믿기 전에 구현을 검증합니다

의도적으로 불리한 점검을 시도합니다. 비용을 높이고, 평가 기간을 이동하고, 파라미터를 약간 흔들고, 누락되거나 변동성이 큰 구간 주변의 개별 거래 기록을 살펴봅니다. 미래 관측값이 이미 고정되었어야 할 신호를 바꿀 수 없는지 확인합니다. 실패한 점검과 부정적 발견도 승리한 차트만이 아니라 실행 기록과 함께 보관합니다.

정확한 전략 버전, 데이터 스냅샷, 설정, 비용 일정, 벤치마크, 결과 원장을 함께 저장합니다. 유용한 마지막 질문은 “이 결과를 더 이상 믿지 않게 만들 요소는 무엇인가?”입니다. 다른 변형을 실행하기 전에 그 답을 적어 둡니다. 이후 점검으로 시각이 바뀌면 원래 기록을 고쳐 쓰지 말고 새 버전을 만듭니다.

과거 테스트 후에는 모의 거래나 사전 관찰로 다른 질문을 점검할 수 있습니다. 예를 들어 규칙을 실제로 따를 수 있는지, 기록된 데이터가 제때 도착하는지 같은 문제입니다. 이런 작업 역시 거래소가 실제 주문을 모델링한 가격에 체결해 줄지는 검증하지 못합니다.

SuperQuant의 내장 백테스트 이력은 합성 데이터입니다. 시간봉 리서치 워크플로와 원장은 소프트웨어가 규칙을 어떻게 적용하는지 점검하는 데 도움이 되지만, 엔진의 단순화된 실행 및 증거금 가정은 모든 거래소의 호가창 깊이, 부분 체결, 청산 구간을 재현하지 못합니다. 합성 캔들에 대한 반복 가능한 실행은 소프트웨어 리허설이며, 크립토 시장의 결과가 아닙니다.

백테스트 점검 체크리스트를 사용한 다음, 데이터 품질, 비용 민감도, 과최적화 가이드를 읽어 보세요. 이는 리서치 방법이며, 투자 권유나 미래 수익성에 대한 주장이 아닙니다.