주문 실행의 원리: 계획한 주문과 실제 체결의 차이 · 6 / 6
주문 알림이 반복될 때 고유 체결 대사하기
주문 상태는 추가 거래가 아닙니다. 반복 전달과 체결·취소 경합을 다루려면 고유 체결과 누적 요약을 분리한 장부가 필요합니다.
Athenum8 분업데이트:
회계의 기준 단위 정하기
이 가상 선형 상품에서는 거래소, 계좌와 상품 계약의 범위에 맞는 체결 식별자를 사용합니다. 같은 체결이 동일하게 재전송되면 한 번만 계산합니다. 같은 주문의 서로 다른 체결은 각각 계산해야 합니다. 주문 ID만으로 중복을 제거하면 정상적인 부분 체결을 버리게 됩니다.
체결 수량, 가격, 수수료와 수수료 통화를 보관하세요. 여러 계좌나 거래소에서 전역적으로 유일하다고 가정하기 전에 식별자 규약을 확인합니다. 같은 식별자의 내용이 충돌하면 값을 조용히 덮어쓰지 말고 조사하세요. 끊긴 스트림은 불완전한 증거이므로 이력을 복구하고 기준이 되는 상태와 대사해야 합니다.
누적 스냅샷을 더하지 않기
주문 갱신에는 누적 체결량이 자주 들어갑니다. 2, 다음 3, 다시 3이라는 순서는 8 단위가 거래되었다는 뜻이 아닙니다. 그 상태를 고유 체결 장부와 최종 포지션에 비교하세요. 취소 요청 접수도 동시에 체결이 없었다는 증거는 아닙니다.
Bybit는 체결·취소 경합에서 Filled 상태 알림이 두 개 올 수 있다고 문서화합니다. 하나는 체결 완료이고 다른 하나는 이미 체결되어 취소가 거절되었다는 알림입니다. 이는 해당 거래소의 주의사항이며 두 거래의 증거가 아닙니다. 일반적인 감사 작업은 알림을 세는 것이 아니라 사실을 대사하는 것입니다.
반복 이벤트가 있어도 닫힌 수량은 세 단위
처음에 5 단위 롱이며 다른 포지션 변화는 없습니다. E1은 2를 100에 매도하고 0.10 USDT 수수료를 부과합니다. E2는 1을 99.50에 매도하고 0.05 USDT 수수료를 부과합니다. E2가 동일한 내용으로 다시 도착합니다. 고유 체결은 3을 닫으며 총매도대금은 299.50, 평균은 99.833333…, 수수료는 0.15 USDT입니다. 롱 두 단위가 남습니다.
미체결 잔량이 취소되어도 그 2 단위는 매도되지 않습니다. 명시한 청산 수수료를 뺀 매도대금은 299.35이지 이익이 아닙니다. 진입 원가와 다른 비용이 없기 때문입니다. 별도 경합 사례에서 E3가 취소 전에 마지막 2를 99에 매도하면 Filled 상태가 두 번 와도 닫힌 수량은 5입니다.
| 전달 | 수량 | 가격 | 새로 계산할 수량 |
|---|---|---|---|
| E1 | 2 | 100 | 2 |
| E2 | 1 | 99.50 | 1 |
| E2 동일 재전송 | 1 | 99.50 | 0 |
도표 크게 보기- 범위가 정의된 체결 ID
- 고유 체결 장부
- 누적 주문 상태와 비교
- 최종 포지션 확인
직접 구성한 체결 장부; 명시된 수수료는 모두 USDT. 알림을 거래로 바꾸지 말고 서로 다른 증거를 대사합니다.
E2 동일 재전송: +0.
이력이 없다고 체결이 0인 것은 아니다
연결 공백 후 로컬 장부가 비어 있어도 거래가 없었다는 증거는 아닙니다. 무작정 재주문하기 전에 거래소 체결 이력과 포지션을 조회하세요. 수수료 통화가 다르면 단위와 타당한 환산 근거를 보존하지 않은 채 합산해서도 안 됩니다.
결정 전 확인사항
- 거래소 규약에 맞게 식별자 범위를 정합니다.
- 동일 체결의 재전송은 한 번만 셉니다.
- 같은 주문의 서로 다른 부분 체결은 보존합니다.
- 누적 스냅샷은 더하지 말고 비교합니다.
- 잔여 포지션과 해결되지 않은 이력 공백을 대사합니다.
이해도 확인
E2가 세 번 도착하고 E3는 없으며 미체결 잔량의 취소가 확인되었습니다. 롱은 얼마나 남나요?
정답과 해설 보기
2 단위입니다. E1이 2를, 고유 E2가 1을 닫으므로 5 − 3 = 2가 남습니다. E2의 반복 전달은 체결을 추가하지 않습니다. 취소는 지시를 제거할 뿐 잔여 포지션을 없애지 않습니다.