2026년 10월 8일 · 리서치

시장 가격이 닿지 않았는데 백테스트에서는 왜 지정가 주문이 체결될까요?

시장 가격이 닿지 않았는데 백테스트에서는 왜 지정가 주문이 체결될까요?

실제로 거래 기회가 없었는데도 백테스트에서 지정가 주문이 체결될 수 있습니다. 봉의 저가가 매수 지정가 아래로 내려가면 많은 엔진이 체결로 처리합니다. 하지만 저가가 알려주는 건 보고된 거래 중 적어도 하나가 그 가격 또는 그보다 낮은 가격에서 발생했다는 사실뿐입니다. 거래량이 얼마나 됐는지, 내 앞에 얼마나 많은 주문이 대기 중이었는지, 주문이 제때 제출됐는지는 알 수 없습니다.

이 차이는 전략의 수익 기회가 잦은 수동 체결에 달려 있을 때 특히 중요합니다. 가격이 한 번이라도 닿으면 전량 체결된다고 가정하는 모델은 느긋하게 기다리는 진입을 가상의 알파 원천으로 바꿔버릴 수 있습니다.

봉의 가격이 내 지정가에 닿으면 주문이 체결된 건가요?

아닙니다. 봉에 기록된 가격 범위에 지정가가 포함됐다는 뜻입니다. 주문 체결 가능성은 시장의 호가창, 거래 흐름, 내 대기 순번, 주문이 도착한 시점에 달려 있습니다.

매수 지정가를 $100.00으로 냈다고 가정해 보겠습니다. 봉은 $100.20에서 시작해 저가 $99.98을 기록한 뒤 $100.10에 마감합니다. 내 가격보다 2센트 낮은 가격에 체결된 거래가 있었을 수 있지만, $100.00에 내 앞에 대기 중인 물량이 많고 그 가격에서 거래된 양이 적었다면 내 주문은 체결되지 않았을 수 있습니다. OHLCV 데이터만으로는 그 대기 물량을 확인할 수 없습니다.

또 한 가지 고려할 점은 봉이 시간에 따른 여러 이벤트를 하나로 묶는다는 것입니다. 해당 봉의 종가를 보고 신호를 계산한다면, 봉의 저가가 형성된 시점에 주문이 이미 대기 중이었다고 가정할 수 없습니다. 질문에 답을 줄 이벤트 순서가 봉 하나에 압축돼 있습니다.

OHLCV 데이터로 지정가 체결에 관해 실제로 무엇을 알 수 있나요?

OHLCV 데이터로 일부 체결 가능성을 배제할 수 있고, 다른 체결은 가능성이 있다고 판단할 수 있습니다. 하지만 대기 순번을 확인하거나 내 주문에 돌아올 수량을 보장할 수는 없습니다.

관측 내용확인할 수 있는 점입증할 수 없는 점
봉의 저가가 매수 지정가보다 높음해당 봉에서 보고된 거래 중 지정가에 도달한 거래가 없음주문이 체결됐을 것이라는 점
봉의 저가가 매수 지정가에 닿음지정가에서 가격이 보고됨주문 도착 후 거래량이 발생했다는 점
봉의 저가가 매수 지정가 아래로 내려감해당 가격 또는 그보다 낮은 가격에서 거래가 발생함내 대기 순번까지 충분한 거래량이 도달했다는 점
봉 전체 거래량이 주문 수량보다 많음해당 봉 중 어딘가에서 최소 그만큼의 거래가 발생함주문 도착 후 지정가에서 그만큼 거래됐다는 점

따라서 봉 데이터 기반 엔진에는 체결 가정이 필요합니다. 이 가정은 캔들에서 얻은 사실이 아니라, 무엇을 놓치는지 명확히 알고 써야 하는 모델로 다뤄야 합니다.

백테스트에서 지정가 주문 체결을 어떻게 모델링해야 하나요?

먼저 주문 시점을 정하세요. 신호를 언제 알 수 있는지, 주문이 언제 거래소에 도착하는지, 이후 어떤 시장 이벤트가 주문에 영향을 줄 수 있는지 결정해야 합니다. 봉 마감 시점에 알 수 있는 신호라면, 보수적인 봉 기반 규칙은 다음 봉부터 주문을 체결 가능한 상태로 두는 것입니다.

그다음 가격 기준의 체결 가능 여부와 체결 수량을 구분하세요. 지정가가 거래 가능한 상태가 됐다고 주문 전체가 체결되는 것은 아닙니다. 체결 거래 기록은 있지만 호가창 이력은 없다면, 지정가 또는 더 유리한 가격에서 거래된 거래량이 주문 수량의 몇 배를 넘어야 체결된다고 설정할 수 있습니다. 그 배수는 대기 물량을 감안하기 위한 대략적인 완충치이지 보편적인 상수가 아닙니다. 여러 값을 시험하고 결과가 어떻게 달라지는지 보고하세요.

예를 들어 전략이 2 BTC 매수 지정가를 냈고, 주문이 체결 가능한 상태가 된 뒤 선택한 가격에서 3 BTC가 거래됐다고 해보겠습니다. 조건을 충족하는 거래량이 5 BTC여야 하는 모델에서는 주문이 미체결로 남지만, 거래량 배수를 1.0으로 둔 모델에서는 체결됩니다. 어느 쪽도 실제 대기 순번을 재구성하지는 못합니다. 이 비교를 통해 관측할 수 없는 가정에 전략이 얼마나 의존하는지 알 수 있습니다.

미체결 주문도 시뮬레이션에 남겨두세요. 전략에서 취소할 시점에 주문을 취소하고, 놓친 거래는 놓친 채로 두세요. 지정가에 닿으면 언제나 체결된 것으로 처리하면서 지정가에 닿지 않아 만료된 주문은 무시하면, 체결과 거래 기회 수 모두에 편향이 생깁니다.

호가창 데이터는 언제 필요하나요?

대기 순번이나 부분 체결이 전략의 핵심이라면 호가창 업데이트와 거래 데이터를 사용하세요. 시장 조성, 짧은 시간만 유지되는 수동 호가, 혼잡한 가격대에서 대기 순번 앞쪽을 차지해야 하는 진입이 그런 경우입니다. 그래도 과거 공개 데이터로는 내 정확한 대기 순번을 알 수 없을 수 있습니다. 주문 도착 시점, 내 앞 주문의 취소, 매칭 규칙, 내 주문이 시장에 미치는 영향까지 모델링해야 합니다.

느린 전략에서는 상세한 호가창 데이터가 주요 불확실성을 해소하지 못한 채 복잡성만 더할 수 있습니다. 봉 기반 분석으로도 가격이 닿으면 체결된다는 상한 시나리오와 더 엄격한 거래량 기준 시나리오를 비교할 수 있습니다. 현실적인 체결을 요구하는 순간 겉으로 보이던 엣지가 사라진다면, 그것도 유용한 리서치 결과입니다.

내 결과가 낙관적인 체결 가정에 좌우되는지 어떻게 알 수 있나요?

명시적인 체결 규칙을 몇 가지 정해 동일한 전략을 실행하고, 최종 수익률 외의 지표도 비교하세요. 체결 주문 수, 부분 체결 비율, 주문 대기 시간, 취소 수량, 미체결 후 놓친 가격 움직임, 회전율을 추적하세요. 대표 수익률은 유지되면서도 훨씬 적고 유리한 거래에 의존하는 전략일 수 있습니다.

다음으로 유용한 점검은 페이퍼 트레이딩입니다. 실제 주문 로직을 제출하고 접수 확인, 체결, 취소를 기록하세요. 페이퍼 트레이딩 체결도 거래소나 시뮬레이터 자체 규칙에 좌우되지만, 캔들로는 확인할 수 없는 주문 시점과 처리 방식을 시험할 수 있습니다.

지정가에 닿았다는 것은 가격에 관한 증거입니다. 체결됐다는 말은 주문 실행에 관한 주장입니다. 백테스트에서는 이 둘 사이의 차이를 드러내야 합니다.

지정가 주문백테스팅시장 미시구조체결 모델주문 실행
← 전체 글