2026년 10월 12일 · 리서치

잘못된 계약을 매수한 예측 시장 백테스트를 해부했습니다

잘못된 계약을 매수한 예측 시장 백테스트를 해부했습니다

예측 시장 백테스트는 겉보기엔 맞는 티커와 맞는 가격 이력을 사용하면서도 실제로는 다른 계약을 대상으로 거래할 수 있습니다. 시장 이름이 짧고, 이벤트 페이지가 수정되기도 하며, YES 지분은 언제나 0과 1 사이의 가격으로 보이기 때문에 이런 실수는 쉽게 지나칠 수 있습니다.

가상의 “청정 대중교통법이 통과될까?” 시장을 생각해 봅시다. 전략은 뉴스 신호가 나온 뒤 0.42에 YES를 매수합니다. 백테스트는 나중에 포지션을 1.00으로 평가합니다. 이 수익을 믿기 전에 계약이 정확히 무엇을 약속했는지 확인하고 싶습니다. 어떤 법안인지, 무엇을 “통과”로 볼지, 마감 시점은 언제인지, 어떤 출처를 기준으로 정산하는지 말입니다.

제목: “청정 대중교통법이 통과될까?”

제목은 화면에 표시되는 문자열이지, 변하지 않는 금융상품 식별자가 아닙니다. 표현이 거의 같은 두 시장도 서로 다른 회기, 수정된 법안, 또는 다른 마감 시점을 가리킬 수 있습니다. 거래소는 기초 조건을 바꾸지 않고도 시장 제목을 수정해 내용을 명확히 할 수 있습니다.

따라서 백테스트에서는 거래소의 변경 불가능한 시장 또는 계약 ID를 기준으로 포지션을 식별하고, 전체 규정 문구와 그 버전을 보관해야 합니다. 과거 데이터에 제목과 티커만 있다면 가격 시계열이 전략에서 거래하려던 계약에 속하는지 확인할 수 없습니다.

식별 필드확인되는 내용누락 시 발생하는 문제
거래소 및 시장 ID상장된 특정 시장비슷한 제목의 시장이 한데 묶임
규정 버전참여자들이 동의한 조건나중에 수정된 내용이 이전 거래에 적용됨
결과 토큰 ID거래 대상인 YES 또는 NO 청구권YES와 NO 가격이 뒤바뀌거나 합쳐짐
정산 출처결과를 판정할 때 쓰는 증거백테스트가 다른 판정 주체를 가정함

규정: “통과”는 무엇을 뜻할까?

규정에 따르면 법안은 6월 30일까지 하원과 상원을 통과한 뒤 대통령의 서명을 받아야 한다고 가정해 봅시다. 하원이나 상원 중 한 곳만 통과해도 성공으로 처리하는 백테스트는 베팅 조건을 바꾼 것입니다. 다음 회기에 같은 이름의 법안이 통과된 경우를 성공으로 치는 것도 마찬가지입니다.

실제 정산 기준을 실행 가능한 조건으로 읽어야 합니다. 마감 시점과 시간대, 조건을 충족하는 이벤트, 예외 사항, 명시된 정산 출처를 기록하세요. 모호성도 중요합니다. 거래소 규정으로 가능한 시나리오를 판정할 수 없다면, 과거 결과에 맞는 해석을 조용히 선택해서는 안 됩니다.

이 작업에는 눈에 띄지 않지만 아주 중요한 부분이 있습니다. 흥미로운 일이 일어나기 전에 규정 페이지를 저장해 두는 것입니다. 정산 후에만 저장한 페이지에는 최종 문구만 남아 있을 수 있지만, 전략이 진입했을 때는 이전 버전이 적용되었을 수 있습니다.

타임라인: 전략은 언제 정보를 알 수 있었을까?

규정에 문제가 없고 뉴스 신호가 14:05 UTC에 발생했다고 가정해 봅시다. 과거 피드에는 14:05에 0.42 가격으로 거래가 있었다고 나옵니다. 하지만 이 타임스탬프만으로는 거래 전에 정보가 공개되었는지, 기록된 가격으로 그 이후에 체결할 수 있었는지, 또는 해당 바가 호가인지 거래인지 일정 구간의 요약값인지 알 수 없습니다.

신호를 알 수 있었던 시각과 시장 이벤트 시각은 따로 기록하세요. 그런 다음 전략이 신호를 계산하고 주문을 제출할 수 있었던 시점 이후에 주문을 배치합니다. 유동성이 낮은 시장에서는 다음 거래 기록까지 몇 분이 걸릴 수 있습니다. 그 가격에 주문이 체결됐으리라는 증거는 아닙니다.

가격: 호가는 체결이 아닙니다

0.42의 YES는 지분당 42센트라는 뜻이지만, 최종 거래 가격만 기록한 시계열에는 스프레드와 가용 수량이 드러나지 않습니다. 최우선 매도호가가 20주에 0.45라면 100주 매수 주문 전체를 0.42에 체결할 수 없습니다. 주문이 호가창을 따라 가격대를 높이며 체결되거나, 대기하거나, 미체결로 남을 수 있습니다.

예측 시장 가격을 보면 회계상 편법을 쓰고 싶어지기도 합니다. 0.42를 42% 확률로만 보고 진입에 필요한 현금이라는 점을 잊는 것입니다. YES 100주 포지션을 매수하려면 수수료 전 $42가 듭니다. YES로 정산되면 총 수령액은 $100이고, NO로 정산되면 0입니다. 수수료, 부분 체결, 거래소별 정산 방식도 거래 원장에 반영해야 합니다.

$420.42에 YES 100주 매수 시 총비용
$100YES로 판정될 경우의 총 정산 금액
$0NO로 판정될 경우의 총 정산 금액

정산: 무엇이 거래를 마무리할까?

백테스트는 흔히 마지막 시장 가격으로 포지션을 종료합니다. 하지만 만기까지 보유하는 계약은 규정에 따라 지급되며, 마지막 호가 가격은 오래된 값이거나 스프레드가 넓거나 최종 지급액과 크게 다를 수 있습니다. 정산은 별도의 이벤트로 모델링하세요. 결과, 정산 시각, 현금 이동은 계약 기록을 기준으로 해야 합니다.

거래소 규정에 무효 또는 분쟁 결과가 정의되어 있다면 그 경우도 반영해야 합니다. 이런 결과에서는 베팅 금액이 반환되거나, 다른 금액이 지급되거나, 정산이 지연될 수 있습니다. 이진 지급만 가정해서는 모든 정산 경로를 표현할 수 없습니다.

백테스트에 대한 결론

이 사례에서 보고된 수익을 인정하려면 변경 불가능한 시장 ID, 진입 시점에 유효했던 규정 버전, YES 토큰, 신호를 알 수 있었던 시각, 실제 체결 가능한 매도호가와 수량, 수수료, 기록된 정산 결과를 모두 대조해야 합니다. 가격 보관 자료로 이런 검증을 할 수 없다면 정직한 결과는 시나리오별 범위나 검증되지 않은 결과입니다.

소액 거래 하나에 지나치게 엄격한 기준처럼 들릴 수 있습니다. 같은 조인 실수가 수천 개 시장에서 반복되면 백테스트는 전략이 한 번도 거래하지 않은 계약을 정밀하게 측정하는 결과가 될 수 있습니다.

예측 시장백테스트시장 데이터체결
← 전체 글