Kalman Filtresi ile Pairs Trading: Dinamik Hedge Oranı

Statik OLS betası neden yetmez? Durum-uzay modeliyle zamanla değişen hedge oranını tahmin edip bir eşbütünleşme stratejisi kuruyoruz.

Statik OLS betası neden yetmez? Durum-uzay modeliyle zamanla değişen hedge oranını tahmin edip bir eşbütünleşme stratejisi kuruyoruz.

Durum-uzay modeli#

Hedge oranını gizli durum olarak modelliyoruz:

yt=βtxt+ϵt,βt=βt−1+ηty_t = \beta_t x_t + \epsilon_t, \qquad \beta_t = \beta_{t-1} + \eta_t

Burada ϵt∼N(0,R)\epsilon_t \sim N(0, R) gözlem gürültüsü, ηt∼N(0,Q)\eta_t \sim N(0, Q) durum gürültüsüdür.

Python uygulaması#

import numpy as np

def sharpe(r, rf=0.0, ann=252):
    ex = r - rf
    return np.sqrt(ann) * ex.mean() / ex.std()

# Kalman ile dinamik hedge oranı
for t in range(1, n):
    P_p = P[t-1] + Q
    K = P_p * x[t] / (x[t]**2 * P_p + R)
    b[t] = b[t-1] + K * (y[t] - x[t]*b[t-1])
    P[t] = (1 - K * x[t]) * P_p

Yazının tamamı hazırlanıyor — backtest sonuçları ve parametre seçimi eklenecek.

Yazar

quantint

Kantitatif finans, veri bilimi ve doğrulanabilir araştırmalar üzerine yazıyor.

Yorumlar0

Yorum yazmak için giriş yapın.

Henüz yorum yok — ilk yorumu siz yazın.