The Roll Model of Trade Prices

Roll(1984)은 증권이 거래되는 effective bid-ask spread를 설명하는 첫 번째 모델 중 하나다. 증권의 liquidity를 계량화하려는 초창기 시도로 알려져 있으며, 시장미시구조(Market Microstructure) 분야를 개척한 모형 중 가장 유명한 모델이다.

Random walk model of security prices

시간 tt에서 거래되는 가격 ptp_t를 가정하자. 여기서 시간 인덱스 tt는 한 시간 간격이 될 수 있고, 일 분이 될 수도 있으며, 하루가 될 수도 있다. 이 시간을 앞으로 캘린터 타임(calander time)이라고 부르도록 한다. random walk를 따르는 가격 계열 p_t는 다음을 따른다고 가정한다.

pt=pt1+μ+utp_t = p_{t - 1} + \mu + u_t

여기서 ut,t{0,,T}u_t, t \in \{0,\dots, T\}인 white noise 계열이고 iid 프로세스를 따르는 random variable이다. 직관적으로 보자면, 새로운 정보가 시장에 도달하면 가격은 변화한다. μ\mu는 시장의 기대 가격 변화 수준이다 (E[Δpt])(E[\Delta p_t]). 만약 시장의 기대가 가격이 상승하거나 하락하지 않는 횡보장 혹은 정적인 상태라면 μ=0\mu = 0이 될 것이다. 이 상황에서 가격 pt=pt1+utp_t = p_{t-1} + u_t이기 때문에 확률보행 과정을 따른다. 따라서 이 경우, 가격의 예측은 전혀 불가능하다(이 과정을 martingale 과정이라고 부른다).

그러나, 현실적으로 가격이 확률보행 과정을 완벽히 따르는 것은 보기 힘들다. 당장에 증권 시장에서는 판매자와 구매자 뿐만 아니라 정보 기반 거래자와 유동성 공급자, 브로커가 존재하며 중간 매개자들은 거래 유동성을 원활히 하고 매칭을 해 주는 대신 수수료를 취한다. 따라서, bid price, ask price가 동시에 존재하는 시장이다.

The Roll Model of bid, ask, and Transaction prices

Roll은 bid price와 ask price 사이의 중간 가격 계열 mtm_t를 고려하였다. 추세가 없는 random walk process {mt}\{m_t\}를 다음과 같이 가정해 보자.

mt=mt1+utm_t = m_{t-1} + u_t

중간 가격의 변화분 Δmt=mtmt1\Delta m_t = m_t - m_{t-1}은 정규 분포로부터 독립적이고 동일하게 추출된다.

ΔmtN(0,σu2)\Delta m_t \sim N(0, \sigma_u^2)

관측된 가격 {pt}\{p_t\}는 중간 가격 계열 {mt}\{m_t\}에 스프레드가 더해진 순차적 거래에 대한 결과이다.

pt=mt+btcp_t = m_t + b_tc

여기서 cc는 bid-ask spread의 절반이고 bt{1,1}b_t \in \{-1, 1\}은 공격적인 거래자의 거래 방향(side)이다. Roll Model은 매수와 매도가 발생할 확률이 동일하고(각각 P[bt=1]=P[bt=1]=12P[b_t = 1] = P[b_t = -1] = \frac{1}{2}), 계열 독립 (E[btbt1]=0)(E[b_t b_{t-1}] = 0)이며, E[btut]=0E[b_tu_t] = 0으로 가정한다. 이런 가정들 하에서 ccσu2\sigma_u^2의 값은 다음과 같이 도출할 수 있다.

σ2[Δpt]=E[(Δpt)2](E[(Δpt)])2=2c2+σu2\sigma^2[\Delta p_t] = E\left[ (\Delta p_t)^2 \right] - \left(E[(\Delta p_t)] \right)^2 = 2c^2 + \sigma_u^2
σ[Δpt,Δpt1]=c2\sigma\left[\Delta p_t, \Delta p_{t-1}\right] = - c^2

위 식을 풀어 보면 spread추정량 c=max{0,σ[Δpt,Δpt1]}c = \sqrt{\max\{0, -\sigma[\Delta p_t, \Delta p_{t-1}]\}}과 변동성 추정량 σu2=σ2[Δpt]+2σ[Δpt,Δpt1]\sigma_u^2 = \sigma^2[\Delta p_t] + 2\sigma[\Delta p_t, \Delta p_{t-1}]의 결과를 얻을 수 있다. 즉, bid-ask spread는 가격 변화량 계열의 공분산에 대한 함수이고, 시장 미시구조적 잡음을 제거한 관측되지 않은 가격의 잡음은 관측된 잡음(σ2[Δpt])(\sigma^2[\Delta p_t])과 가격변화량 계열의 공분산의 함수(σ[Δpt,Δpt1])(\sigma[\Delta p_t, \Delta p_{t-1}])이다.

Roll Model에서 추정된 spread cc는 다음과 같은 의미를 가진다.

  1. 거래 비용의 척도: Roll 모델로 추정된 스프레드는 거래를 실행할 때 발생하는 시장 참여자의 평균 거래 비용을 나타낸다. 이 비용은 주로 매수자와 매도자 사이의 정보 비대칭, 주문 실행 리스크, 시장 유동성의 부족 등으로 인해 발생한다.
  2. 시장 유동성의 지표: 낮은 스프레드는 높은 시장 유동성을 의미하고, 투자자들이 상대적으로 낮은 거래 비용으로 자산을 사고파는 것이 가능함을 나타낸다. 반면, 높은 스프레드는 낮은 유동성을 나타내며, 투자자들이 더 높은 거래 비용을 부담해야 함을 의미한다. 즉, 스프레드가 벌어질 수록 시장의 불균형이 발생한다는 것을 간접적으로 알 수 있다.
  3. 정보 효율성의 측정: Roll 모델의 스프레드 추정치는 시장의 정보 효율성을 간접적으로 평가하는 데 사용될 수 있다. 스프레드가 넓을수록 시장 참여자들 사이에 더 많은 정보 비대칭이 존재한다고 해석할 수 있다. 즉 스프레드가 작을수록 정보의 공개된 정도가 크다는 의미이다.

Roll Model이 강력한 또 한가지 이유는 주식시장 뿐만이 아닌 거래가 적은 Asset based Security market 혹은 real estate 거래에서도 시장 불균형의 척도로써 사용이 가능하기 때문이다. 다만, Roll Model에서도 약점은 존재하는데 거래 비용 외의 가격 변동 원인 무시, 시장의 모든 참여자가 같은 스프레드를 경험한다는 가정이 현실과 동떨어져 있다는 점이다. 또한, mid price series {mt}\{m_t\}가 iid 계열이라는 점도 비현실적인 가정인 것도 고려해야 한다.

python code

class RollModel:
    def __init__(self, close_prices : pd.Series, window : int = 20) -> None:
        self.close_prices = close_prices
        self.window = window
        
    def roll_measure(self) -> pd.Series :
        price_diff = self.close_prices.diff()
        price_diff_lag = price_diff.shift(1)
        return 2 * np.sqrt(abs(price_diff.rolling(window = self.window).cov(price_diff_lag)))
        
    def roll_impact(self, dollar_volume : pd.Series) -> pd.Series :
        roll_measure = self.roll_measure()
        return roll_measure / dollar_volume

class RollModelroll_measure()roll_impact()로 두 개의 method를 가진다. roll_measure()은 Roll Spread 추정치를 계산하고, roll_impact()는 Roll spread 추정량에 기반하여 거래하는 달러 가치 대비 시장에 미치는 영향을 계량화한다.

다음은 S&P500 일별 데이터에 대한 Roll Spread 추정치와 impact이다.

재미있는 점은, Roll Measure과 GARCH모형의 추정치가 거의 비슷한 양상을 보인다는 것이다.

                     Constant Mean - GARCH Model Results                      
==============================================================================
Dep. Variable:                  Close   R-squared:                       0.000
Mean Model:             Constant Mean   Adj. R-squared:                  0.000
Vol Model:                      GARCH   Log-Likelihood:                11556.2
Distribution:                  Normal   AIC:                          -23100.4
Method:            Maximum Likelihood   BIC:                          -23063.3
                                        No. Observations:                 3542
Date:                Tue, Feb 13 2024   Df Residuals:                     3541
Time:                        21:57:43   Df Model:                            1
                                   Mean Model                                  
===============================================================================
                  coef    std err          t      P>|t|        95.0% Conf. Int.
-------------------------------------------------------------------------------
mu         -6.9697e-04  7.257e-06    -96.041      0.000 [-7.112e-04,-6.827e-04]
                              Volatility Model                              
============================================================================
                 coef    std err          t      P>|t|      95.0% Conf. Int.
----------------------------------------------------------------------------
omega      2.0679e-06  1.533e-11  1.349e+05      0.000 [2.068e-06,2.068e-06]
alpha[1]       0.3242  2.594e-02     12.495  7.957e-36     [  0.273,  0.375]
beta[1]        0.2196  4.449e-02      4.936  7.978e-07     [  0.132,  0.307]
beta[2]        0.2196  6.326e-02      3.472  5.173e-04   [9.563e-02,  0.344]
beta[3]        0.2196  5.651e-02      3.886  1.018e-04     [  0.109,  0.330]
============================================================================

Covariance estimator: robust

y축이 log scale인 roll measure과 conditional volaility model(GARCH[1,3])(\mathrm{GARCH[1,3]})의 추정치는 다음과 같은 선형 관계를 가진다.

profile
자택경비원 1일차

0개의 댓글

관련 채용 정보