알파트로스

[ArbLab] Hedge Ratio 본문

HudsonThames/ArbitrageLab

[ArbLab] Hedge Ratio

알파트로스 2024. 7. 8. 22:20

 

Hudson & Thames에 따르면 스프레드의 평균 회귀 반감기를 최소화하는 방법으로 hedge ratio를 찾는것이 가장 좋다고 한다.

Hudson & Thames research team has also found out that optimal (in terms of cointegration tests statistics) hedge ratios are obtained by minimizng spread’s half-life of mean-reversion
출처

 

Hedge Ratio

Mean Reverting Spread를 를 찾는 방법에는 distance, cointegration, copula, ML 접근법 등 다양한 방법이 있다. 이 다음 단계로는, 스프레드 거래 방법 즉 X 종목을 몇 단위 매수하고 Y 종목을 몇 단위 매도할지 결정해야 한다. 이것이 Hedge Ratio 이다.

AMZN와 AMD 주식의 가격이 각각 3200와 78일 때 해지비율을 계산하지 않으면 P&L에 부정적인 영향을 미칠 수 있다. 1%의 AMZN 변동은 32의 P&L 변동을 야기하지만, AMD의 1% 변동은 0.78 변동만 야기한다. 그래서 해지비율 계산이 필요하다. 가장 쉬운 헤지비율 계산 방법은 AMZN 가격을 AMD 가격으로 나누어 이 값을 해지비율로 사용하는 것으로, 이 경우 AMZN 1 유닛 당 AMD 41 유닛을 거래한다.

 

\[S_{t}=P_{1, t}+\sum_{n=2}^{N} \omega_{n} P_{n, t}\]

  • \( P_{1,t} \): 우리가 헤지하려는 포트폴리오의 시점 \( t \)에서의 시장 가치.
    \( P_{n,t} \): 헤지를 구축하기 위해 사용할 수 있는 변수(도구 또는 포트폴리오)의 집합.
    \( \omega_n \): 각 변수의 보유량을 나타내는 벡터.

  • 헤징 오류는 \( h \) 관찰 후의 오류를 나타내며, 다음과 같이 정의된다
    헤징 오류는 헤지 비율 추정에서 중요하며, 이는 정상성 여부나 방법의 결과에 따라 달라질 수 있다.
    \[ e(h) = S_{T+h} - S_T \]
  • Hedge Ratio 추정 방법은 두 가지로 나눌 수 있다

    Single Period Method : 단일 시점에서의 관계를 분석.
    • OLS in Differences : 한 시점에서 자산 간의 관계를 선형 회귀 분석으로 추정
    • Minimum Variance Portfolio : 단일 시점에서 포트폴리오의 분산을 최소화하는 가중치를 계산
    • PCA : 단일 시점에서 주성분을 사용하여 자산 간의 관계를 분석
    Multi-Period Method : 여러 시점에 걸쳐 시간에 따른 관계 변화를 분석
    • Johansen Test Eigenvector : 여러 시계열 데이터 간의 장기적인 공적분 관계를 분석하여 공적분 벡터 산출
    • Minimum Half-Life : 시간에 따른 평균 회귀 속도를 평가하여 반감기를 최소화하는 헤지 비율을 계산
    • Minimum ADF Test T-statistic Value : 시계열 데이터의 정상성을 여러 기간에 걸쳐 검정하여 t-통계값을 최소화하는 헤지 비율 탐색
    • OLS in Levels
    • Error Correction Model 


Single Period Method

단일 기간 방법(Single Period Method)은 정적 방법(static method)으로도 알려져 있으며, 수익률이 독립적이고 동일하게 분포된 무작위 변수(IID)라고 가정한다.

 

Ordinary Least Squares (OLS) [Implemented]

  • 선형 회귀를 사용하여 기울기 계수를 이용하는 방법
    예시에서는, AMZN = β * AMD와 같은 회귀식을 적용하여 헷지 비율을 계산한다.
    일부 연구에서는 절편 항이 포함된 회귀식인 AMZN = α + β * AMD를 사용한다.
  • 이 방법의 단점 중 하나는 변수의 순서에 민감하다는 점이다.

Total Least Squares (TLS) [Implemented]

  • 독립 변수와 종속 변수 모두의 잔차를 고려하는 직교 회귀로 구현된 방식이다.
    스프레드 양측의 변동성을 관계 추정 시 포함시켜 헷지 비율의 일관성을 유지할 수 있다.
  • 따라서, 변수의 순서에 영향을 받지 않는 추정이 가능해진다.

OLS in Differences (OLSD)

이 방법은 포트폴리오의 market value 차이를 사용하여 OLS(Ordinary Least Squared)를 적용한다. 단순성 때문에 널리 사용된다.  \(\Delta P\)는 관찰 사이의 market value차이를 나타낸다  

\[
\begin{aligned}
    &\Delta P_{1,t} = \alpha + \sum_{n=2}^{N} \beta_n \Delta P_{n,t} + \epsilon_t \\
    &\text{solution:} \quad \omega = -\beta 
\end{aligned}
\]

 

Minimum Variance Portfolio (MVP)

Markowitz(1952)가 소개한 방법으로 \(\Delta P\) 관찰값이 IID Normal이라고 가정한다. \(V\)는 \(\Delta P\)의 공분산 행렬
\begin{aligned}
    &\min_{\beta} \beta' V \beta \quad \text{s.t.} \quad \beta' a = 1 \\
    &\text{solution:} \quad \beta = \frac{V^{-1} a}{a' V^{-1} a}, \quad \omega_j = \frac{\beta_j}{\beta_1}
\end{aligned}

 

Principal Components Analysis (PCA)ㅌ

기본 설정은 MVP 방법과 유사하며, \(\Delta P\)는 IID Normal로 가정한다. 가장 큰 주성분의 이동에 대해 \(\Delta P\)를 헤지하는 가중치 벡터 \(\beta\)를 계산하는 것이 목표이다


Multi-Period Method

Multi-Period Method은 동적 방법(dynamic method)으로도 알려져 있으며, 수익률의 IID(random perturbations)를 가정하지 않는다.

Johansen Test Eigenvector [Implemented]

Johansen cointegration test는 스프레드를 구성하는 eigenvector를 hedge ratio로 사용할 수 있다.
get_johansen_hedge_ratio()

최적화 과정이 없어 빠른 구현이 가능하다

Minimum ADF Test T-statistic Value [Implemented]

Minimum Half-Life를 계산하는 것과 같은 방식으로, Augmented Dickey-Fuller (ADF) 테스트의 t-통계값을 최소화하는 헤지 비율을 찾을 수 있다.
get_adf_optimal_hedge_ratio()

  • ADF 테스트 통계량을 최소화하는 최적의 헤지 비율을 찾는 함수이다. 최적화가 필요해 시간이 오래걸릴 수 있다.
  • 초기 추정치로 단순한 가격 비율을 사용한다
  • scipy.optimize.minimize 함수를 사용하여 _min_adf_stat 함수를 최소화하는 헤지 비율을 찾는다.
    • _min_adf_stat  함수: : ADF 테스트 통계량을 계산하는 적합도(fitness) 함수이다
      주어진 헤지 비율로 스프레드(spread)를 계산한다.
      이 스프레드에 대해 Engle-Granger 클래스에 perform_eg_test를 수행해 ADF 테스트 통계량을 반환한다.
    • 함수의 반환값을 최소화하는 것이 목표로 ADF 통계량이 작을수록 (더 음수일수록) 시계열이 더 정상적(stationary)임을 의미한다
    • ADF 통계량을 직접 최소화함으로써 더 강력한 공적분 관계를 찾으려 시도이다.

Minimum Half-Life [Implemented]

평균 회귀의 반감기는 스프레드가 평균값으로 얼마나 자주 회귀하는지를 설명하는 주요 매개변수 중 하나이다.
선형 접근 방식(OLS, TLS) 대신 스프레드의 평균 회귀 반감기를 최소화할 수 있다.
get_minimum_hl_hedge_ratio()

  • 반감기를 최소화하는 최적의 헤지 비율을 찾는 함수이다 최적화가 필요해 시간이 오래 걸릴 수 있다.
  • 초기 추정치로 단순한 가격 비율을 사용한다.
  • scipy.optimize.minimize 함수를 사용하여 _min_hl_function 함수를 최소화하는 헤지 비율을 찾는다.
    • _min_hl_function 함수: 주어진 헤지 비율로 스프레드(spread)를 계산한 후, 스프레드의 반감기를 계산하는 적합도(fitness) 함수이다.
    • 이 스프레드는 종속 변수와 독립 변수 간의 가중합으로 계산된다.
    • 계산된 스프레드를 통해 get_half_life_of_mean_reversion 함수가 반감기를 반환하며, 이 값의 절대값을 최소화하는 것이 목표이다.

 

OLS in Levels

OLSL 방법은 OLSD 방법과 유사하지만, 헤지가 평균과 분산에서 정상적일 때 효과적이라는 조건이 있다. 그러나, 오류 수정(error correction) 구성 요소가 방정식의 관찰된 수준과 분리되지 않으므로 계산된 가중치 \(\beta\)가 최적의 솔루션이 아닐 수 있다.
  \[
  P_{1,t} = \sum_{n=2}^{N} \beta_n P_{n,t} + S_t
  \]

  • \(S_t\)는 헤징 오류를 나타낸다
    OLSD 방법에서는 시간이 지나면서 헤징 오류가 수정되지 않는다. 이는 차분(differences)으로 지정된 사양 때문이며, 프로세스의 메모리를 포함하지 않기 때문이다. 따라서 오류 수정 조건을 분리하지 않는다.

Error Correction Model (ECM)


ECM은 이전 방법의 몇 가지 제한 사항을 개선한다. 이 모델은 시간이 지나면서 오류를 수정한다. 이 방법은 두 포트폴리오 간의 헤지 비율만 보여주지만, 확장된 방법에서는 더 많이 논의된다.
  \[
  \Delta P_{1,t} = \beta_0 + \beta_1 \Delta P_{2,t} + \gamma (P_{2,t-1} - P_{1,t-1}) + \epsilon_t
  \]

  • \(P\)는 market value의 자연 로그이고, \(\gamma\)는 효과적으로 헤징되기 위해 양수로 테스트되어야 한다.
  • 최적 보유 비율
    \[
      (\omega_1, \omega_2) = (1, -K)
    \]
    • \(K\)는 \(\beta_0\)를 \(\gamma\)로 나눈 값입니다.

Advanced Methods for Hedge Ratio Estimation

Box-Tiao Canonical Decomposition (BTCD) [Implemented]

Box와 Tiao는 \(N\)차원 정상 자기회귀 과정을 정준 변환하는 방법을 소개했다. 변환된 과정의 구성 요소들은 예측 가능성이 가장 낮은 것부터 가장 높은 것까지 순서대로 배열될 수 있다.

\(VAR(L)\) 방정식을 위해 \(\beta\)를 피팅하고, \(\beta\)로부터 \(\hat{P}_t\)를 추정한다.
추정된 \(\hat{P}_t\)를 통해 분해 과정을 거치고 최적의 가중치를 구한다
목표는 다음 관찰에서 가장 예측력이 높은 벡터를 제공하는 계수 행렬을 도출한다
    \[
    \sum_{l=1}^{L} \sum_{i=1}^{N} \beta_{i,l,n} P_{t-l,i} + \beta_{n,0} X_{t-1,n} + \epsilon_{t,n}
    \]

 

get_box_tiao_hl_hedge_ratio() 

Dickey-Fuller Optimal (DFO)

  • 다중 기간 방법에서 ECM은 두 차원으로 제한되는 동적 모델이다. 이러한 제한은 BTCD와 같은 다변량, 다방정식 사양을 통해 해결될 수 있으며, 이를 Dickey-Fuller Optimal(DFO)이라고 한다.
  • 방법
    DFO는 각 변수마다 개별적인 자기회귀 평형 조건을 가진 방정식 시스템을 통해 ECM보다 더 강력한 구조를 제공합니다.
    이 방법의 목표는 스프레드(S)에 단위근(unit root)이 존재할 확률을 최소화하는 최적의 가중치 \(\omega\)를 찾는 것입니다.
    이것은 ECM의 다차원 버전으로 이해될 수 있습니다.
        \[
        S_t = P_{1,t} + \sum_{n=2}^{N} \omega_n P_{n,t}
        \]


 


ArbitrageLab 패키지에서는 여러 방법을 사용해 해지비율을 계산할 수 있으며, construct_spread 함수를 이용해 스프레드 시리즈를 구성할 수 있다.

  • 모든 헤지 비율 계산 방법은 dependent variable asset이 종속 변수 자산이 헤지 비율 1을 가지도록 정규화한다.
    \[
        S = \text{leg1} - (\text{hedgeratio}_2) \times \text{leg2} - (\text{hedgeratio}_3) \times \text{leg3} - \ldots 
    \]
    여기서 "leg"는 각 자산을 의미합니다. 예를 들어, leg1은 첫 번째 자산, leg2는 두 번째 자산, leg3는 세 번째 자산

  • 모든 헤지 비율 계산 방법은 첫 번째 자산이 종속 변수 자산이라고 가정한다.
>>> import pandas as pd
>>> import numpy as np
>>> from arbitragelab.hedge_ratios import construct_spread
>>> url = "https://raw.githubusercontent.com/hudson-and-thames/example-data/main/arbitrage_lab_data/sp100_prices.csv"
>>> data = pd.read_csv(url, index_col=0, parse_dates=[0])
>>> hedge_ratios = pd.Series({"A": 1, "AVB": 0.832406370860649})
>>> spread = construct_spread(data[["AVB", "A"]], hedge_ratios=hedge_ratios)
>>> inverted_spread = construct_spread(
...     data[["AVB", "A"]], hedge_ratios=hedge_ratios, dependent_variable="A"
... )
>>> inverted_spread 
Date
2017-01-03 -100.529...

 

 

 

 

 

 

 

https://hudson-and-thames-arbitragelab.readthedocs-hosted.com/en/latest/hedge_ratios/hedge_ratios.html

 

Hedge Ratio Calculations — arbitragelab 1.0.0 documentation

In the same fashion as the minimum half-life is calculated, one can find a hedge ratio that minimizes the t-statistic of the Augmented Dickey-Fuller Test (ADF). Note As Minimum Half-Life and Minimum ADF T-statistics algorithms rely on numerical optimizatio

hudson-and-thames-arbitragelab.readthedocs-hosted.com

 

https://hudsonthames.org/introduction-to-hedge-ratio-estimation-methods/

https://www.youtube.com/watch?v=odh5rH3WYJM