NOONOO TRADING봇에서 시작하기

호가창 불균형(Order Book Imbalance) — 매수·매도 잔량 비율로 뭘 알 수 있나

호가창을 열면 매수 쪽에 12 BTC가 쌓여 있고 매도 쪽에 4 BTC밖에 없는 장면을 자주 봅니다. 사려는 사람이 세 배나 많아 보이니 곧 오를 것 같습니다. 이 직관을 숫자로 바꾼 것이 호가창 불균형이고, 그 숫자가 실제로 무엇을 말하고 무엇을 말하지 않는지가 이 글의 내용입니다.

OBI는 "쌓여 있는 주문"의 비율이다

호가창 불균형(Order Book Imbalance, 줄여서 OBI)은 계산이 단순합니다. 매수 쪽에 대기 중인 수량과 매도 쪽에 대기 중인 수량을 가져와, 차이를 합으로 나눕니다.

기본 식

OBI = (매수잔량 − 매도잔량) ÷ (매수잔량 + 매도잔량)

─────────────
+1에 가까움  매수 잔량만 있음
  0          양쪽이 같음
−1에 가까움  매도 잔량만 있음

합으로 나누기 때문에 결과는 항상 −1과 +1 사이에 들어옵니다. 잔량이 100 BTC든 3 BTC든 같은 자로 잴 수 있다는 것이 이 식의 유일한 목적입니다. 호가창 화면 자체가 아직 낯설다면 호가창 보는 법을 먼저 보는 편이 빠릅니다.

최우선 호가만 본 경우 (가정)

매수 1호가  12.4 BTC
매도 1호가   4.1 BTC

차이  12.4 − 4.1 = 8.3
합    12.4 + 4.1 = 16.5

OBI = 8.3 ÷ 16.5 = +0.50

여기서 중요한 단어는 대기 중입니다. OBI에 들어가는 숫자는 이미 체결된 거래가 아니라 아직 체결되지 않은, 언제든 취소할 수 있는 주문입니다. 이 한 가지가 뒤에 나오는 모든 한계의 원인입니다.

깊이를 몇 단계까지 볼 것인가 — 부호가 뒤집힌다

식은 하나인데 "잔량"을 어디까지 세느냐는 정해져 있지 않습니다. 1호가만 셀 수도, 5호가까지 누적할 수도, 10호가까지 갈 수도 있습니다. 그리고 이 선택에 따라 답이 달라집니다.

같은 순간, 깊이별 OBI (가정)

1단계
  매수 12.4 · 매도  4.1
  OBI = 8.3 ÷ 16.5 = +0.50

5단계 누적
  매수 61.0 · 매도 58.2
  OBI = 2.8 ÷ 119.2 = +0.02

10단계 누적
  매수 140.5 · 매도 152.0
  OBI = −11.5 ÷ 292.5 = −0.04

─────────────
같은 호가창인데
+0.50 → +0.02 → −0.04

1단계만 보면 강한 매수 우위, 10단계까지 보면 약한 매도 우위입니다. 둘 다 사실입니다. 가격 바로 옆은 매수가 두껍고, 조금 떨어진 곳은 매도가 두껍다는 상태를 각각 다른 각도에서 본 것뿐입니다.

그래서 OBI를 쓸 때는 깊이를 먼저 고정해야 합니다. 값이 마음에 안 든다고 깊이를 1단계에서 5단계로 바꿔 보는 행동은, 원하는 답이 나올 때까지 자를 바꾸는 일입니다. 깊이별로 잔량이 어떻게 분포하는지 눈으로 보고 싶다면 뎁스 차트 읽는 법 쪽이 직관적입니다.

신호가 얼마나 오래 사는가

OBI의 가장 큰 특징은 수명이 짧다는 것입니다. 잔량은 체결로도 줄고 취소로도 줄기 때문에, 강한 값이 한 번 찍혀도 몇 초 만에 평범해집니다.

OBI +0.50 이후 값의 변화 (가정)

  0초  +0.50
  3초  +0.31
 10초  +0.12
 30초  −0.04
 60초  +0.03

─────────────
30초 뒤에는 신호의 흔적이 없다

이것이 뜻하는 바는 분명합니다. OBI를 보고 판단하려면 그 판단도 초 단위로 끝나야 합니다. "OBI가 좋아 보여서 샀고 두 시간 들고 있다"는 조합은 앞뒤가 맞지 않습니다. 신호의 시간 단위와 보유 시간의 단위가 다르면, 실제로는 신호와 무관한 거래를 한 셈입니다.

또 하나. 값이 큰 순간에 시장가로 들어가면 그 주문 자체가 얇은 쪽을 먹어 버립니다. 매도 잔량 4.1 BTC뿐인 곳에 3 BTC 시장가 매수를 넣으면 1호가가 거의 사라지고 다음 호가에서 체결됩니다. 이렇게 체결가가 밀리는 현상이 슬리피지이고, 잔량이 적은 쪽을 보고 들어갈수록 심해집니다.

가짜 벽 — 취소되는 주문은 의사가 아니다

OBI는 "이만큼 사겠다는 의사가 있다"로 읽히지만, 지정가 주문은 체결 전까지 아무 구속력이 없습니다. 취소는 무료이고 즉시 됩니다.

매도 벽의 최후 (가정)

관찰 시점  매도 1호가에 40.0 BTC
  → OBI 크게 음수, "위가 막혔다"

10분 뒤 그 40.0 BTC의 행방
  체결   1.2 BTC
  취소  38.8 BTC

취소 비율 38.8 ÷ 40.0 = 97%

─────────────
벽은 팔리지 않았다
가격이 다가오자 사라졌다

실제로 팔 생각이 없으면서 크게 걸어 두었다가 가격이 접근하면 빼는 주문을 스푸핑(가짜 벽)이라고 부릅니다. OBI는 이 주문과 진짜 주문을 구분하지 못합니다. 식에 들어가는 것은 수량뿐이고, 그 주문이 진심인지 아닌지는 숫자에 적혀 있지 않기 때문입니다.

그래서 큰 벽 하나가 만든 극단적인 OBI는 오히려 신뢰도가 낮습니다. 잔량이 여러 계좌에 고르게 퍼져 있을 때보다, 한 덩어리가 전체를 좌우할 때 그 값은 한 사람의 취소 한 번에 통째로 뒤집힙니다. 벽 근처에서 손절을 털고 가격이 되돌아가는 패턴이 반복되는 이유도 비슷한 구조인데, 이쪽은 유동성 사냥에 따로 정리돼 있습니다.

비용으로 환산하면 허들이 보인다

신호가 맞는지 틀리는지보다 먼저 계산할 것이 있습니다. 한 번 들어갔다 나오는 데 드는 비용을 넘을 만큼 가격이 움직이는가입니다.

왕복 비용 (가정)

스프레드          0.01%
왕복 체결 수수료  0.10%

합계  0.11%

스프레드가 왜 비용인지 헷갈린다면 매수·매도 호가 차이를 보면 됩니다. 사자마자 팔면 그 차이만큼 이미 손해인 구조입니다.

이제 필요한 적중률을 역산해 봅니다. 맞을 때와 틀릴 때 움직이는 폭이 비슷하다고 두면, 비용 c와 평균 절대 이동폭 m에 대해 손익분기 적중률은 다음과 같습니다.

필요 적중률 = 0.5 + c ÷ (2 × m)

보유 30초
  평균 절대 이동 m = 0.06%
  0.5 + 0.11 ÷ 0.12 = 1.42
  → 적중률 142% 필요 = 불가능

보유 10분
  평균 절대 이동 m = 0.30%
  0.5 + 0.11 ÷ 0.60 = 0.68
  → 적중률 68% 필요

─────────────
짧게 들면 비용을 못 넘고
길게 들면 신호가 이미 죽어 있다

여기가 OBI의 구조적 딜레마입니다. 신호는 수십 초를 못 넘기는데, 수십 초짜리 가격 변동은 왕복 비용보다 작습니다. 비용을 넘을 만큼 움직이는 시간까지 기다리면 그때는 신호가 사라진 뒤입니다. 이 계산을 건너뛰고 적중률만 세면, 맞는 거래를 하면서도 계좌가 줄어드는 상태가 됩니다.

신호 수를 세면 더 분명해진다

1시간 동안 |OBI| > 0.4 발생 (가정)

전부             52회
+ 3초 이상 유지   21회
+ 깊이 5단계도 동의  9회
왕복 0.11% 기준 비용

필터 없음  52회 × 0.11% = 5.72%
필터 2개   9회 × 0.11% = 0.99%

차이  4.73% (1시간 기준)

─────────────
적중률이 같아도 남는 돈이 다르다

거래 횟수가 수익률을 어떻게 갉아먹는지는 거래 횟수와 수수료 부담에 더 자세히 있습니다. 다만 필터를 계속 얹고 싶어지는 마음은 경계해야 합니다. 9회를 2회로 줄이는 조건을 과거 데이터에서 찾아내면 그래프는 예뻐지지만, 남은 표본이 너무 적어 우연과 구분이 안 됩니다 — 과최적화(오버피팅)의 전형입니다.

실전에서 빠지는 구멍

확인 순서

① 깊이를 먼저 정하고 바꾸지 않는다
  1단계와 10단계는 부호가 다를 수 있다

② 큰 덩어리 하나가 만든 값은 낮게 본다
  취소 한 번에 통째로 뒤집힌다

③ 신호 수명과 보유 시간을 맞춘다
  초 단위 신호로 시간 단위 보유 금지

④ 진입 전에 비용부터 뺀다
  스프레드 + 왕복 수수료

⑤ 잔량이 얇은 쪽을 시장가로 치지 않는다
  내 주문이 그 잔량을 없앤다

⑥ 수량은 지표가 아니라 손절폭에서 역산

─────────────
①과 ④를 안 지키면 나머지는 의미가 없다

⑤는 거래량이 적은 알트코인이나 새벽 시간대에 특히 잘 터집니다. 호가창이 두껍게 보여도 1호가 아래가 비어 있으면, 조금만 큰 주문에도 체결가가 몇 단계씩 밀립니다. 화면의 숫자가 아니라 내 주문 크기 대비 잔량을 봐야 합니다.

⑥은 어떤 지표를 쓰든 같습니다. 들어갈 금액은 포지션 사이징에서, 어디서 틀렸다고 인정할지는 손절 설정법에서 미리 정합니다. OBI가 주는 것은 방향 후보 하나이고, 잃을 금액을 정해 주지는 않습니다.

정리

OBI = (매수잔량 − 매도잔량) ÷ (매수잔량 + 매도잔량)
값은 항상 −1과 +1 사이에 들어온다
재료는 체결이 아니라 아직 취소 가능한 대기 주문이다
호가 깊이를 몇 단계까지 세느냐로 답이 달라진다
같은 순간에 1단계 +0.50, 10단계 −0.04가 나올 수 있다
그래서 깊이는 먼저 고정하고 바꾸지 않는다
신호 수명은 대개 수십 초다
큰 벽은 대부분 체결이 아니라 취소로 사라진다
OBI는 진짜 주문과 가짜 벽을 구분하지 못한다
덩어리 하나가 만든 극단값일수록 신뢰도가 낮다
왕복 비용 = 스프레드 + 체결 수수료
필요 적중률 = 0.5 + 비용 ÷ (2 × 평균 이동폭)
짧게 들면 비용 미달, 길게 들면 신호가 죽는다
신호가 잦을수록 수수료가 먼저 쌓인다
얇은 쪽을 시장가로 치면 내 주문이 슬리피지를 만든다

한 줄로 줄이면 이렇습니다. OBI는 지금 호가창이 어느 쪽으로 기울었는지를 보여줄 뿐, 그 기울기가 유지될지는 말해 주지 않습니다. 취소되는 주문이 섞여 있고 수명이 짧다는 두 가지를 전제하고 봐야 값이 제 몫을 합니다.

주의

본문의 매수 12.4 BTC·매도 4.1 BTC, 깊이별 61.0/58.2·140.5/152.0, OBI +0.50·+0.02·−0.04, 시간 경과별 +0.31·+0.12·−0.04, 매도 벽 40.0 BTC 중 체결 1.2·취소 38.8(취소율 97%), 스프레드 0.01%·왕복 수수료 0.10%·합계 0.11%, 평균 절대 이동 0.06%·0.30%, 필요 적중률 1.42·0.68, 1시간 신호 52회·21회·9회와 비용 5.72%·0.99% 같은 수치는 계산 구조와 개념을 보여주기 위한 가정 예시이며 특정 종목·특정 기간의 실제 측정값이 아닙니다. 호가창 잔량은 체결되지 않은 주문이라 언제든 취소·변경될 수 있고, 거래소마다 호가 단위·표시 깊이·집계 방식·갱신 주기가 다르므로 같은 시각에도 화면에 보이는 값이 서로 다를 수 있습니다. 호가창 불균형은 현재 상태를 요약한 값일 뿐 앞으로의 가격을 알려주지 않으며, 값의 부호나 크기가 방향을 보장하지 않습니다. 이 글은 지표의 계산과 성질에 대한 설명이며 특정 종목·방향이나 진입·청산 시점을 권유하지 않습니다. 암호화폐 거래는 원금 전액을 잃을 수 있고 레버리지를 쓰면 손실이 증거금을 넘을 수도 있습니다. 투자 판단과 그 결과는 본인 책임입니다.

NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.

봇에서 시작하기

📈 OKX 신규 가입 시 거래 수수료 할인

OKX 수수료 할인 가입 →