전략 코드 한 줄도 바뀌지 않았는데 옵션 백테스트 결과가 달라질 수 있습니다. 공급업체가 잘못된 호가를 정정하거나, 늦게 들어온 거래를 추가하거나, 계약 메타데이터를 수정하거나, 교차 시장 필터를 바꿀 수 있습니다. 같은 날짜를 다시 실행했는데 체결도, 포지션도, 어쩌면 Sharpe도 달라집니다. 그렇다고 반드시 전략에 버그가 있다는 뜻은 아닙니다. 전략을 검증한 근거 데이터가 달라진 것입니다.
옵션 백테스트를 재현 가능하게 만들려면 시장 데이터를 버전이 있는 입력값으로 다루세요. 사용한 스냅샷을 기록하고, 각 의사결정의 근거가 된 원시 관측값을 보존하고, 새 집계 결과를 신뢰하기 전에 계약과 타임스탬프 단위로 달라진 결과를 비교하세요.
코드는 그대로인데 옵션 백테스트 결과가 왜 바뀌었을까요?
옵션 데이터는 여러 필드가 함께 움직여야 계약의 거래 가능성이 제대로 드러나기 때문에 정정에 특히 민감합니다. 매수호가, 매도호가, 수량, 기초자산 가격, 만기, 행사가, 계약 승수 또는 인도 조건이 여기에 포함됩니다. 호가 하나를 정정하면 거래 기회처럼 보이던 상황이 교차 시장으로 바뀔 수 있습니다. 메타데이터를 수정하면 포지션의 승수가 의미하는 바가 달라질 수 있습니다.
매도호가가 $2.00 미만일 때 콜을 매수하는 전략을 생각해 보세요. 첫 데이터 로드에서는 10:14 호가가 매도호가 $1.95, 매수호가 $1.90, 수량 5였습니다. 이후 공급업체가 지연된 거래소 메시지를 대조한 뒤 매도호가를 $2.05로 수정합니다. 관측값 하나로 신호가 바뀝니다. 그 계약이 그날 전략의 유일한 거래였다면, 작은 데이터 정정만으로도 당일 수익률이 크게 달라질 수 있습니다.
호가 필터링도 중요합니다. 공급업체는 오래된 호가를 버리거나, 교차 시장을 제거하거나, 타임스탬프를 다른 방식으로 정규화할 수 있습니다. 이런 정책은 합리적일 수 있지만 데이터셋의 정체성을 이루는 요소입니다. “1월부터 3월까지의 SPY 옵션”이라는 설명만으로는 재현 가능한 과거 데이터가 정해지지 않습니다.
옵션 데이터 빈티지란 무엇인가요?
데이터 빈티지는 특정 리서치 실행에서 이용할 수 있었던 과거 관측값의 정확한 버전입니다. 공급업체와 데이터셋 이름, 조회 시각, 날짜 범위, 스키마 버전, 정제 또는 필터링 규칙을 보관하세요. 공급업체가 스냅샷 ID나 수정 타임스탬프를 제공한다면 그것도 저장하세요.
모의 의사결정마다 어떤 계약을 검토했는지, 어떤 호가를 선택했는지, 해당 호가가 언제 게시되거나 수신됐는지, 어떤 규칙에 따라 적격 판정을 받았는지 답할 수 있도록 계보 정보를 충분히 남기세요. 원시 레코드와 파생 레코드가 모두 중요합니다. 출처 타임스탬프가 없는 정제된 NBBO만으로는 호가가 오래된 것이었는지, 모의 의사결정 이후에 도착한 것인지 알기 어려울 수 있습니다.
| 보존할 항목 | 중요한 이유 | 예시 |
|---|---|---|
| 원본 스냅샷 | 실행에 사용한 과거 데이터를 식별합니다 | 공급업체 수정 ID와 조회 타임스탬프 |
| 호가 출처 정보 | 선택한 시장 데이터를 설명합니다 | 거래소, 이벤트 시각, 수신 시각, 매수·매도호가와 수량 |
| 계약 조건 | 옵션이 무엇을 나타내는지 정의합니다 | 행사가, 만기, 승수, 인도 조건 |
| 정제 정책 | 제외된 관측값을 확인할 수 있습니다 | 오래된 호가 판정 기준과 교차 호가 처리 방식 |
공급업체의 수정이 결과를 바꿨는지 어떻게 확인할까요?
같은 전략과 설정으로 두 스냅샷을 각각 실행하세요. 먼저 날짜별 적격 관측값과 계약 수를 비교합니다. 그런 다음 의사결정과 체결을 비교하세요. 어떤 신호가 새로 나타나거나 사라졌는지, 어떤 호가가 바뀌었는지, 새 레코드가 모형상 체결 가격을 바꿨는지 확인합니다.
총수익률만 보고 끝내지 마세요. 거래 수, 진입 및 청산 가격, 거부된 신호, 한쪽 빈티지에만 존재하는 거래에서 발생한 손익 비중을 추적하세요. 개별 거래가 교체되는 동안에도 Sharpe는 비슷하게 유지될 수 있습니다. 요약 통계만으로는 그 밑에 있는 과거 데이터가 바뀌었다는 사실을 알 수 없습니다.
유용한 감사를 위해 전략, 수수료, 체결 가정을 고정하세요. 여러 요소가 한꺼번에 바뀌면 차이가 공급업체의 정정 때문인지 자체 실험 때문인지 알 수 없습니다.
항상 가장 최신 옵션 과거 데이터를 사용해야 할까요?
공급업체가 현재 제공하는 최선의 재구성 데이터를 바탕으로 작업하려는 경우 최신 데이터를 사용하세요. 이전 결과를 재현하거나 당시 리서치 시스템이 알고 있던 정보를 파악해야 한다면 기존 스냅샷을 보관하세요. 두 방식은 서로 다른 질문에 답합니다.
시점별 리서치에서는 정정된 레코드가 현재 더 정확하더라도 당시 전략에는 이용할 수 없었을 수 있습니다. 가능한 경우 게시 시각과 수신 시각을 보존하고, 그렇지 않으면 한계를 명확히 표시하세요. 현재 시점의 재구성이 과거의 정보 집합과 자동으로 같아지는 것은 아닙니다.
옵션 백테스트 결과가 바뀌면 먼저 “어떤 관측값이 바뀌었나?”라고 물어야 합니다. “어느 실행 결과가 맞나?”라는 질문은 그에 답한 다음에 해야 합니다.
백테스트마다 무엇을 저장해야 할까요?
결과와 함께 간결한 매니페스트를 저장하세요. 데이터 제공업체와 스냅샷, 조회 시각, 스키마 및 정제 버전, 계약 메타데이터 출처, 전략 커밋, 체결 가정, 실행 설정을 기록합니다. 각 거래에서 근거가 된 호가 레코드로 이어지는 링크도 남기세요.
이 작은 기록만 있어도 수수께끼 같던 재실행 결과를 직접 살펴볼 수 있는 차이점으로 바꿀 수 있습니다. 옵션 과거 데이터는 계속 정정될 것입니다. 리서치 과정에서 각 정정 사항을 드러내면 더 나은 아카이브가 근거를 개선하면서도 실험 내용을 조용히 바꾸지 않습니다.
← 전체 글


