피드로 돌아가기
Dev.toBackend
원문 읽기
Matching Loop 수정 없는 TIF 정책 및 Stop Order 확장 설계
Adding IOC, FOK, and Stop Orders to a Matching Engine
AI 요약
Context
기존 Limit/Market Order만 지원하는 단순 Matching Engine 구조의 한계 직면. 실제 거래소 수준의 복잡한 체결 조건인 Time-in-Force(TIF) 정책과 가격 트리거 기반의 Stop Order 구현 필요성 대두.
Technical Solution
- Matching Loop 외부에서 TIF 로직을 분리하여 핵심 알고리즘의 무결성 유지
- IOC(Immediate-or-Cancel) 구현을 위해 체결 후 잔여 수량을 강제로 0으로 설정하여 Order Book 진입 차단
- FOK(Fill-or-Kill) 처리 시
canFillCompletely메서드를 통한 사전 유동성 검증 단계 도입으로 부분 체결 및 롤백 리스크 제거 - Stop Order 관리를 위해
lastPrices맵 기반의 가격 추적 시스템 구축 및 체결 발생 후 트리거 체크 프로세스 추가 - Triggered Stop Order를 Market/Limit Order로 변환하여 재투입하는 재귀적 Submit 구조 설계
- Enum 기반의 TIF 정의 및 Zero-value를 GTC(Good-Till-Cancelled)로 설정하여 하위 호환성 확보
실천 포인트
- 핵심 비즈니스 로직(Matching Loop)을 건드리지 않고 전/후 처리(Pre/Post-processing) 단계에서 기능을 확장하는 전략 검토 - 원자적 체결이 필요한 기능(FOK)의 경우, 실제 실행 전 Read-only 상태의 사전 시뮬레이션 단계 추가 여부 확인 - 상태 변화(Price Trigger)에 따른 이벤트 전파 시, 체결-업데이트-트리거-재체결로 이어지는 순환 참조 및 무한 루프 방지 대책 수립