Roll bid–ask spread 추정량: 공식, 계산 예시와 한계
Roll 추정량이 음의 수익률 자기공분산으로 유효 bid–ask spread를 추정하는 원리와 가상 계산, 가정이 맞지 않는 경우를 설명합니다
이 글에서 다루는 내용Roll 추정량이 측정하려는 대상
짧은 요약
Roll 추정량은 연속된 체결가격 수익률의 음의 공분산으로부터 모형이 함의하는 유효 bid–ask spread를 추정합니다. 과거 호가 기록 없이 체결가격만으로 계산할 수 있지만, 결과는 기초가치의 움직임과 거래 방향, 표본 구성, 스프레드 안정성에 관한 가정에 달려 있습니다.
Roll 추정량이 측정하려는 대상
호가 스프레드는 특정 시점의 최우선 매도호가에서 매수호가를 뺀 값입니다. 유효 스프레드는 실제 체결된 가격이 그 시점 중간가격에서 얼마나 떨어져 있는지 요약합니다. Roll 추정량은 관측된 체결가격 변화의 시계열 공분산을 이용해 단기적인 가격 반전을 만들었을 수 있는 가격 간격을 추론하는 저빈도 대리치입니다.
장점은 필요한 자료가 제한적이라는 점입니다. 신뢰할 수 있는 체결가격은 있지만 과거 매수·매도호가나 거래 주도 방향 표시가 없을 때도 계산할 수 있습니다. 그래서 과거 시장을 비교하거나 호가 이력이 불완전한 시장을 분석할 때 쓸 수 있습니다. 다만 실제 호가창을 복원하거나 개별 체결의 매수·매도 방향을 밝혀주지는 않으며, 현재 거래 가능한 스프레드를 알려주지도 않습니다. Roll의 원 논문은 효율적 시장을 가정해 이 측정량을 도출하고, 추정 대상이 반드시 표시 호가 스프레드인 것은 아니며 유효 스프레드라고 설명합니다 (Roll, 1984).
이 추정치는 완전한 거래비용 측정값도 아닙니다. 중개 수수료, 특정 주문이 만드는 시장 충격, 대기 시간의 비용, 미체결 수량, 관측 후 가격 변화를 포함하지 않습니다. 과거 체결가격 움직임을 모형으로 요약한 통계량으로 다루어야 하며, 실제 체결 가능한 호가나 백테스트 전체 비용 모형으로 해석해서는 안 됩니다.
Bid–ask bounce는 음의 공분산을 만듭니다
\(x_t\)를 로그 체결가격, \(m_t\)를 매수호가와 매도호가가 놓인 관측 불가능한 로그 가치, \(s\)를 로그 가격 단위의 전체 유효 스프레드라고 하겠습니다. 단순하고 대칭적인 모형에서는
\[ x_t=m_t+\frac{s}{2}q_t, \]
여기서 \(q_t=+1\)은 매도호가에서 체결된 매수 주도 거래, \(q_t=-1\)은 매수호가에서 체결된 매도 주도 거래입니다. 따라서 관측 수익률은
\[ r_t=\Delta x_t=\Delta m_t+\frac{s}{2}(q_t-q_{t-1}) \]
가 됩니다.
거래 방향이 \(+1\)과 \(-1\) 사이에서 독립적으로, 같은 확률로 바뀌고 기초가치 혁신에 시계열 공분산이 없으며 표본 동안 스프레드가 일정하다고 가정해 보겠습니다. 거래가 한쪽 호가에서 다른 쪽 호가로 바뀌면 기초가치는 거의 움직이지 않아도 체결가격이 스프레드 폭만큼 이동합니다. 매도호가에서 체결된 매수 뒤에 매수호가에서 체결된 매도가 오면 양의 수익률에 이어 음의 반전이 발생하며, 반대 순서도 가능합니다. 같은 쪽 거래가 두 번 이어지면 두 관측 사이 스프레드 성분이 0일 수 있습니다.
이 가정에서 스프레드 성분은 연속 수익률을 평균적으로 반대 방향으로 움직이게 합니다.
\[ \operatorname{Cov}(r_t,r_{t-1})=-\frac{s^2}{4}. \]
이를 \(s\)에 대해 풀면 Roll 공식이 나옵니다. 이 공분산 패턴은 모형이 성립할 때의 결과이지, 관측된 모든 가격 반전이 bid–ask spread 때문에 생겼다는 증거는 아닙니다.
<!-- Illustration placement: after section 3; text-free conceptual comparison of a smooth underlying value path with transaction prices alternating above and below it. No labels, axes, or values. -->
자기상관이 아니라 1차 공분산을 사용합니다
1차 공분산을 \(C_1=\operatorname{Cov}(r_t,r_{t-1})\)라고 쓰겠습니다. 수익률이 \(T\)개인 표본에서 사용할 수 있는 표본 관례 하나는 다음과 같습니다.
\[ \widehat C_1=\frac{1}{T-1}\sum_{t=2}^{T}(r_t-\bar r)(r_{t-1}-\bar r), \]
여기서 \(\bar r\)은 표본 평균입니다. \(\widehat C_1<0\)일 때 대입 추정량은
\[ \widehat s_{\text{Roll}}=2\sqrt{-\widehat C_1} \]
입니다.
추정 결과의 단위는 공분산에 사용한 수익률 단위와 같습니다. 로그 수익률 \(r_t\)를 쓰면 \(\widehat s\)는 비율 또는 로그 가격 스프레드입니다. 수익률이 아니라 달러 가격 변화량을 입력하면 추정치는 가격 단위가 됩니다. 종목이나 기간 사이 추정치를 비교하기 전에 변환 방식, 표본 간격, 공분산 계산 관례를 밝혀야 합니다.
Roll은 상관계수보다 공분산을 강조합니다. 상관계수는 무조건부 수익률 분산으로 나누는데, 이 분산에는 효율적 가치에 새 정보가 반영되는 변동도 포함됩니다. 스프레드 발생 구조가 같더라도 뉴스로 인한 분산이 달라질 수 있습니다. 정규화하지 않은 공분산은 모형 안에서 제곱 스프레드와 직접 연결되며, 이를 자기상관으로 바꾸면 추정량과 해석이 달라집니다. 로그 가격, 배율을 적용한 수익률 또는 다른 분모를 사용한다면 그 관례를 명시하세요.

가상 계산에서 −1.44 bp²는 2.4 bp 추정치가 됩니다
가상 체결 로그 수익률 표본의 단위를 bp로 두고, 평균을 뺀 1차 표본 공분산이 \(-1.44\,\text{bp}^2\)라고 하겠습니다. 추정량은 다음과 같습니다.
\[ \widehat s_{\text{Roll}}=2\sqrt{-(-1.44)}=2\sqrt{1.44}=2(1.20)=2.40\,\text{bp}. \]
모형이 성립한다면 전체 비율 스프레드 추정치는 \(2.40\) bp, 즉 \(0.024\%\)입니다. 중간가격을 가상으로 \(\$100\)이라고 놓으면, 작은 스프레드 근사로 달러 스프레드는
\[ \$100\times 0.00024=\$0.024 \]
주당 전체 스프레드가 됩니다. 중간가격에서 한쪽 호가까지는 절반인 약 \(\$0.012\)입니다. 호가가 그대로 유지된 채 1,000주를 매도호가에 사고 매수호가에 팔았다면, 수수료·기타 비용·가격 변화·시장 충격 전 전체 스프레드 가격 차이는 약 \(\$24\)입니다. 이는 계산을 보여주기 위한 가정이며 관측된 호가나 보장된 체결비용이 아닙니다.
이 계산만으로 \(\$100\)이 실제 체결 가능한 중간가격이었는지, 해당 가격에 수량이 얼마나 있었는지, 주문을 냈다면 얼마에 체결됐을지는 알 수 없습니다. Roll 추정량 하나로 과거 표본을 요약하면 시간대, 주문 크기, 시장 상태에 따른 차이가 가려질 수 있습니다. 자산, 간격, 스프레드 정의가 일치하지 않는다면 추정치와 현재 표시 스프레드를 직접 비교하지 마세요.
스프레드와 표본 구간이 바뀌면 추정 대상도 달라집니다
\(s\)가 일정하다는 가정은 단순화를 위한 것입니다. Roll은 시간에 따라 스프레드가 변할 때도 공분산이 모형 아래 평균제곱 스프레드와 연결됨을 보입니다. 이때 제곱근 공식을 적용하면 일반적으로 산술평균 스프레드가 아니라 제곱평균제곱근(RMS) 스프레드가 됩니다. 스프레드가 제곱으로 들어가므로 소수의 넓은 스프레드 관측치가 추정치에 더 큰 영향을 미칠 수 있습니다.
원 논문에는 더 길고 서로 겹치지 않는 관측 구간에서도 모형상 스프레드 유발 공분산의 기댓값이 불변이라는 결과가 있습니다. 그렇다고 일간, 주간, 장중 실증 추정치가 항상 같다는 뜻은 아닙니다. 현실에서는 거래 방향이 관측을 넘어 지속되거나, 일정 구간에 거래가 없거나, 스프레드 환경이 달라집니다. 간격을 바꾸면 어떤 거래가 표본가격으로 들어가는지, 각 수익률에 정보 변동이 얼마나 포함되는지도 달라집니다.
결과를 본 뒤 표본 규칙을 고르지 마세요. 예를 들어 공식 종가 체결, 중간가격 표시, 오래된 최종 체결가격을 한데 섞지 말고 일관된 체결가격 표본을 비교합니다. 수익률이 달력 시간과 거래 세션 중 어느 간격을 나타내는지, 휴장일과 무거래 구간을 어떻게 처리했는지, 기업행동이나 선물 월물 교체를 조정했는지도 기록해야 합니다. 같은 공식을 적용해도 표본 간격이 다르면 실증 설계가 달라집니다.
양의 공분산에서는 기본 추정량을 계산할 수 없습니다
제곱근이 실수가 되려면 표본 공분산이 음수여야 합니다. \(\widehat C_1=0\)이면 대입 계산값은 0이고, \(\widehat C_1>0\)이면 기본 공식이 정의되지 않습니다. 0 또는 양의 표본 공분산이 참 스프레드가 0이라는 증거는 아닙니다. 표본 잡음, 지속적인 거래 방향, 가격 단위의 이산성, 효율적 가치 수익률의 시계열 의존성, 또는 짧은 표본에서 잡음과 구분하기 어려울 만큼 작은 스프레드 때문일 수 있습니다.
실증 분석 중 일부는 제곱근을 구하기 전에 양의 공분산을 0으로 바꿉니다. 다른 분석은 절댓값을 취하거나 공분산이 음수인 구간만 보고합니다. 숫자를 얻을 수는 있지만 이런 처리는 Roll 방정식에서 자동으로 나오는 규칙이 아닙니다. 계산 불가능했던 추정치가 몇 개인지, 0으로 바꾼 빈도가 얼마인지, 제외로 표본이 달라졌는지 함께 보고하세요. 절댓값을 아무 설명 없이 적용하면 모형을 거스르는 공분산을 양의 스프레드로 바꿔버릴 수 있습니다.
표본이 작으면 공분산 자체의 추정오차가 있고, 여기에 제곱근 변환이 더해집니다. Harris는 Roll 모형 아래 유한표본 성질을 분석해 표본 잡음이 양의 공분산을 만들 수 있고 비선형 변환이 유의미한 편향을 낳을 수 있다고 보였습니다 (Harris, 1990). 점 추정치에는 표본 길이를 함께 적고, 합리적인 구간 변경에 얼마나 민감한지 보여주세요. 가격 자료가 뒷받침하지 않는 정밀도를 표시해서는 안 됩니다.
거래 방향과 효율적 가치의 지속성이 모형을 깨뜨릴 수 있습니다
단순한 유도에는 음의 공분산보다 더 많은 가정이 필요합니다. 매수·매도 주도 거래가 독립적이고 발생 확률이 같아야 합니다. 호가는 효율적 가치 주변에 대칭적으로 놓이고, 효율적 가치 변화에는 시계열 공분산이 없어야 하며, 표본추출은 실제 체결가격 과정을 나타내야 합니다. 주문 분할과 재고 관리는 거래 방향을 지속적으로 만들 수 있습니다. 매수 주문이 연달아 들어오면 체결가격의 스프레드 성분이 유지될 수 있어 음의 공분산이 모형 예측보다 약해집니다.
중간가격 경로도 시계열 의존성을 가질 수 있습니다. 모멘텀, 반전, 오래된 가격, 비동시 관측 또는 예정된 가격 조정이 유효 스프레드 변화 없이도 양·음의 수익률 공분산을 만들 수 있습니다. 가격 호가 단위의 이산성도 자체적인 반전을 일으킬 수 있습니다. 이런 효과가 표본을 지배해야만 문제가 되는 것은 아닙니다. 추정량은 한 개 모멘트에서 스프레드를 추론하므로 그 모멘트에 영향을 주는 다른 과정도 결과를 혼란시킬 수 있습니다.
시간에 따른 변화는 표본 평균과 안정된 시장 특성을 구별하게 합니다. 뉴스, 장 시작과 종료, 얕은 유동성, 스트레스 구간에 스프레드가 넓어질 수 있습니다. 전체 구간 추정치는 이런 시점을 가릴 수 있고, 짧은 구간은 공분산을 추정하기에 너무 noisy할 수 있습니다. 시계열을 살펴보고 구간 정의를 보고하세요. 음의 시차 공분산은 모형 아래 bid–ask bounce와 일치하지만 단기 가격 움직임 전체를 인과적으로 분해해 주지는 않습니다.
호가 자료와 다른 저빈도 추정량은 다른 질문에 답합니다
신뢰할 수 있는 호가와 체결 자료가 있다면 각 체결가격과 같은 시점의 중간가격을 비교하고 거래 방향을 반영해 직접 유효 스프레드를 계산할 수 있습니다. 그러려면 동기화되고 정제된 관측값과 잠금·교차 호가, 오래된 호가, 순서가 뒤바뀐 호가를 처리하는 규칙이 필요합니다. 이 방법은 해당 자료의 실제 체결을 측정합니다. 반면 Roll은 체결가격의 시계열 공분산에서 스프레드를 추론합니다. 거래 방향을 판단하는 규칙이 필요한 이유는 Lee–Ready 거래 방향 분류 가이드에서 설명합니다.
다른 저빈도 방법은 다른 정보와 가정을 사용합니다. Hasbrouck은 기본 Roll 대입 변환에만 의존하는 대신 일일 종가에서 Gibbs sampler 추정량을 개발했습니다 (Hasbrouck, 2009). Corwin과 Schultz는 거래 방향의 동일한 동학에 의존하지 않는 일일 고가·저가 기반 스프레드 추정량을 제안했습니다 (Corwin and Schultz, 2012). 이런 대안도 임의의 가격 시계열에서 실제 호가 스프레드를 관측하게 해주지는 않습니다. 각각 고유한 가정과 검증 범위가 있습니다.
실무 질문에 따라 지표를 선택하세요. 호가 자료가 제한된 과거 시장 비교에서는 실패 빈도와 가정을 보고한다면 저빈도 대리치를 쓸 수 있습니다. 실제 주문을 낼 때는 현재 매수·매도호가, 호가 잔량, 주문 수량을 확인해야 합니다. 선물 스프레드와 슬리피지 가이드는 표시 스프레드와 실현 체결 차이를 구분하고, ETF 유동성 가이드는 거래량만으로 체결 가능한 유동성을 알 수 없는 이유를 다룹니다.
가정을 보고하고 추정치를 신호 칸에 넣지 마세요
재현 가능한 보고서에는 관측값이 체결인지, 공식 종가인지, 다른 체결가격 대리치인지 밝혀야 합니다. 입력값이 가격 변화량인지 로그 수익률인지, 표본 간격, 관측치 수, 공분산 분모, 0 또는 양의 공분산 처리도 적습니다. 자산 범위와 날짜, 기업행동·월물 교체 조정, 자료 필터, 스프레드를 가격·비율·bp 중 어떤 단위로 표시했는지도 명시하세요. 스프레드가 안정적이라는 가정이 의심스럽다면 공분산이 가장 음수로 나온 구간을 고르는 대신 사전에 정한 여러 하위 구간의 추정치를 보여주세요.
Roll 추정치는 특정 모형 아래 과거 체결비용을 대리합니다. 오늘의 호가를 알려주거나, 체결가격을 보장하거나, 전략의 전체 비용을 측정하거나, 다음 수익률을 예측하지 않습니다. 백테스트를 평가할 때는 주문 크기, 수수료, 시장 충격, 부분 체결, 주문 시점을 반영한 비용과 체결 가정이 별도로 필요합니다. 추정 스프레드가 작다는 사실만으로 매매 우위가 입증되지는 않습니다. 표본 간격에 따른 관측 변동성을 더 살펴보려면 실현 변동성 가이드를 참고하세요.
자주 묻는 질문
Q1Roll 추정량은 과거 매수·매도호가가 있어야 하나요?
아닙니다. 기본형은 체결가격과 연속 수익률의 공분산을 사용합니다. 호가 이력이 없어도 계산할 수 있지만, 모형 기반 추정치일 뿐 당시 실제 호가를 복원하지는 않습니다.
Q2양의 자기공분산은 스프레드가 0이라는 뜻인가요?
아닙니다. 기본 공식은 양의 표본 공분산에서 정의되지 않습니다. 추정량을 0으로 자르는 관례는 참 스프레드가 0이라는 증거가 아니므로 해당 처리와 표본 비중을 보고해야 합니다.
Q3Roll 추정치를 실시간 백테스트의 스프레드 비용으로 쓸 수 있나요?
그 자체만으로는 부족합니다. 특정 가정에 따른 과거 대리치입니다. 백테스트에는 거래소, 주문 크기, 시점, 수수료와 체결 방식을 반영한 별도 비용 모형이 필요합니다.
출처와 더 읽을 자료
내용 정정 제보
이 아티클 링크를 담은 이메일 초안을 준비합니다. 직접 보내야 Mark에 제보가 접수됩니다
QUICK CHECK
글을 다 읽었다면, 3문항으로 확인해보세요
Question 01
기본 Roll 추정량은 어떤 입력으로 스프레드를 추정하나요?
정답을 고르면 바로 설명을 볼 수 있어요