호가 바운스: 실제 가격은 그대로인데 체결가만 튀는 현상
1분봉이나 틱 데이터로 역추세 단타를 백테스트하면 유난히 좋은 결과가 나올 때가 있습니다. "직전 틱이 올랐으면 팔고, 내렸으면 산다" 같은 단순한 규칙이 꾸준히 이기는 것처럼 보입니다. 상당수는 시장의 평균회귀가 아니라 호가 바운스(Bid-Ask Bounce)라는 데이터상의 착시입니다. 이 글은 호가 바운스가 생기는 구조, 자기상관으로 나타나는 모습, 백테스트 손익을 얼마나 부풀리는지, 그리고 걸러내는 방법을 계산 예시와 함께 정리합니다. 본문 숫자는 구조를 보여주기 위한 가정 예시입니다.
1. 호가 바운스란
거래소 호가창에는 사려는 최고가(매수호가, bid)와 팔려는 최저가(매도호가, ask)가 있고, 그 차이가 스프레드입니다. 시장가로 사는 주문은 매도호가에 체결되고, 시장가로 파는 주문은 매수호가에 체결됩니다. 그래서 "마지막 체결가(last price)"는 매수 주문이 들어왔느냐, 매도 주문이 들어왔느냐에 따라 두 호가 사이를 왔다 갔다 합니다.
· 매수호가 99.95, 매도호가 100.05 → 중간가(mid) 100.00, 스프레드 0.10
· 호가는 그대로인데 시장가 주문이 매수·매도 순서로 섞여 들어옴
· 체결가 기록: 100.05 → 99.95 → 99.95 → 100.05 → 99.95 → 100.05
· 체결가 기준 "수익률": +0.10%처럼 보이는 상승과 −0.10%처럼 보이는 하락이 반복
· 실제 중간가 변화: 0
이 흔들림은 누구의 가치 판단도 반영하지 않습니다. 같은 호가 안에서 주문 방향만 바뀐 결과입니다. 그런데 캔들의 시가·고가·저가·종가는 대부분 체결가로 만들어지므로, 이 흔들림이 차트와 지표에 그대로 들어갑니다(시장 미시구조).
2. 자기상관으로 보면 — "가짜 평균회귀"
체결가가 매도호가에 찍힌 다음에는 같은 자리이거나 아래(매수호가)로만 갈 수 있습니다. 매수호가에 찍힌 다음에는 같은 자리이거나 위로만 갈 수 있습니다. 그래서 오른 다음엔 내리고, 내린 다음엔 오르는 경향이 데이터에 생깁니다. 이것이 체결가 수익률의 음(−)의 1차 자기상관입니다(수익률 자기상관).
리처드 롤(Roll, 1984)의 단순 모형은 이를 식으로 정리합니다. 매수·매도 주문이 반반 무작위로 들어오고 스프레드가 s로 일정하다고 가정합니다.
· 바운스만으로 생기는 체결가 변화의 분산 = s² ÷ 2
· 이웃한 두 체결가 변화의 공분산 = −s² ÷ 4
· 실제 가격 변동의 분산을 σ²라 하면 1차 자기상관 ρ = −(s²/4) ÷ (σ² + s²/2)
· 거꾸로, 관측한 공분산으로 스프레드를 추정: s = 2 × √(−공분산)
· s² = 0.01 → 바운스 분산 0.005, 공분산 −0.0025
· 실제 가격 변동이 0(σ² = 0): ρ = −0.0025 ÷ 0.005 = −0.50
· 실제 변동 표준편차 0.05(σ² = 0.0025): ρ = −0.0025 ÷ 0.0075 ≈ −0.33
· 실제 변동 표준편차 0.20(σ² = 0.04): ρ = −0.0025 ÷ 0.045 ≈ −0.06
세 번째 줄이 핵심입니다. 실제 가격 변동이 스프레드보다 훨씬 크면 바운스의 영향은 작아집니다. 반대로 측정 간격이 짧거나(틱·1분), 스프레드가 넓은 종목일수록 바운스가 데이터를 지배합니다. 체결가로 계산한 평균회귀 반감기가 비현실적으로 짧게 나온다면 이 효과부터 의심할 만합니다.
3. Roll 추정식으로 스프레드 역산하기
호가 데이터가 없고 체결가만 있을 때, 공분산으로 실효 스프레드를 대략 추정할 수 있습니다.
· 어떤 알트코인 1분 종가 변화의 이웃 공분산을 계산했더니 −0.000004 (가격 단위 기준, 가격 약 1.00)
· s = 2 × √0.000004 = 2 × 0.002 = 0.004
· 가격 1.00 대비 약 0.4% 스프레드가 체결가에 섞여 있다는 뜻
· 공분산이 양수로 나오면 식이 성립하지 않음 → 추세나 다른 요인이 바운스를 덮고 있다는 신호
이 값은 정확한 호가 스프레드가 아니라 "체결가 흔들림으로 보이는 비용"의 대략적인 크기입니다. 그래도 백테스트에 넣을 스프레드 비용의 하한을 잡는 데는 쓸 만합니다.
4. 백테스트를 얼마나 부풀리나 — 단타 예시
체결가 데이터로 아래 규칙을 백테스트한다고 해 보겠습니다. "직전 체결이 위로 튀었으면 매도, 다음 체결에서 청산." 호가는 1번 예시처럼 99.95 / 100.05로 고정이고, 실제 가격은 움직이지 않습니다.
· 백테스트: 체결가 100.05(위로 튐)에서 매도 기록 → 다음 체결은 50% 확률로 100.05, 50%로 99.95 → 평균 청산가 100.00
· 백테스트 거래당 평균 손익: 100.05 − 100.00 = +0.05 (+0.05%)
· 실제: 시장가 매도는 매수호가 99.95에 체결, 시장가 환매는 매도호가 100.05에 체결
· 실제 거래당 손익: 99.95 − 100.05 = −0.10 (−0.10%)
· 1,000회 반복, 거래당 명목 $1,000 기준: 백테스트 +$500 / 실제 −$1,000
· 테이커 수수료 0.05%를 양쪽에 더하면 실제는 거래당 −$2.00, 1,000회 −$2,000
가격이 1원도 움직이지 않았는데 백테스트는 꾸준한 수익 곡선을 그립니다. 백테스트는 "튄 체결가"에 사고팔 수 있다고 가정했지만, 실제로 내 주문은 항상 스프레드의 불리한 쪽에서 체결되기 때문입니다. 수수료와 스프레드를 합친 실제 비용 구조는 왕복 거래 비용에서, 비용이 손익분기 승률을 얼마나 올리는지는 수수료 반영 손익분기 승률에서 다룹니다.
5. 어떤 상황에서 특히 위험한가
· 짧은 시간 단위 — 틱, 1분봉 신호는 바운스 비중이 큽니다. 같은 규칙을 5분, 15분으로 늘렸을 때 성과가 급격히 사라지면 바운스 착시일 가능성이 높습니다.
· 스프레드가 넓은 종목 — 거래량이 적은 알트코인은 스프레드가 0.1%를 넘기도 합니다. 대형 코인은 호가 간격이 매우 좁아 영향이 작지만, 급변동 구간에서는 스프레드가 순간적으로 벌어집니다.
· 종가 기준 역추세 신호 — "종가가 직전 봉 대비 크게 내렸으면 매수" 같은 규칙은 종가가 우연히 매수호가에 찍힌 봉을 골라내는 경향이 있습니다.
· 고가·저가 터치 기준 진입 — 봉의 고가와 저가는 바운스로 바깥쪽 호가에 찍힌 체결일 수 있습니다. 지정가가 그 값에 체결됐다고 가정하면 성과가 부풀려집니다(백테스트 슬리피지 모델링).
6. 걸러내는 방법
· 중간가(mid) 또는 호가 데이터 사용 — 가능하면 체결가 대신 (매수호가 + 매도호가) ÷ 2로 신호를 계산합니다. 바운스가 원천적으로 사라집니다.
· 체결 가정을 불리한 쪽으로 — 매수는 매도호가, 매도는 매수호가에 체결된다고 가정합니다. 호가 데이터가 없으면 Roll 추정치의 절반을 한쪽 비용으로 더합니다.
· 신호 봉과 체결 봉 분리 — 신호를 낸 봉의 종가가 아니라 다음 봉 시가에 진입하도록 합니다. 신호와 체결이 같은 체결가를 공유하지 않게 됩니다. 이는 미래참조 편향을 막는 기본 습관과도 같습니다.
· 1차 자기상관 점검 — 사용하는 데이터의 1분 수익률 자기상관이 뚜렷한 음수라면 바운스가 섞여 있다고 보고 해석합니다.
· 시간 단위 민감도 — 1분, 5분, 15분에서 같은 규칙을 돌려 성과가 비슷하게 유지되는지 봅니다.
· 다른 기간 재검증 — 개발 기간에서 고른 규칙은 손대지 않은 기간에서 다시 확인합니다(홀드아웃 검증, 백테스트 데이터 품질).
정리
호가 바운스는 체결가가 매수호가와 매도호가를 오가며 만드는 가짜 변동입니다. 스프레드 0.10에서 실제 가격이 그대로면 체결가 수익률의 1차 자기상관은 −0.5까지 내려가고, 이를 평균회귀로 착각한 단타 규칙은 백테스트에서 거래당 +0.05를 보여도 실제로는 −0.10, 수수료까지 넣으면 그보다 더 잃습니다. 짧은 시간 단위와 넓은 스프레드에서 영향이 커지므로, 중간가로 신호를 계산하고 불리한 쪽 체결을 가정하며 시간 단위를 바꿔 결과가 유지되는지 확인하는 것이 기본 절차입니다.
주의
본문의 호가, 스프레드, 공분산, 거래 횟수는 계산 구조를 보여주기 위한 가정 예시이며 특정 개인·계좌·전략의 실제 성과가 아닙니다. 이 글은 교육 정보이며 특정 자산의 매매 권유가 아닙니다. 코인 선물 거래는 원금 손실 위험이 크고, 투자 판단과 그 결과는 본인 책임입니다.
NOONOO TRADING 무료 채팅방에서 실시간 트레이딩을 같이 보세요.
봇에서 시작하기📈 OKX 신규 가입 시 거래 수수료 할인
OKX 수수료 할인 가입 →