본문으로 건너뛰기

© 2026 Molayo

Dev.to헤드라인2026. 06. 18. 13:42

홍콩 주식 WebSocket 피드에서 자동 체결(Auto-Matched) 및 단주(Odd-Lot) 거래 구분하기

요약

홍콩 주식 WebSocket 피드에서 자동 체결(Auto-Matched)과 단주(Odd-Lot) 거래를 실시간으로 구분하는 방법을 다룹니다. 거래량, 시간 클러스터링, 상대방 계정 검사라는 세 가지 휴리스틱을 통해 데이터 오염을 방지하는 기술적 접근법을 제시합니다.

핵심 포인트

  • 자동 체결과 단주는 거래량 지표 및 기술적 분석을 왜곡할 수 있음
  • 보드 랏(Board Lot) 단위를 활용한 거래량 기반 단주 식별
  • 밀리초 단위의 시간 밀집도를 통한 자동 체결 패턴 감지
  • 시스템 계정(SYS) 확인을 통한 자동 체결 여부 판별

실시간 시장 데이터를 다루는 것은 마치 소방 호스로 물을 마시는 것처럼 느껴질 수 있습니다. 제가 WebSockets를 통해 홍콩 주식 거래 데이터를 스트리밍하기 시작했을 때, 모든 체결 정보(prints)가 동일하지 않다는 것을 빠르게 알아차렸습니다. 어떤 것들은 실제 투자자의 주문을 나타내지만, 다른 것들은 시스템에서 생성된 자동 체결(auto-matches)이나 단주(odd-lot) 거래입니다. 이 포스트에서는 이를 실시간으로 분류하는 간단한 접근 방식을 공유하겠습니다.

문제점
원시 거래 데이터를 전략이나 거래량 지표(volume indicator)에 직접 입력하면, 단주와 자동 체결이 지표를 오염시킬 수 있습니다. 예를 들어, 자동 체결이 급증하면 실제 가격 변동 없이도 거래 횟수가 부풀려져 가짜 돌파(false breakouts)를 만들어낼 수 있습니다. 실시간 속도에서 이를 수동으로 필터링하는 것은 불가능합니다. 따라서 자동 분류는 단순히 있으면 좋은 기능이 아니라 필수적입니다.

메시지 구조 (Message Anatomy)
전형적인 WebSocket 거래 데이터에는 다음이 포함됩니다:

필드의미
time거래 시간
...

trade_type이 도움이 되는 경우가 드물기 때문에, 저는 세 가지 실용적인 휴리스틱(heuristics)에 의존합니다:

  1. 거래량 확인 (Volume check): 홍콩 주식은 보통 100주 단위의 보드 랏(board lots)으로 거래됩니다. 라운드 랏(round-lot)이 아닌 거래량(예: 100주 미만)을 가진 모든 거래는 단주(odd lot)로 태깅됩니다.
  2. 시간 클러스터링 (Time clustering): 자동 체결(Auto-matched) 거래는 밀리초(milliseconds) 단위 내에 여러 건의 체결이 발생하는 밀집된 버스트(bursts) 형태로 나타납니다. 단주는 이러한 패턴을 보이지 않습니다.
  3. 상대방 검사 (Counterparty inspection): 매수자와 매도자가 모두 시스템 계정(예: "SYS")인 경우, 이는 자동 체결(auto-match)입니다.

구현 (Implementation)

from websocket import create_connection
import json

...

내 작업에 미치는 영향
이 분류 계층 (classification layer)을 도입한 이후, 나의 다운스트림 애플리케이션 (downstream applications)은 "일반" 거래만을 소비하게 되어, 결과적으로 더 깨끗한 분석과 더 신뢰할 수 있는 신호 (signals)를 얻을 수 있게 되었습니다. 자동 체결 (auto-match) 및 단주 (odd-lot) 스트림은 여전히 저장되므로, 시장 미시구조 (market microstructure)를 별도로 분석하는 것도 가능합니다. 이는 홍콩 실시간 데이터를 다루는 모든 이들에게 추천하고 싶은 단순하면서도 강력한 패턴입니다.

AI 자동 생성 콘텐츠

본 콘텐츠는 Dev.to AI tag의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.

원문 바로가기
0

댓글

0