고정된 시장 데이터 스냅샷만으로는 백테스트를 신뢰할 수 없습니다. 같은 결과를 재현하더라도 그 결과를 만든 입력값이 공급업체에 의해 바뀌었다는 사실은 감출 수 있습니다.
스냅샷은 보관하세요. 그리고 무엇이 언제 바뀌었으며 전략이 그 변화에 영향을 받았는지 알려주는 변경 로그도 남기세요. 수정된 체결 데이터, 개정된 펀더멘털, 재구성된 펀딩 데이터, 또는 공급업체가 조용히 갱신한 과거 데이터를 리서치에 활용한다면 특히 중요합니다.
재현 가능한 백테스트도 왜 오해를 불러일으킬 수 있을까요?
월요일에 5년 치 시간봉 데이터를 내려받아 전략을 실행한다고 가정해 보겠습니다. 금요일에는 공급업체가 잘못된 체결 데이터를 수정하거나, 기업 행사를 반영하거나, 누락 구간을 채웠습니다. 저장해 둔 파일은 여전히 월요일의 결과를 정확히 재현합니다. 재현성은 있는 셈입니다. 하지만 공급업체의 최신 데이터를 받아 다시 실행하면 결과가 달라질 수 있고, 왜 달라졌는지 기록이 없을 수도 있습니다.
문제는 대대적인 수정에만 국한되지 않습니다. 고가 하나만 바뀌어도 스톱이 발동할 수 있고, 수정된 종가 하나가 지표를 임계값 너머로 이동시킬 수 있습니다. 넓은 종목군에서는 한 종목의 과거 데이터가 바뀌어 순위가 달라지고 다른 자산이 포트폴리오에서 밀려날 수도 있습니다. 전략 코드와 설정이 같아도 최종 Sharpe가 달라질 수 있습니다.
파일 해시는 두 파일이 서로 다르다는 사실만 알려줍니다. 주식 분할 조정으로 40년 치 가격이 바뀌었는지, 공급업체가 체결 3건을 수정했는지, 파서가 빈 필드를 0으로 바꿨는지는 알 수 없습니다.
시장 데이터 변경 로그에는 무엇을 기록해야 할까요?
리서치에서 영향을 받은 부분을 다시 실행할 수 있도록 충분한 맥락을 담아, 유용한 최소 단위로 변경 사항을 기록하세요. 봉 데이터 피드라면 보통 종목, 구간, 이벤트 시각, 이전 값과 새 값, 출처, 그리고 업데이트를 확인한 시각을 기록하면 됩니다. 공급업체가 원본 페이로드를 제공한다면 그것도 보관하세요.
| 기록 항목 | 기록하는 이유 | 예시 |
|---|---|---|
| 출처 버전 또는 조회 시각 | 사용한 공급업체 데이터 상태를 식별합니다 | 스냅샷 조회 시각 2026-11-02 08:15 UTC |
| 변경 필드와 이전 값/새 값 | 실제로 무엇이 바뀌었는지 보여줍니다 | ETHUSDT 1h 고가: 3,412.10 → 3,418.60 |
| 변경 유형 | 데이터 수정과 변환을 구분합니다 | 지연 도착 체결 정정, 분할 조정, 백필 |
| 파이프라인 및 스키마 버전 | 출처의 수정과 자체 처리 과정의 변경을 구분합니다 | Normalizer v7, adjusted-bar schema v3 |
대규모 데이터셋은 불변 스냅샷을 저장하고 체크섬, 출처 버전, 조회 시각을 담은 간결한 매니페스트를 함께 보관하세요. 바뀐 파티션에는 행 단위 차이 정보를 추가하세요. 이렇게 하면 변경되지 않은 모든 행을 별도의 감사 테이블에 다시 쓰지 않아도 전체 재실행이 가능한 실용적인 방식을 갖출 수 있습니다.
수정 사항이 중요한지 어떻게 측정할까요?
변경된 행의 개수를 세는 데서 그치지 마세요. 동일한 코드, 매개변수, 수수료, 체결 가정을 적용해 이전 데이터와 새 데이터로 영향을 받은 전략을 다시 실행하세요. 의사결정과 결과에 이르는 경로를 비교하세요.
- 차이 정보를 바탕으로 영향을 받은 종목과 이벤트 시각을 찾습니다.
- 해당 레코드를 사용하는 피처, 시그널, 주문 또는 포트폴리오 비중을 확인합니다.
- 룩백 기간과 미결 포지션 상태를 포함해 유효한 최소 구간을 다시 실행합니다.
- 주문, 체결, 익스포저, 회전율, 낙폭, 최종 성과를 비교합니다.
예를 들어 공급업체가 1-minute 고가를 $0.02 수정해 백만 개 행에 영향을 줘도 일간 모멘텀 전략의 결과는 달라지지 않을 수 있습니다. 스톱 가격에 해당하는 봉 하나의 수정은 더 큰 영향을 줄 수 있습니다. 변경된 레코드 수는 의사결정에 미친 영향을 가늠하기에 적절하지 않으므로, 의사결정의 변화를 측정하세요.
다음 두 질문은 따로 다루세요. “저장한 데이터로 결과를 재현할 수 있는가?” 그리고 “당시 이 데이터 버전을 전략이 이용할 수 있었는가?” 변경 로그는 두 질문에 모두 답하는 데 도움이 되지만, 두 번째 질문에는 시점별 이용 가능성 기록도 필요합니다.
비용은 얼마나 들며, 언제 도입할 가치가 있을까요?
변경 추적에는 저장 공간, 수집 작업, 운영상의 판단이 추가로 필요합니다. 공급업체가 안정적인 버전을 제공하지 않을 수 있고, 일부 과거 데이터 피드는 명확한 수정 안내 없이 주기적으로 재구축됩니다. 관측하지 못한 변경은 기록할 수 없습니다.
리서치 결론을 바꿀 수 있는 데이터부터 시작하세요. 스톱 로직에 쓰이는 봉 데이터, 기업 행사 조정이 반영된 주식 데이터, 시점별 펀더멘털, 재구성되는 펀딩 또는 미결제약정 시계열이 여기에 해당합니다. 범위가 넓고 안정적인 데이터셋에는 일간 매니페스트와 파티션 체크섬만으로 충분할 수 있습니다. 업데이트가 잦거나 개별 레코드에 따라 매매 결정이 달라지는 데이터에는 필드 단위 차이 정보를 추가하세요.
모든 공급업체 응답을 빠짐없이 영구 보관하면 비용이 커질 수 있고, 당시 출처가 알고 있던 정보까지 담지 못할 수 있다는 비판은 타당합니다. 중요한 데이터와 의사결정에 맞춰 감사 범위를 정하고, 기록의 공백을 문서화하세요. 스냅샷으로 실험을 다시 실행할 수 있습니다. 변경 로그로는 실험 결과가 달라진 이유를 설명할 수 있습니다.
← 전체 글


