취소했는데 왜 선물 주문이 체결됐을까요?
선물 취소 요청과 실제 취소 확인이 왜 다른지, pending cancel과 체결이 경합할 수 있는 이유, 대체 주문 전 확인할 기록을 설명합니다.
한눈에 답하기
취소 버튼을 누르면 취소 요청이 전송될 뿐 주문이 이미 사라졌다는 뜻은 아닙니다. 거래소가 Cancelled 상태를 확인하기 전에는 잔량 상태를 계속 검산해야 하며 취소가 최종 확정되기 전에 체결이 발생할 수 있습니다.
Pending cancel과 Cancelled는 다른 상태입니다
CME Globex 문서는 Pending Cancel Confirmation과 Cancelled를 구분합니다.
Pending Cancel Confirmation은 취소 요청을 플랫폼이 받았지만 거래 엔진이 아직 취소를 확인하지 않은 상태입니다.
Cancelled는 요청이 성공적으로 처리돼 주문이 주문장에서 제거된 상태입니다.
"체결 전에 취소했다"는 상황을 볼 때 가장 먼저 이 차이를 확인해야 합니다.
중요한 것은 클릭한 시각만이 아닙니다.
거래소가 확인한 주문 상태가 중요합니다.
빠른 시장에서는 메시지 순서가 경합할 수 있습니다
매도 지정가 5계약이 대기 중이라고 하겠습니다.
5계약이 모두 working일 때 취소를 누릅니다.
취소가 확인되기 전에 호환되는 매수 유동성이 주문에 도달합니다.
먼저 2계약이 체결되면 계좌에는 이미 2계약의 완료된 거래가 생깁니다.
이후 살아 있는 잔량 3계약에 대해 취소가 성공적으로 처리될 수 있습니다.
나중에 도착한 취소 확인이 앞선 체결을 없애지는 않습니다.
부분 체결은 최종 상태를 오해하기 쉽게 만듭니다
원래 주문이 10계약이라고 하겠습니다.
취소 처리 전후로 3계약이 체결됩니다.
최종 기록은 다음처럼 될 수 있습니다.
최종 "Cancelled" 라벨만 보면 아무것도 거래되지 않았다고 잘못 생각할 수 있습니다.
최종 상태 단어뿐 아니라 누적 체결과 잔량을 함께 검산하세요.
선물 주문이 여러 가격에 체결되는 이유는 누적 체결 검산을 설명합니다.
- 누적 체결 수량: 3
- 취소된 잔량: 7
- 최종 working 수량: 0
Cancel reject도 가능한 결과입니다
취소 요청은 주문 상태를 바꾸라는 요청입니다.
CME 주문 프로토콜은 요청을 처리할 수 없을 때 cancellation reject도 지원합니다.
적용되는 주문 상태나 요청 식별 문제 등으로 취소가 거절될 수 있습니다.
앱의 애니메이션이나 비활성화된 버튼을 거래소 확인으로 보지 마세요.
브로커 주문 로그나 실행 보고서에서 취소가 승인, 거절, 대기 중인지 확인하세요.
기존 주문 상태를 모른 채 대체 주문을 보내지 마세요
5계약 주문을 취소하고 기존 주문의 최종 상태를 확인하기 전에 새 5계약을 바로 보냈다고 하겠습니다.
취소 경합 중 기존 주문에서 2계약이 체결되고 새 주문에서 5계약이 체결되면 실제 익스포저는 7계약이 될 수 있습니다.
원래 의도는 5계약 유지였지만 오히려 포지션이 늘었습니다.
검산은 다음처럼 하세요.
최종 포지션 = 기존 포지션 + 모든 확인된 체결.
취소 수량은 거래가 아니므로 포지션에 더하지 않습니다.
네트워크와 화면 시차가 실제 순서를 숨길 수 있습니다
주문 티켓, 브로커 서버, 주문 게이트웨이, 매칭 엔진, 시장데이터 피드는 하나의 시계가 아닙니다.
다른 메시지 경로에서 체결이 이미 발생한 뒤 화면에는 Pending Cancel이 보일 수 있습니다.
거래소에서 체결 이벤트가 먼저였어도 취소 클릭 뒤에 체결 알림이 늦게 도착할 수 있습니다.
실제 순서를 재구성할 때 거래소 또는 브로커 타임스탬프를 사용하세요.
팝업이 화면에 나타난 순서를 사건 순서의 증거로 쓰지 마세요.
시장 상태에 따라 취소 기능도 달라질 수 있습니다
주문 기능은 시장 상태에 따라 달라질 수 있습니다.
CME Globex 문서는 pre-open, open, pause, closed, maintenance 같은 상태별로 주문 입력·수정·취소 가능 여부를 구분합니다.
따라서 정규 open 상태에서의 취소 경험이 모든 세션 상태에서 똑같이 적용된다고 가정하지 마세요.
정확한 시장 상태와 현재 거래소 규칙을 확인하세요.
선물 시장은 24시간 열리나요?는 세션 경계가 중요한 이유를 설명합니다. [!TRYMARK] 취소 경합을 재구성하세요 Working 10계약 주문으로 시작하세요. 취소 확인 전에 3계약이 체결되고 남은 7계약이 취소됐다고 가정해 누적 체결, 취소 수량, 최종 working 수량, 포지션 변화를 적으세요.
주문 취소 체크리스트
정확한 계약과 주문 ID를 기록하세요.
원래 수량과 누적 체결 수량을 기록하세요.
취소 요청 시각을 기록하세요.
취소 확인 또는 최종 주문 상태를 기다리세요.
Cancel reject가 반환됐는지 확인하세요.
잔여 수량과 체결 수량을 분리해 검산하세요.
대체 주문을 보내기 전에 순포지션을 확인하세요.
화면 알림 순서가 아니라 브로커 또는 거래소 시각을 사용하세요.
이 글은 주문 상태 구조를 설명하며 특정 브로커의 취소 처리 속도를 보장하지 않습니다.
자주 묻는 질문
선물 주문은 취소 버튼을 누른 뒤에도 체결될 수 있나요?
취소가 최종 확정되기 전에 체결됐거나 화면 메시지 순서가 실제 이벤트 순서와 다르면 그렇게 보일 수 있습니다. 거래소 확인 시각과 상태를 확인하세요.
Pending cancel은 무슨 뜻인가요?
취소 요청은 수신됐지만 아직 확인된 Cancelled 상태에 도달하지 않은 상태입니다.
Cancelled면 아무것도 체결되지 않았다는 뜻인가요?
아닙니다. 일부가 먼저 체결되고 남은 수량만 취소될 수 있습니다. 누적 체결 수량을 확인하세요.
취소 버튼을 누른 뒤 바로 같은 주문을 다시 보내도 되나요?
먼저 기존 주문의 최종 상태와 체결을 확인하세요. 그렇지 않으면 기존 체결과 대체 주문이 합쳐져 의도보다 큰 포지션이 될 수 있습니다.