거래 100건. taker 수수료 0.04%. 슬리피지 가정치 0.02%. 이런 숫자는 백테스트를 정밀하게 측정한 것처럼 보이게 합니다. 하지만 놀라운 숫자는 마지막 값입니다. 슬리피지율 하나만으로는 주문이 그 가격에 체결될 수 있었는지 거의 알 수 없습니다.
슬리피지는 무엇을 거래하는지, 언제 거래하는지, 그리고 주문량이 그 시점의 가용 유동성에 비해 얼마나 큰지에 따라 달라집니다. 캔들로 만든 백테스트는 대개 앞의 두 가지도 대략적으로만 알고, 세 번째는 전혀 알지 못합니다. 백테스트의 평균 체결가를 확정된 사실처럼 다루면, 전략이 실제로 얻은 적 없는 체결 성과를 부여할 수 있습니다.
OHLCV만으로 평균 체결가를 알 수 없는 이유는 무엇인가요?
캔들은 일정 시간 동안의 가격 범위와 총 거래량을 기록합니다. 거래량이 가격대별로 어떻게 분포했는지, 최우선 매수·매도호가에 얼마나 쌓여 있었는지, 또는 캔들의 저가를 만든 거래보다 내 주문이 먼저 도착했는지는 알려주지 않습니다. 작은 거래 한 번으로 찍힌 저가와 꾸준한 거래량을 소화하며 형성된 저가는 OHLC 값이 같습니다.
거래량이 $200,000이고 $50,000 규모의 시장가 매수가 들어온 1-minute 봉을 생각해 보세요. 주문은 봉 거래량의 25%에 해당합니다. 그렇다고 시장 가격을 25% 움직였을 것이라거나 봉 시가에 체결될 수 있었음을 증명하는 것은 아닙니다. 다만 봉 거래량에 비해 주문이 충분히 커서, 시장 충격이 없다고 가정하는 데 의문을 가져야 한다는 뜻입니다. 같은 주문이 거래량의 0.2%에 불과하다면 우려는 줄지만, 거래량만으로는 호가창 깊이나 유동성 보충 여부를 여전히 알 수 없습니다.
그래서 “슬리피지는 2 basis points”라는 말은 해당 종목의 속성이 아니라 모델링 선택입니다. 유용한 기준값일 수는 있지만, 모든 상황에 통하는 답은 아닙니다.
봉 데이터로 시장 충격을 어떻게 추정해야 하나요?
먼저 데이터가 뒷받침할 수 있는 수준에서 시작하세요. 각 주문의 참여율, 즉 주문 명목 금액을 해당 봉의 거래 명목 금액으로 나눈 값을 계산합니다. 그런 다음 참여율 구간별로 전략 성과가 어떻게 달라지는지 살펴보세요. 아래는 의도적으로 단순화한 예시입니다. 가정한 시장 충격은 스트레스 테스트 입력값이며, 특정 거래소의 체결을 추정한 값이 아닙니다.
| 주문 / 봉 명목 금액 | 예시 편도 시장 충격 | 확인할 점 |
|---|---|---|
| 0.2% | 1 bp | 스프레드와 taker 수수료가 이미 이보다 큰가요? |
| 2% | 5 bp | 스프레드 확대와 체결 지연을 가정해도 엣지가 유지되나요? |
| 20% | 25 bp | 높은 참여율 자체가 가격 흐름을 바꿀까요? |
1 basis point는 0.01%입니다. 전략이 양방향으로 각각 $100,000을 거래한다면, 양쪽에 5 bp의 시장 충격이 발생할 경우 수수료를 제외하고 왕복 거래에 약 $100이 듭니다. 계산은 단순하지만 5 bp가 타당한지 판단하려면 더 많은 근거가 필요합니다. 거래량이 급증할 때만 신호가 발생한다면, 봉 전체 거래량을 분모로 쓸 경우 실제 주문이 도착하는 몇 분 동안의 참여율이 실제보다 안전해 보일 수도 있습니다.
슬리피지 스트레스 테스트에는 무엇을 포함해야 하나요?
체결 불확실성을 포트폴리오 전체 평균 하나에 묻어두지 마세요. 결과를 바꾸는 항목을 드러내 두세요:
- 방향: 매수 주문은 매도호가를, 매도 주문은 매수호가를 넘어서 체결됩니다. 진입과 청산 각각에 스프레드 비용이 발생합니다.
- 주문 규모: 백테스트 평균만 제시하지 말고 거래별, 유동성 구간별 참여율을 보고하세요.
- 주문 유형: 시장가 주문은 즉시 체결을 위해 비용을 지불합니다. 지정가 주문은 가격 움직임을 놓치거나 다른 대기 주문 뒤에 밀릴 수 있습니다.
- 타이밍: 봉 마감 신호를 사용하면서 마감가를 확인한 뒤 그 가격에 체결됐다고 주장할 수는 없습니다.
- 시장 상황: 급격한 가격 변동, 유동성이 얇은 시간대, 그리고 전략이 작동하는 정확한 조건에서는 가정을 더 보수적으로 잡으세요.
최소한 기본 시나리오와 더 가혹한 시나리오를 실행하세요. 예를 들어 가정한 스프레드와 시장 충격을 2배로 높인 다음, 어떤 거래와 기간에서 변화가 발생했는지 살펴보세요. 가장 조용한 상황에서만 체결된다고 가정해야 전략이 통한다면, 그것도 리서치 결과입니다. 페이퍼 트레이딩 전에 알아두는 편이 낫습니다.
수수료, 스프레드, 시장 충격은 별도 항목으로 유지하세요. 수수료는 계정의 수수료표에서 정해지지만, 스프레드와 시장 충격은 체결 방식에 따라 달라집니다. 이를 하나로 합치면 어떤 가정이 성과를 좌우하는지 알기 어렵습니다.
언제 호가창 데이터가 필요한가요?
전략의 엣지가 스프레드와 비슷하거나, 거래가 잦거나, 짧게 유지되는 유동성에 의존한다면 체결 및 호가 데이터를 사용하세요. 대기열 순서, 부분 체결, 호가창 소진 여부에 따라 신호의 실행 가능성이 결정된다면 호가 깊이 스냅샷이나 이벤트 단위 호가창 데이터가 필요합니다. 이 경우에도 과거 데이터를 재생한다고 해서 시장 충격이 완벽히 재현되지는 않습니다. 관측된 유동성에는 가상의 내 주문이 포함되어 있지 않기 때문입니다.
거래 속도가 느린 전략이라면 봉 데이터로 아이디어를 걸러낼 수 있습니다. 관측된 거래량에 비해 포지션 규모를 작게 유지하고, 가정한 시장 충격 곡선을 공개하고, 합리적인 수준의 가정 변화가 결과를 없애는지 테스트하세요. 대략적인 체결 모델을 방어 가능한 방식으로 사용하는 예입니다. 이를 정확한 평균 체결가라고 부르는 것은 적절하지 않습니다.
실무적인 목표는 진짜 슬리피지 숫자 하나를 맞히는 것이 아닙니다. 전략이 더는 타당하지 않게 되는 구간을 찾은 뒤, 데이터와 주문 규모가 그 경계에서 충분히 떨어져 있는지 확인하는 것입니다. 그렇지 않다면 다음으로 유용한 리서치는 백테스트 보고서에 소수점 자릿수를 더하는 일이 아니라 더 나은 체결 데이터를 확보하는 일입니다.
← 전체 글


