매수 주도 체결은 적극적인 매수 주문이 매도 호가(ask) 쪽 유동성을 가져간 거래이고, 매도 주도는 매수 호가(bid) 쪽을 가져간 거래입니다. 대기 주문 쪽(maker side)과 공격 주문 쪽(aggressor side)은 서로 반대입니다. 거래소가 대기 주문 쪽을 알려 주면 그 반대쪽이 공격 주문입니다. 이 항목이 없으면 체결가를 직전 정상 중간 호가와 비교하는 호가 규칙(quote rule)을 쓰고, 중간 호가와 같을 때는 직전 가격 변화의 부호를 이어받는 틱 규칙(tick rule)을 보조로 쓸 수 있습니다. 어디까지나 추정이므로 직접 표시가 있는 표본과 대조해 정확도와 미분류 비율을 보고해야 합니다. 사건 발생 시각과 호가 순번이 맞지 않으면 실제보다 늦은 호가를 붙여 방향을 거꾸로 분류할 수 있습니다. 변동성·스프레드·체결 위치별 정확도를 따로 내고, 직접 표시가 없는 시장에서는 결과를 관측된 주문 흐름의 추정치로만 씁니다.
거래소 방향 항목이 누구 관점인지 먼저 읽습니다
Coinbase 상품 체결 문서는 side 항목이 대기 주문의 방향이라고 설명합니다. side=buy는 매수 대기 주문이 걸려 있었고 적극적인 매도가 그 주문을 체결했다는 뜻입니다. 이를 매수 주도로 읽으면 부호가 뒤집힙니다.
Binance 체결 스트림의 m은 매수자가 대기 주문 쪽인지 나타냅니다. m=true면 매수자가 대기 주문 쪽이고, 따라서 공격 주문은 매도입니다. 제공된 값을 내부 표준인 aggressor=buy|sell로 바꾸고 원래 항목도 보존합니다.
체결의 매수·매도 표시는 누가 샀는지가 아니라, 어느 쪽이 유동성을 가져갔는지를 기준으로 확인해야 합니다.
JOBCOIN 해설

그림은 이 주제의 공통 개념을 단순화한 설명입니다. 아래 항목에서 이 글의 구체적인 조건과 예외를 함께 읽어보세요.
- 거래소 방향 항목이 누구 관점인지 먼저 읽습니다
Coinbase 상품 체결 문서는 side 항목이 대기 주문의 방향이라고 설명합니다.
- 호가 규칙은 직전 호가와 체결가를 맞춰 봅니다
가상의 매수 호가 99, 매도 호가 101, 중간 호가 100에서 체결가 100.8은 매수 주도, 99.2는 매도 주도로 추정합니다.
- 틱 규칙은 중간 호가 체결을 보조로 가립니다
직전 체결이 100이고 현재가가 100.1이면 상승 틱으로 매수 주도, 99.9면 하락 틱으로 매도 주도로 추정합니다.
설명을 위한 개념도 · 실제 가격·거래 내역·통계가 아닙니다.
호가 규칙은 직전 호가와 체결가를 맞춰 봅니다
가상의 매수 호가 99, 매도 호가 101, 중간 호가 100에서 체결가 100.8은 매수 주도, 99.2는 매도 주도로 추정합니다. 정확히 100이면 호가 규칙만으로는 방향을 정할 수 없습니다. 이 숫자는 산식을 검산하기 위한 예시입니다.
체결 시각 이후의 호가를 쓰면, 체결이 이미 주문서를 바꿔 놓은 결과를 기준으로 분류하는 미래 정보 참조(look-ahead) 오류가 생깁니다. 같은 순번이거나 체결 직전의 최신 정상 호가를 씁니다.
| 입력 | 조건 | 분류 | 한계 |
|---|---|---|---|
| 대기 주문 방향 | maker=buy | 매도 공격 | 항목 정의 확인 |
| 호가 규칙 | price>mid | 매수 공격 | 호가 시각에 민감 |
| 호가 규칙 | price<mid | 매도 공격 | 호가 시각에 민감 |
| 틱 규칙 | price=mid | 마지막 가격 변화 부호 | 같은 가격이 이어지면 취약 |
틱 규칙은 중간 호가 체결을 보조로 가립니다
직전 체결이 100이고 현재가가 100.1이면 상승 틱으로 매수 주도, 99.9면 하락 틱으로 매도 주도로 추정합니다. 가격이 같으면 마지막으로 실제 가격이 움직였던 방향을 이어 가는 방식이 있지만, 같은 가격이 오래 이어지면 오래된 방향이 계속 번집니다.
중간 호가 체결을 억지로 모두 분류하지 말고 미분류 비율을 보고하는 선택도 있습니다. 분석 목적에 따라 호가 규칙만 쓴 결과와 호가·틱 규칙을 함께 쓴 결과를 나란히 둡니다.
- 공식 방향 항목이 대기 주문 쪽인지 공격 주문 쪽인지 확인합니다.
- 체결 직전 호가 순번을 연결합니다.
- 중간 호가 허용 오차와 틱 동률 규칙을 버전으로 관리합니다.
- 직접 표시가 있는 표본으로 혼동 행렬을 계산합니다.
- 스프레드 구간별 오분류율을 나눠 계산합니다.
- 미분류 수량과 건수를 전체 거래량 옆에 둡니다.
- 호가가 지연된 표본은 정상 구간과 분리합니다.
가상 표본으로 오차를 검산합니다
직접 표시가 있는 100건 가운데 매수 55, 매도 45이고, 추정이 매수 50건·매도 40건을 맞혔으며 10건이 미분류라면 전체 정확도는 90%, 분류된 표본만의 정확도는 100%입니다. 미분류를 빼고 100%만 보고하면 적용 범위를 숨기게 됩니다.
반대로 100건을 모두 분류해 82건이 맞았다면 정확도는 82%입니다. 매수 쪽 정밀도·재현율과 매도 쪽 정밀도·재현율을 따로 봐야 한 방향으로 치우쳤는지 확인할 수 있습니다.
호가 지연과 여러 거래소를 섞지 않습니다
체결은 A 거래소인데 중간 호가는 집계 지수나 B 거래소 것을 쓰면, 차익거래가 일어날 때 방향이 달라질 수 있습니다. 같은 거래소, 같은 상품의 호가를 우선합니다. 순번 공백, 매수·매도 호가가 뒤집힌 주문서, 재연결 구간은 뺍니다.
시각 정밀도가 낮아 같은 시각의 호가가 여러 개라면, 순번이나 수신 순서만으로 실제 선후를 확정하지 않습니다. 모호한 상태는 모호한 대로 보존합니다.
순매수 흐름은 분류 불확실성과 함께 냅니다
부호 붙인 거래량은 매수 공격 수량을 +, 매도를 -로 합칩니다. 미분류를 0으로 넣으면 방향을 모르는 거래가 아예 없었던 것처럼 보입니다. 총 거래량, 분류된 거래량, 미분류 거래량을 함께 보고합니다.
분류 결과는 주문 흐름의 요약일 뿐, 미래 가격 예측이나 거래자의 의도를 보장하지 않습니다. 원시 체결 ID, 호가 ID, 알고리즘 버전을 남깁니다.
자주 묻는 질문
trade side=buy면 매수 주도인가요?
API에 따라 대기 주문의 방향일 수 있습니다. Coinbase Exchange에서는 매수 쪽이 대기 주문이므로 공격 주문은 매도입니다.
midpoint 체결은 어떻게 분류하나요?
틱 규칙을 보조로 쓰거나 미분류로 남길 수 있습니다. 어떤 규칙을 썼는지와 미분류 비율을 공개하세요.
정확도 90%면 충분한가요?
시장·기간·미분류 비율과 방향별 오차에 따라 다릅니다. 직접 표시가 있는 표본으로 다시 검증해야 합니다.
더 깊이 읽기
본문에서 다룬 개념과 확인 절차를 다음 글에서 이어서 살펴보세요.



