자동매매 실시간 호가창 분석

호가창 분석이 중요한 이유

대부분의 퀀트 전략은 가격과 거래량만으로 신호를 만듭니다. 하지만 가격은 이미 일어난 결과이고, 호가창(오더북)은 앞으로 일어날 일의 단서입니다. 매수·매도 대기 주문의 분포를 실시간으로 분석하면 가격 변동의 방향과 강도를 한 발 앞서 예측할 수 있습니다. 이 글에서는 자동매매 시스템에서 호가창 데이터를 수집하고 분석하는 실전 기법을 정리합니다.

오더북 데이터 구조 이해

거래소 오더북은 매수 호가(bid)매도 호가(ask)의 가격-수량 쌍으로 구성됩니다.

  • 최우선 호가(BBO) — 가장 높은 매수가와 가장 낮은 매도가. 스프레드의 기준
  • 호가 깊이(Depth) — 각 가격 수준별 대기 수량의 누적 분포
  • 스프레드 — 최우선 매도가 – 최우선 매수가. 유동성의 척도
# 오더북 스냅샷 예시 구조
orderbook = {
    "bids": [  # 매수 대기 (가격 내림차순)
        [50000.0, 2.5],   # 가격, 수량
        [49999.5, 1.8],
        [49999.0, 3.2],
    ],
    "asks": [  # 매도 대기 (가격 오름차순)
        [50000.5, 1.2],
        [50001.0, 2.0],
        [50001.5, 4.1],
    ]
}

핵심 지표 1: 매수·매도 불균형

오더북 분석의 가장 기본적인 지표는 매수-매도 불균형(Order Imbalance)입니다. 특정 깊이까지의 매수 총량과 매도 총량을 비교합니다.

def order_imbalance(bids, asks, depth=10):
    """상위 N호가의 매수·매도 불균형 비율 (-1 ~ +1)"""
    bid_vol = sum(qty for _, qty in bids[:depth])
    ask_vol = sum(qty for _, qty in asks[:depth])
    total = bid_vol + ask_vol
    if total == 0:
        return 0
    return (bid_vol - ask_vol) / total

불균형 비율이 +0.3 이상이면 매수 압력이 강하고, -0.3 이하이면 매도 압력이 강한 것으로 해석합니다. 이 값의 변화 추이가 가격 방향을 선행하는 경우가 많습니다.

핵심 지표 2: 스프레드 변동

스프레드의 급격한 확대는 유동성 이탈의 신호입니다. 마켓메이커가 호가를 철수하는 순간 스프레드가 벌어지며, 이는 종종 급격한 가격 변동의 전조가 됩니다.

스프레드 상태 해석 자동매매 대응
평균 이하 유동성 풍부, 안정적 일반 전략 실행
평균의 2~3배 유동성 감소 시작 포지션 크기 축소
평균의 5배 이상 유동성 위기, 급변 임박 신규 진입 중단, 기존 포지션 보호

핵심 지표 3: 대량 벽(Wall) 감지

특정 가격대에 비정상적으로 큰 주문이 걸려 있는 것을 벽(wall)이라 합니다. 매수벽은 지지선, 매도벽은 저항선 역할을 합니다.

  • 매수벽 — 해당 가격 아래로 쉽게 내려가지 않는 심리적 지지
  • 매도벽 — 해당 가격 위로 돌파하기 어려운 저항
  • 스푸핑 주의 — 큰 주문이 체결 직전에 취소되는 허위 벽. 벽의 지속 시간을 추적해야 진짜와 가짜를 구별할 수 있음
def detect_walls(orders, avg_qty, threshold=5.0):
    """평균 대비 N배 이상의 대량 주문 탐지"""
    walls = []
    for price, qty in orders:
        if qty > avg_qty * threshold:
            walls.append({
                'price': price,
                'qty': qty,
                'ratio': qty / avg_qty
            })
    return walls

핵심 지표 4: 오더 플로우 분석

오더북의 정적 스냅샷보다 시간에 따른 변화가 더 중요합니다. 오더 플로우 분석은 주문의 추가·취소·체결 흐름을 추적합니다.

  • 공격적 매수/매도 — 시장가 주문으로 호가를 소화하는 빈도와 규모
  • 주문 취소율 — 특정 가격대 주문이 자주 취소되면 허위 유동성
  • 델타 누적 — (시장가 매수량 – 시장가 매도량)의 누적값으로 순매수 압력 추적

자동매매 데이터 파이프라인에서 다룬 것처럼 WebSocket으로 오더북 변경분(diff)을 실시간 수신하고, 로컬에서 오더북을 재구성하는 방식이 가장 효율적입니다.

실전 적용: 호가창 기반 진입 필터

호가창 분석 결과를 기존 전략의 추가 필터로 활용하는 것이 가장 실용적입니다.

  1. 매수 신호 발생 → 오더 불균형이 양수인지 확인
  2. 스프레드 정상 범위 → 유동성 충분한지 검증
  3. 매도벽 부재 → 목표가 근처에 대량 매도 주문 없는지 확인
  4. 오더 플로우 방향 → 델타 누적이 매수 방향인지 확인

이 필터는 퀀트 시그널 필터링 기법에서 다룬 확인 지표 필터와 자연스럽게 결합됩니다. 가격 기반 신호를 호가창으로 이중 검증하는 구조입니다.

주의사항과 한계

  • 레이턴시 — 호가 데이터는 밀리초 단위로 변하므로 처리 지연이 곧 정보 손실
  • 스푸핑 — 의도적인 허위 주문으로 분석이 왜곡될 수 있음
  • 시장별 차이 — 암호화폐와 주식시장의 오더북 특성이 다름
  • 데이터량 — 틱 단위 오더북 저장은 저장 비용이 큼. 집계 주기 설정 필요

마무리

호가창 분석은 가격 차트만으로는 볼 수 없는 시장 미시구조의 단서를 제공합니다. 매수·매도 불균형, 스프레드 변동, 대량 벽 감지, 오더 플로우 분석을 자동매매 시스템에 통합하면 진입 타이밍의 정밀도를 한 단계 높일 수 있습니다. 다만 호가 데이터의 노이즈와 스푸핑 위험을 항상 고려하고, 다른 지표와 함께 종합적으로 활용하는 것이 핵심입니다.

위로 스크롤
WordPress Appliance - Powered by TurnKey Linux