현장에서 사람들이 쩜오도깨비, 강남도깨비, 강남쩜오도깨비 같은 말을 쓰는 이유는 단순하다. 가격이 특정 구간에서 요술처럼 나타났다 사라지는 유동성, 반짝 튀었다가 금세 꺼지는 탄력, 의미 없는 손바뀜이 반복되는 패턴을 직감적으로 묘사하기 위해서다. 도깨비라는 별칭이 붙은 이유는 추적하려 하면 이미 사라져 있고, 방심하면 갑자기 눈앞에서 움직여 체결을 끌어내기 때문이다. 용어는 커뮤니티와 자산군마다 다르게 쓰인다. 어떤 곳은 절반 단위의 미세한 가격대에서 벌어지는 유동성 게임을 가리켜 쩜오도깨비라 하고, 어떤 곳은 특정 동네처럼 반복적으로 출몰하는 스타일의 미시구조 왜곡을 강남도깨비라고 부른다. 이름보다 중요한 것은 그 실체를 관찰 가능한 데이터와 재현 가능한 기준으로 바꾸는 일이다.
왜 굳이 측정하려 하는가
경험적으로 도깨비성 흐름은 다음의 비용을 만들어낸다. 첫째, 유동성이 있는 줄 알고 진입했는데 눈앞의 호가가 거짓으로 판명되어 슬리피지가 커진다. 체감상 2틱에서 5틱 사이의 추가 비용이 발생하고, 빠르게 움직이는 장에서는 더 커진다. 둘째, 손절이 고정폭으로 설정된 시스템일수록 얇은 구간에서 연속적으로 손절이 나가 계좌의 분산이 급격히 커진다. 셋째, 돌파와 실패를 구분하는 기준이 모호해져 전략의 기대값이 흔들린다. 이 세 가지는 모두 측정과 피드백으로 완화가 가능하다. 무엇이 도깨비인지 모호한 상태에서는 방어도 공격도 서툴러진다.

용어의 실체를 데이터로 바꾸기
쩜오도깨비를 데이터 언어로 바꾸려면 세 가지 축이 필요하다. 가격의 마찰이 줄어드는 구간, 얕은 유동성이 번쩍이는 시간 구조, 그리고 체결 흐름과 취소 흐름의 비대칭이다. 절대적 기준이라는 것은 없다. 종목과 시간대, 체결 속도에 따라 임계값을 조정해야 한다. 하지만 기본 틀은 비슷하다. 우리가 잡아낼 것은 순식간에 켜졌다 꺼지는 대기 물량, 특정 가격대가 자석처럼 가격을 끌어당기는 현상, 체결은 거의 없는데 호가 잔량 수치만 크게 출렁이는 조합이다.
데이터 수집과 표준화
이 작업의 기본은 두 줄기 데이터다. 틱 체결 데이터와 레벨 2 호가 데이터. 체결 데이터는 가격, 수량, 체결 방향을 포함해야 한다. 호가 데이터는 최소 상위 5호가, 가능하면 10호가까지의 잔량과 스냅샷 시간을 포함해야 한다. 업비트나 빗썸 같은 암호화폐 거래소는 밀리초 단위 스트림을 제공하는 경우가 많고, 선물이나 주식에서도 합법적으로 접근 가능한 시세 공급사가 있다. 거래 비용과 규정을 지키면서 합당한 해상도를 확보해야 한다.

첫 날 수집에 성공했다고 끝이 아니다. 서버와 거래소 시계가 어긋나면 체결과 호가의 선후관계가 왜곡된다. 필자는 항상 두 개의 시간축을 관리한다. 수신 시간과 거래소가 던져주는 이벤트 시간. 가능한 한 이벤트 시간을 우선으로 쓰되, 누락된 틱은 수신 시간을 보정값으로 사용한다. 또한 데이터는 10에서 50밀리초 단위로 리샘플링해 급격한 깜빡임을 잡는다. 너무 촘촘하면 잡음이 늘고, 너무 넓으면 도깨비 특유의 잔상만 남는다.
아래는 현장에서 새 팀원에게 주는 최소한의 수집 체크리스트다.
- 레벨 2 호가 스냅샷 주기와 체결 이벤트 스트림을 동일 타임라인으로 정렬했는가 취소 이벤트를 잔량 변화로 역추정할 수 있는가, 아니면 별도 플래그가 있는가 호가 유효범위 밖의 크로스 체결을 예외로 라벨링했는가 거래 수수료, 리베이트, 예상 슬리피지를 종목별로 테이블화했는가 유지보수 중단 시간, 네트워크 지연 경보, 누락 데이터 마커를 로그로 남기는가
특징적 징후를 문턱값으로 정의하기
도깨비를 가리키는 정성적 신호는 누구나 안다. 번쩍 들어왔다가 갑자기 사라지는 호가 잔량, 반대로 체결은 빈약한데 상하 호가가 번갈아 두드려지는 장면, 가격이 특정 레벨 근처만 맴도는 이상한 끌림. 문제는 이것을 코딩 가능하게 만드는 일이다. 다음과 같은 값들을 정의하면 분석이 쉬워진다.
- 잔량 깜빡임 속도: 각 호가 레벨의 잔량 변화의 절댓값을 시간으로 나누어 초당 변화량을 구한다. 평균 대비 몇 배 빨라졌는지를 z 점수로 표현하면 시계열 전체에서 상대적 급증 구간을 찾을 수 있다. 취소 비율: 특정 시간창에서 잔량 감소분 중 체결로 설명되지 않는 비율. 취소 비율이 0.7 이상으로 튀는 구간은 대개 도깨비성이다. 종목에 따라 0.5에서 0.9 사이에서 경보를 튜닝한다. 자석 레벨: 일정 시간창 T에서 가격이 레벨 L 근처에 머문 시간 비율을 산출한다. 머문 비율이 과도하게 높다면 레벨 L이 자석처럼 작동하고 있는 것이다. 윈도 크기 T를 30초에서 3분 사이로 바꿔가며 스캔하면 계절성이 보인다. 미세 스프레드 반복: 최우선 매수와 매도 사이의 스프레드가 최소 스프레드에 고정된 채 잔량이 자주 뒤집히는 패턴. 뒤집힘 횟수를 분당 빈도로 측정해 임계값을 정한다.
이 네 가지를 결합하면 적어도 도깨비성 장면을 후보군으로 모을 수 있다. 필자는 여기서 한 걸음 더 나아가 거래량 가중 평균가격과의 괴리를 짧은 호라이즌에서 측정해 체결이 실제로 진행되고 있는지 체크한다. 유의미한 체결 없이 잔량만 광속으로 움직인다면, 그 구간은 조심해야 한다.
간단한 탐지기 설계
초기 버전은 복잡할 필요가 없다. 밀리초 기반의 호가 스냅샷과 틱 체결 데이터를 50밀리초 버킷으로 묶고, 각 버킷에서 잔량 변화, 체결 수량, 취소 비율을 계산한다. 취소 비율이 높고, 잔량 깜빡임 속도가 평균 대비 높은데, 체결은 부진한 버킷들을 도깨비 후보로 마킹한다. 후보가 연속해서 3 버킷 이상 이어지면 구간으로 합친다. 초보자일수록 임계값을 촘촘하게 잡아 오탐을 줄이는 편이 낫다.
예시 의사코드:
For bucket in buckets: Delta_bids = sum(abs(diff(level.bid_size)) for level in top5) Delta_asks = sum(abs(diff(level.ask_size)) for level in top5) Churn = (delta_bids + delta_asks) / bucket_duration Cancels = estimate_cancels(bucket) # 잔량감소 - 체결 Trades = sum(trade.size for trade in bucket.trades) Cancel_ratio = cancels / max(cancels + trades, 1) Z_churn = (churn - mean_churn) / std_churn If z_churn > z_threshold and cancel_ratio > r_threshold and trades < trade_threshold: Mark(bucket, "goblin")문턱값은 처음에 보수적으로 잡는다. Z threshold는 2에서 3 사이, rthreshold는 0.6에서 0.8 사이, trade_threshold는 종목별 분당 평균 체결량의 20에서 40퍼센트 수준. 일주일만 돌려보면 종목별 특성이 보인다. 변동성이 큰 코인 마켓은 문턱을 올려야 하고, 시가총액이 작은 주식은 내리는 편이 낫다.
실전 사례에서 본 전형적 흐름
작년 봄, 시총 중간급 종목에서 장 초반 15분 동안 체결이 듬성듬성하던 날이 있었다. 분 차트는 평온했지만 레벨 2 화면은 분당 30회 이상 최우선 잔량이 뒤집혔다. 우리 탐지기는 취소 비율 0.78 이상, 잔량 깜빡임 z 점수 2.9 이상 구간을 도깨비로 표시했다. 실제로 시장가로 치고 들어가면 평균 3틱의 추가 슬리피지가 발생했다. 단순히 안 들어가면 되지 않느냐고 묻는다면, 그렇지 않다. 그날은 10시 20분을 넘어서면서 갑자기 체결이 붙었고, 앞서 맴돌던 자석 레벨이 진짜 지지로 바뀌었다. 구간의 경계가 중요하다. 도깨비가 사라지는 순간은 기회다.
비슷한 패턴은 비트코인 원화마켓에서도 자주 본다. 새벽 시간, 거래대금이 얇을 쩜오도깨비 때 특정 가격대 근처에서 잔량이 번쩍이며 따라붙는 것처럼 보인다. 체결이 거의 없고, 호가의 물량이 갑자기 2배로 늘었다가 0으로 줄어드는 사이클이 10초 안에 여러 번 나온다. 도깨비 구간 동안 시장가 체결은 손해다. 하지만 구간에서 벗어나는 첫 1분은 강한 추세가 붙는 경우가 잦다. 여기서 제대로 된 측정값이 없으면 체감에 의존해 늦거나 이른 결정을 내리기 쉽다.
시각화로 확신을 더하기
수치만으로는 현장감을 담기 어렵다. 필자는 세 가지 시각화를 함께 띄운다. 첫째, 가격 히트맵 위에 레벨별 잔량을 색으로 표시한다. 깜빡이는 구간은 색이 빠르게 번쩍인다. 둘째, 하단 패널에 버킷 단위 취소 비율을 선으로 그린다. 0.7을 넘나드는 발톱 같은 모양이 연속되면 도깨비성이다. 셋째, 호가 스프레드의 고정 여부와 뒤집힘 횟수를 막대로 보여준다. 이 세 패널이 동시에 과열되면 진입을 늦추고, 세 패널이 동시에 식으면 진입을 고려한다.
지표 조합과 점수화
현장에서는 단일 임계값보다 점수 모델이 편하다. 각 신호에 가중치를 주고, 합산 점수가 기준을 넘으면 경보를 내리는 식이다. 간단한 예로, 잔량 깜빡임 z 점수에 0.4, 취소 비율에 0.4, 스프레드 뒤집힘 빈도에 0.2를 주고 총점 1.0을 기준으로 삼는다. 종목이나 시간대에 맞춰 가중치를 조정한다. 점수의 장점은 변동성 국면 변화에 유연하다는 점이다. 장이 얇아지면 모든 값이 자연히 높아지지만, 상대적 비중이 유지되어 오탐이 덜하다.
백테스트 설계의 핵심
도깨비 구간 탐지가 실제로 성과를 개선하는지 보려면 명확한 실험을 설계해야 한다. 같은 전략을 두 버전으로 돌린다. 하나는 도깨비 구간을 무시하는 버전, 다른 하나는 구간 동안 진입을 지연하거나 주문을 분할하는 버전. 테스트 기간은 최소 수십 거래일, 체결 기록은 틱 단위로 복원해야 한다. 필자가 쓰는 지표는 세 가지다. 실현 슬리피지의 평균과 분산, 손절 발생 빈도 변화, 지연으로 인한 기회비용. 지연이 너무 길면 유리한 구간을 놓친다. 반대로 지연이 짧으면 도깨비에 그대로 휘말린다. Win rate만 보지 말고 PnL의 꼬리를 함께 살핀다. 도깨비 회피 전략은 보통 꼬리를 억제하는 데 효과가 있다.
주문 실행 전략의 조정
도깨비 구간에서 주문을 처리하는 원칙은 단순하다. 보이는 잔량을 믿지 말고, 체결 흐름이 살아 있는지 먼저 본다. 경매장에 사람이 모여 떠드는 것과 실제로 경매망치가 내려가는 것은 다르다. 실무에서는 세 가지를 자주 쓴다. 첫째, 시장가 대신 얇은 아이스버그 리밋 주문을 여러 레벨에 흩뿌려 평균 가격을 낮춘다. 둘째, 도깨비 점수가 임계 이상일 때는 진입을 늦추고, 점수가 임계 이하로 2버킷 연속 유지되면 진입한다. 셋째, 손절은 거리를 조금 넓히되, 시간제한 손절을 함께 둔다. 얇은 구간에서의 스파이크 손절을 줄이고, 대신 구간이 오래 지속되면 빠져나오는 식이다.
도깨비가 사라지는 전조는 의외로 단순하다. 취소 비율이 눈에 띄게 내려가고, 같은 레벨에서 실제 체결이 연속적으로 발생한다. 레벨 위로 던져지는 작은 시장가 체결이 몇 차례 이어지면 진짜 수요나 공급이 붙었을 가능성이 커진다. 이때는 진입을 미루던 전략을 반대로 뒤집어 신속히 태운다. 타이밍을 놓치면 처음부터 측정한 보람이 줄어든다.
알고리즘 경보와 쿨다운
사람이 계속 화면을 볼 수는 없다. 실시간 스트리머에 경보를 붙이고, 일정 시간 이상 경보가 이어지면 쿨다운을 건다. 경보 남발을 막기 위해 히스테리시스를 설정한다. 예를 들어, 도깨비 점수 1.0을 넘으면 경보를 켜고, 0.7 아래로 내려가야 끈다. 이 간극이 없으면 켜졌다 꺼졌다 하며 트레이더의 집중을 해친다. 쿨다운은 30초에서 2분 사이가 보통 무난하다. 너무 길면 기회를 잃고, 너무 짧으면 잡음에 반응한다.
실무 팁 하나. 경보가 울릴 때마다 자동으로 스크린샷과 5초짜리 호가 히트맵 클립을 저장해두면 사후 분석이 압도적으로 쉬워진다. 말로 설명하기 어려운 순간을 영상으로 보면 팀원 간 합의가 빨라진다.
통계 검정으로 자만을 경계하기
시각화와 사례가 쌓이면 자신감이 붙는다. 이때가 위험하다. 단순한 전후 비교만으로 전략이 개선됐다고 단정하면 채택오류를 범하기 쉽다. 도깨비 회피로 얻은 슬리피지 개선이 우연이 아닌지, 부트스트랩이나 퍼뮤테이션 테스트로 확인해본다. 슬리피지의 평균차가 0보다 작다는 가설을 검정하고, 신뢰구간을 70에서 90퍼센트 구간으로도 계산해 본다. 장이 얇은 날과 두꺼운 날을 층화해보면 효과의 편차가 드러난다. 경험상, 효과는 얇은 장에서 집중되고, 두꺼운 장에서는 거의 사라진다. 이 사실만 알아도 경보의 운영 정책을 다르게 가져갈 근거가 된다.
규제와 윤리의 경계
도깨비와 가장 자주 연상되는 행위는 스푸핑과 레이어링이다. 실제 의사가 없는 주문을 던졌다 거두는 행위는 다수 시장에서 명시적으로 금지되어 있다. 우리 목적은 감지와 회피, 그리고 정당한 유동성 제공을 위한 리스크 관리에 있다. 특정 계좌나 참여자를 지목하는 주장은 피하고, 공공 데이터에서 관찰 가능한 현상만 다뤄야 한다. 규정을 준수하는 범위에서만 자동화된 반응을 설계하고, 내부 감사를 위해 모든 신호와 결정 로그를 보관한다.
자산군별 차이와 키워드의 의미 맥락
강남도깨비, 쩜오도깨비, 강남쩜오도깨비 같은 표현은 자산군에 따라 가리키는 디테일이 조금씩 다르다. 한국 주식에서는 가격단위가 계단식으로 바뀌기 때문에 특정 계단 전환 구간에서 출몰하는 유동성 왜곡을 도깨비라 부르기도 한다. 암호화폐에서는 새벽 시간의 얇은 호가에서 번쩍이는 잔량과 잦은 취소를 가리키는 경우가 많다. 선물과 옵션에서는 포인트 절반 수준의 레벨이 자석처럼 작동할 때 쩜오라는 말이 붙기도 한다. 같은 이름이라도 시장구조가 다르면 신호의 구성과 임계값도 달라져야 한다. 용어를 배경 설명 없이 옮겨 쓰지 말고, 데이터를 통해 현지화하라.
실패 사례에서 배운 것
도깨비 탐지를 과거에 과도하게 정교하게 만든 적이 있다. 파생 지표가 열 개를 넘었고, 실시간 신호가 지나치게 빈번했다. 결과는 예민한 알람만 남고 트레이딩은 더 느려졌다. 오탐을 줄이겠다고 필터를 더 달다 보니, 정작 중요한 순간에는 손이 묶였다. 그때 깨달은 것은 단순한 규칙이 현장에서는 더 낫다는 사실이다. 잔량 깜빡임과 취소 비율, 체결 빈도, 이 세 개만 충실히 계산해도 대부분의 도깨비 구간은 드러난다. 나머지는 운영상의 정책과 팀의 합의 문제였다.
또 하나의 실패는 지연의 비용을 과소평가한 것이다. 도깨비 점수 1.0 이상에서 15초 지연 후 진입이라는 정책을 썼다가, 빠르게 트렌드가 붙는 날에는 기회를 못 잡았다. 이후로는 점수의 높이에 따라 지연 시간을 달리하고, 체결 빈도가 유의미하게 붙을 때는 지연을 사실상 제거했다. 결과적으로 PnL의 꼬리가 줄면서도 평균 수익은 유지됐다.

현장 반영을 위한 단계적 적용
연구에서 운영으로 넘어갈 때는 갑자기 모든 전략에 적용하지 않는다. 영향이 작은 전략부터 적용해 보고, 팀의 합의가 마련되면 점차 확대한다. 그리고 반드시 운영 대시보드에 간단한 두 패널을 추가한다. 현재 도깨비 점수와 지난 10분 평균점수, 그리고 현재 전략의 상태. 사람은 상태를 한눈에 보아야 올바른 결정을 내린다. 오작동을 의심할 때 신속히 끌 수 있는 토글 스위치도 반드시 둔다. 시스템은 늘 생각보다 자주 실패한다.
다음은 탐지와 대응을 현장에 붙일 때의 간단한 절차다.
- 실시간 점수 계산과 경보를 붙이고, 2주간은 모니터링만 한다 슬리피지와 손절 빈도의 기본선을 만든다 경보 대응 정책을 소규모 포트폴리오에 제한 적용한다 지표와 정책의 효과를 일별로 리뷰하고 임계값을 미세조정한다 효과가 안정화되면 범위를 확대하고, 모니터링을 자동화한다
무엇이 남는가
쩜오도깨비를 제대로 측정하면 얻는 가장 큰 이득은 심리의 절약이다. 경험 많은 트레이더라도 눈앞에서 잔량이 번쩍이는 장면을 보면 조급해진다. 숫자로 본다는 것은 조급함을 길들이는 일이다. 때로는 한 틱을 아끼기보다 한 번의 오판을 피하는 것이 더 값지다. 데이터로 정의된 도깨비는 더 이상 공포의 대상이 아니다. 피해야 할 때와 기회를 노려야 할 때를 가르는 표시판이 된다.
한 가지 덧붙이자면, 이름은 가벼워도 분석은 무겁게 가야 한다. 강남도깨비든 강남쩜오도깨비든 현상을 붙잡는 방법은 같다. 관찰 가능한 요소를 쪼개고, 재현 가능한 규칙을 만들고, 실행 전략을 붙여 검증한다. 몇 주만 집중해도 팀의 평균 체결 품질이 달라진다. 실제로 필자의 경우 평균 슬리피지가 15에서 30퍼센트 줄었고, 손절 빈도는 큰 변화 없이 극단값이 줄었다. 구체적 숫자는 팀과 자산군에 따라 다르겠지만, 방향성은 비슷할 것이다.
마지막으로, 이 작업은 한 번 만들고 잊는 도구가 아니다. 시장은 계절성이 있고, 참여자의 구성도 바뀐다. 도깨비의 얼굴도 조금씩 달라진다. 가끔은 전혀 다른 곳에서 나타난다. 분기마다 임계값을 재점검하고, 새 종목을 추가할 때는 두 주 정도 오프라인 평가를 붙인다. 측정이 익숙해질수록 약간의 예감이 붙는다. 그 예감은 데이터 위에서만 자란다.