백테스팅 소프트웨어 도구들은 동일한 매매 아이디어에 대해서도 서로 다른 결과를 산출할 수 있습니다. 각 소프트웨어가 서로 다른 데이터 소스, 보조지표 계산 타이밍, 주문 체결 시뮬레이션 및 거래 비용 가정을 채택하고 있기 때문입니다. 가장 가파르게 치솟는 수익 곡선을 비교하기보다 이러한 세부 선택 사항들을 직접 검사하고 투명하게 재현할 수 있는지 질문함으로써 소프트웨어를 선택해야 합니다. 백테스트는 과거에 대한 수학적 모델일 뿐이며, 그 결과가 미래의 전략 수익성을 보장하거나 실전 거래소가 동일한 방식으로 주문을 체결해 줄 것임을 입증하지는 못합니다.
통제된 소규모 테스트 팩으로 시작하기
다양한 기능들을 피상적으로 비교하기 전에 작고 확정된 연구 사양을 하나 작성하십시오. 대상 시장 및 계약, 데이터 간격 및 분석 기간, 신호 발생 규칙, 주문 실행 타이밍, 포지션 크기, 수수료 및 펀딩비가 그것입니다. 입력 캔들 데이터와 전략 버전을 저장하십시오. 가능한 한 각 소프트웨어 후보군에서 동일한 데이터 파일과 설정값을 사용하고, 정확한 일치를 방해하는 변환 사항이 있다면 기록하십시오.
| 평가 영역 | 핵심 검증 질문 | 보존해야 할 객관적 증거 |
|---|---|---|
| 데이터 품질 | 데이터 제공자, 시장 유형, 타임스탬프, 시간대, 결측치 및 합성 데이터 행을 식별할 수 있는가? | 출처, 수집 날짜, 데이터 커버리지, 원시 추출 파일 또는 고유 지문(해시) |
| 신호 타이밍 | 의사결정 규칙이 그 당시 가용한 정보만을 바탕으로 평가되는가? 주문이 최초로 체결될 수 있는 시점은 언제인가? | 신호 발생 타임스탬프, 봉 마감 규약, 최초 진입 타임스탬프 |
| 주문 체결 | 가격 갭, 부분 체결, 지연된 시세 또는 손절가와 목표가를 동시에 건드리는 봉에서 어떻게 동작하는가? | 주문 이벤트 로그, 체결 모델링 규약, 모호한 캔들에 대한 처리 정책 |
| 비용 및 계약 | 수수료 등급, 스프레드, 슬리피지, 펀딩비 정산, 틱 단위 크기, 증거금 및 청산 가정이 명시적인가? | 설정값 및 비용 원장 내역. 알 수 없는 항목은 미모델링으로 명시 |
| 재현 가능성 | 정확히 동일한 전략, 입력 데이터 및 엔진 버전으로 재실행하여 검사할 수 있는가? | 전략 버전, 입력 데이터 지문, 설정 파일, 상세 거래 원장 |
누락된 결측치는 눈에 띄게 드러나야 합니다. 펀딩비 데이터가 없을 때 이를 조용히 0으로 처리하는 도구는 해당 현금 흐름을 명시적으로 배제하고 라벨을 붙이는 도구와 완전히 다른 가정을 내리는 것입니다. 결과를 비교하기 전에 현물, 만기 선물 또는 무기한 선물 계약의 고유한 의미 구조를 확인하십시오. 이들 상품은 동일한 펀딩비나 증거금 모델을 공유하지 않습니다.
실패할 수 있는 4가지 필수 점검 테스트
- 타이밍 검증: 직접 눈으로 확인할 수 있는 짧은 캔들 시퀀스를 생성하십시오. 신호가 확정되는 시점과 엔진이 사용하는 다음 가격을 기록하십시오. 가격 갭을 인위적으로 추가하여 선택한 모델 하에서 손절 주문이 원래 가격선에서 체결되는지, 아니면 가용한 더 나쁜 가격에서 체결되는지 확인하십시오.
- 모호성 검증: 고가와 저가가 손절가와 목표가를 모두 교차하는 캔들을 포함하십시오. OHLC 봉 자체만으로는 어느 가격에 먼저 도달했는지 규명할 수 없습니다. 유용한 도구는 체결 시퀀스 규칙을 투명하게 공개하거나 결과를 모호한 상태로 표시해야 하며 특정 경로를 관찰된 사실인 것처럼 조용히 제시해서는 안 됩니다.
- 미래 참조(룩어헤드) 금지 검증: 특정 실행을 동결한 후 이후 캔들을 추가하십시오. 미래 행이 추가되었다고 해서 이전의 신호나 주문 이벤트가 소급해서 변경되어서는 안 됩니다. 이전 표본 끝에서 아직 열려 있던 포지션은 나중에 청산 신호를 받을 수 있습니다. 이전 신호가 변한다면 룩어헤드 편향, 데이터 소급 수정, 또는 조사가 필요한 상태 저장형 규칙의 오류를 의미합니다.
- 재실행 및 비용 검증: 동일한 동결 입력을 반복 실행한 후 한 번에 하나의 가정만을 변경하십시오. 동일 입력 실행이 완벽히 재현되는지 확인하고 추가된 수수료, 펀딩비 또는 슬리피지가 원장에 정확히 1회만 반영되는지 검증하십시오. 더 매력적인 결과만 남기지 말고 두 실행 기록을 모두 보존하십시오.
소규모 반증 테스트 팩 실행하기
어떤 정보가 가용하고 엔진이 무엇을 공개해야 하는지 이미 정답을 알고 있는 소수의 데이터 행을 사용하십시오. 대규모 전략 탐색에 불필요한 시간을 낭비하기 전에 숨겨진 가정을 드러내는 것이 목적입니다.
- 종가 확정 신호: 신호가 캔들의 최종 종가에 의존하도록 설정하십시오. 해당 종가를 알 수 있는 정확한 시점과 엔진이 허용하는 최초의 모델링된 체결 시점을 기록하십시오. 더 이른 체결은 명시적인 대체 데이터나 주문 메커니즘을 요구합니다. 캔들에 붙은 라벨만으로는 체결의 증거가 될 수 없습니다.
- 손절선 관통 갭: 손절가를 $95로 설정하고 다음 관측 시가가 $92에서 시작하도록 만드십시오. 모델이 손절 레벨에서 체결되는지, 다음 가용 가격에서 체결되는지, 아니면 문서화된 다른 규칙을 따르는지 확인하십시오. 모든 도구가 동일한 숫자를 출력할 때가 아니라 선택된 동작이 명확히 드러나고 문서화된 주문 모델과 일치할 때 테스트를 통과한 것입니다.
- 단일 봉 내 손절과 목표가 동시 도달: 캔들의 고가-저가 범위 내에 손절가와 목표가를 동시에 배치하십시오. OHLC 데이터만으로는 어느 가격이 먼저 도달했는지 알 수 없습니다. 소프트웨어는 가정된 체결 순서를 공개하거나 가용한 더 정밀한 데이터를 활용하거나 결과를 모호함으로 표시해야 합니다.
- 누락된 캐리 비용: 특정 기간의 펀딩비 관측치를 삭제하십시오. 소프트웨어가 “알 수 없음”으로 보존하는지, 경고와 함께 누락된 현금 흐름을 제외하는지, 아니면 공개된 대체 방식을 적용하는지 확인하십시오. 누락된 데이터를 0원의 비용으로 조용히 둔갑시키는 것은 연구 질문 자체를 변질시킵니다.
- 정확한 재실행 일치성: 동일하게 저장된 데이터, 전략 규칙, 엔진 버전 및 설정값으로 재실행하십시오. 매매 이벤트와 원장 합계를 비교하십시오. 그런 다음 이후 봉들을 추가하고 이전의 종료된 이벤트들이 변경되지 않는지 확인하십시오. 원래 기준 시점의 오픈 포지션은 나중에 정상적인 청산을 맞이할 수 있습니다.
각 테스트의 입력 파일, 기대 동작, 관측된 출력 결과, 버전 및 최종 결정을 보관하십시오. 결과를 검증됨(verified), 설정 가능(configurable), 제한적(limited) 또는 **문서화되지 않음(not documented)**으로 기록하십시오. 이러한 라벨들을 단순 평균하여 단일 제품 점수로 환산하지 마십시오. 문서화되지 않은 가격 갭 체결 규칙의 결함은 화려하게 다듬어진 차트로 상쇄될 수 없습니다. 마찬가지로 단순한 장난감 테스트 하나에 실패했다고 해서 제품 전체가 무용지물이라는 뜻은 아니며 차이점을 재현하고 이해하라는 신호입니다.
주문 시뮬레이션은 소프트웨어의 공학적 선택일 뿐 “현실적”이라 불리는 보편적 속성이 아닙니다. TradingView의 최신 Pine Script v6 문서는 차트 데이터로부터 체결하고 과거 봉에서 봉 내부 가격 경로를 가정하는 브로커 에뮬레이터를 설명합니다. 바 돋보기(Bar Magnifier) 기능은 가용한 경우 하위 타임프레임 봉을 활용할 수 있습니다. QuantConnect의 최신 체결 모델 문서는 기본 백테스트 체결 모델이 전량 체결을 가정하며 지연된 시세 동작을 어떻게 다루는지 기술합니다. 이들은 플랫폼 고유의 예시일 뿐 우열 순위가 아닙니다. 검토 중인 정확한 제품, 버전 및 설정에 대한 모델 문서를 꼼꼼히 읽어야 하는 이유를 보여줍니다.
객관적 근거를 먼저 비교하고, 그 다음에 평가 점수를 매겨라
두 도구의 결과가 불일치한다면 거래 원장에서 처음으로 달라지는 행을 찾아 비교하십시오. 신호 시각, 주문 시각, 체결 가격, 수량, 수수료, 펀딩비 또는 청산 사유가 그것입니다. 겉보기 총수익률을 보기 전에 데이터와 체결 가정을 먼저 확인하십시오. 입력 데이터가 동일하더라도 엔진이 서로 다른 규칙을 구현하고 있다면 결과가 반드시 일치할 필요는 없습니다. 목표는 차이의 원인을 규명하고 각 모델이 연구 질문에 적합한지 판단하는 것입니다.
사후 평가용 홀드아웃 기간은 해당 데이터를 확인한 후 내린 의사결정들이 정직하게 기록될 때만 가치를 갖습니다. 동일한 “때 묻지 않은” 데이터를 상대로 반복적으로 튜닝을 수행하면 그 데이터는 결국 또 하나의 연구용 표본으로 전락합니다. 백테스트 과최적화 확률(PBO) 논문은 단순한 홀드아웃 분할이 반복적인 전략 선택 편향을 완전히 통제하지 못하는 이유를 설명합니다. 채택된 변형뿐만 아니라 폐기된 전략 변형들의 변경 로그도 보존하십시오. 소프트웨어가 뽑아낸 가장 우수한 단일 실행 결과를 독립적인 근거로 오인해서는 안 됩니다.
마지막으로 최신 벤더 약관에서 보안 정책, 데이터 추출, 계좌 권한, 가격 정책 및 데이터 보관 기간을 검토하십시오. 읽기 전용 공용 시장 데이터 연결, 가상의 모의 주문, 개인키로 서명된 실전 주문은 완전히 다른 차원의 권한입니다. 단순히 차트를 확인하거나 과거 데이터를 재생하기 위해 자금 이동이 가능한 서명 키를 소프트웨어에 절대 제공하지 마십시오.
SuperQuant 엔진은 시간별 백테스트를 실행하며 별도의 모의 거래 워크플로우는 수동으로 이루어집니다. 번들로 제공되는 샘플 과거 데이터는 합성 데이터입니다. 체결 및 증거금 계산은 단순화된 모델이며 실제 거래소의 공인을 받은 것이 아니고 실전 주문을 제출하지 않습니다. 이러한 한계는 본 제품의 명확한 경계이며 우월성을 주장하는 것이 아닙니다. 백테스트 튜토리얼, 비용 가이드 및 데이터 품질 가이드를 참조하여 관련 가정들을 점검하십시오. 본 가이드는 교육 목적이며 특정 제품에 대한 보증이나 투자 권유가 아닙니다.