GARCH Tak Simetri dan Ekor Tebal: EGARCH, GJR, dan Student-t
Dalam Bahagian 1 siri ini kita membina GARCH(1,1) dari asas: gerak hati pengelompokan volatiliti, rekursi varians bersyarat, anggaran kemungkinan maksimum (maximum likelihood), peramalan, dan diagnostik reja piawai standard dengan pustaka arch. Jika anda belum membacanya, mulakan di sana - siaran ini menganggap anda sudah boleh menyuaikan dan mentafsir GARCH(1,1) biasa dan tidak akan menurunkan semula asasnya.
GARCH(1,1) biasa ialah garis dasar yang baik tetapi jawapan akhir yang buruk. Ia mempunyai dua kecacatan struktur yang murah untuk diabaikan dalam backtest tetapi mahal untuk diabaikan dengan modal sebenar. Pertama, ia simetri: model bertindak balas terhadap hari sama seperti ia bertindak balas terhadap hari , kerana kejutan memasuki rekursi varians hanya melalui kuasa duanya, . Mengkuasaduakan membuang tandanya. Kedua, ia menganggap inovasi Gaussian: walaupun selepas GARCH menyerap pengelompokan volatiliti, reja piawai BTC dan ETH jelas berekor tebal, dan kemungkinan Gaussian secara sistematik memberi harga terlalu rendah kepada ekor tersebut. VaR 99% GARCH(1,1)-Normal akan dilanggar jauh lebih kerap daripada 1% masa.
Siaran ini membetulkan kedua-dua kecacatan. Kita menambah ketaksimetrian dengan GJR-GARCH dan EGARCH, serta ekor tebal dengan inovasi Student- dan skew- Hansen. Kemudian kita melakukan perkara yang sebenarnya membayar sewa: menukar taburan bersyarat yang disuaikan menjadi ramalan Value-at-Risk dan Expected Shortfall satu langkah, dan mem-backtest ramalan itu secara jujur dengan ujian Kupiec dan Christoffersen. Model volatiliti yang anda tidak pernah uji risikonya hanyalah hiasan.
Kesan Leverage, dan Mengapa Kripto Lebih Kucar-Kacir
Dalam ekuiti ketaksimetrian mempunyai nama dan cerita. Kesan leverage (Black, 1976): apabila saham sesebuah firma jatuh, nisbah hutang-ke-ekuitinya meningkat, ekuiti menjadi lebih berisiko secara mekanikal, dan volatiliti meningkat. Berita buruk menaikkan volatiliti masa depan lebih daripada berita baik bersaiz sama. Secara empirik ini ialah salah satu fakta bergaya yang paling teguh dalam kesusasteraan volatiliti ekuiti.
Kripto tidak mempunyai ekuiti dan tiada leverage kunci kira-kira dalam erti korporat, namun ketaksimetrian seperti kesan leverage tetap muncul kebanyakan masa - dipacu oleh penyahleveraj paksa dan bukannya perakaunan. Apabila BTC jatuh mendadak, pinjaman lebih cagar dilikuidasi, longs niaga hadapan kekal ditutup paksa, funding berbalik, dan lata itu memberi makan kepada volatiliti. Jadi mekanismenya berbeza tetapi tandanya selalunya sepakat dengan ekuiti: pergerakan turun melonjakkan volatiliti lebih banyak.
Peringatan penting: kripto lebih kucar-kacir, dan anda harus melayan ketaksimetrian sebagai soalan empirik dan bukannya hukum. Pergerakan naik yang ganas - short squeeze, melt-up yang dipacu leverage, gap kelulusan ETF - juga boleh melonjakkan volatiliti terealisasi. Bergantung kepada aset dan tetingkap sampel, ketaksimetrian teranggar boleh menjadi kuat, lemah, atau kadangkala bertanda "salah". Disiplin yang siaran ini menegaskan: suaikan model tak simetri, lihat sama ada parameter ketaksimetrian signifikan secara statistik dan dalam arah yang dijangka, dan hanya kekalkan parameter tambahan jika ia mendapat tempatnya. Jangan anggap cerita ekuiti dipindahkan; ujilah.
Menguji Ketaksimetrian Sebelum Anda Memodelkannya
Ringkasan di atas berkata "layan ketaksimetrian sebagai empirik" - jadi sebelum menyuaikan model tak simetri, jalankan ujian formal yang murah untuk sama ada ketaksimetrian pun wujud. Ujian bias tanda Engle-Ng (1993) melakukan tepat ini. Suaikan GARCH(1,1) simetri dahulu, ambil reja piawai kuasa duanya , dan regreskannya terhadap penunjuk tanda dan saiz kejutan sebelumnya:
di mana dan . Logiknya: jika model simetri sudah menangkap segala-galanya, tanda dan saiz kejutan semalam tidak sepatutnya meramal reja kuasa dua hari ini, jadi . Ujian individu ialah ujian bias tanda (), bias saiz negatif (), dan bias saiz positif (); ujian bersama pada ketiga-tiganya ialah omnibus. atau yang signifikan menunjukkan kejutan negatif diberi harga salah secara sistematik oleh model simetri - petunjuk anda bahawa GJR atau EGARCH akan membantu.
import statsmodels.api as sm
def sign_bias_test(symmetric_res):
"""Engle-Ng sign-bias tests on a fitted symmetric GARCH result."""
z = symmetric_res.std_resid.dropna()
z2 = (z ** 2).values[1:]
eps_lag = z.values[:-1] # standardized shock proxy
neg = (eps_lag < 0).astype(float)
X = np.column_stack([
np.ones_like(eps_lag), # intercept
neg, # sign bias
neg * eps_lag, # negative size bias
(1 - neg) * eps_lag, # positive size bias
])
ols = sm.OLS(z2, X).fit()
names = ["const", "sign_bias", "neg_size_bias", "pos_size_bias"]
for nm, coef, t, p in zip(names, ols.params, ols.tvalues, ols.pvalues):
print(f"{nm:16s} coef={coef:+.4f} t={t:+.2f} p={p:.3f}")
print(f"Joint F p-value: {ols.f_pvalue:.4f}")
return ols
sign_bias_test(models["GARCH-N"])
Jika ujian bersama tidak signifikan, anda mempunyai lesen empirik untuk kekal simetri dan menjimatkan dua parameter. Jika ia signifikan - hasil biasa untuk BTC/ETH - teruskan ke GJR/EGARCH dengan hati nurani yang jelas, mengetahui bahawa anda memodelkan ciri sebenar dan bukan mengejar hingar. Inilah disiplin empirik yang dituntut oleh permulaan: jangan anggap cerita leverage ekuiti, ujilah ia.
GJR-GARCH: Ketaksimetrian melalui Terma Ambang
Model Glosten-Jagannathan-Runkle (1993) - kadangkala dipanggil TGARCH atau threshold GARCH - ialah suntingan terkecil yang mungkin kepada GARCH(1,1) yang membenarkan berita buruk dan berita baik mempunyai kesan berbeza. Ingat semula rekursi varians bersyarat simetri dari Bahagian 1:
GJR menambah satu terma ambang: dos varians tambahan yang dihidupkan hanya selepas kejutan negatif.
di mana ialah penunjuk
Baca rekursi mengikut kes. Selepas kejutan positif (), penunjuk ialah sifar dan kesan kejutan kuasa dua terhadap varians tempoh seterusnya hanyalah . Selepas kejutan negatif, penunjuk ialah satu dan kesannya ialah . Parameter ialah keseluruhan cerita ketaksimetrian dalam satu nombor:
- : kejutan negatif menaikkan volatiliti lebih daripada kejutan positif bermagnitud sama. Ini ialah kesan leverage, dan inilah yang anda jangka temui dalam BTC/ETH kebanyakan masa.
- : model runtuh kembali kepada GARCH(1,1) simetri. Ujian nisbah kemungkinan atau ujian pada oleh itu ialah ujian langsung terhadap sama ada ketaksimetrian wujud langsung.
- : kejutan positif menaikkan volatiliti lebih banyak - rejim melt-up kripto yang sekali-sekala. Jarang berlaku, tetapi jangan ketepikannya secara apriori.
Kepositifan dan Kepegunan
Kerana masih dibina secara tambahan, kita memerlukan setiap terma kekal tak negatif. Syarat kepositifan yang mencukupi ialah
Perhatikan bahawa sendiri dibenarkan menjadi negatif selagi , jadi kesan pasca-berita-buruk tidak pernah menjadi negatif.
Untuk kepegunan kovarians, andaikan inovasi dipiawaikan dengan taburan simetri sekitar sifar, supaya dan penunjuk menyumbang secara purata. Syarat kepegunan menjadi
Varians tak bersyarat (jangka panjang) kemudiannya ialah
Ini ialah analog GJR bagi hasil Bahagian 1 , dengan terma tambahan mengambil kira sumbangan purata separuh hayat leverage. Jika taburan inovasi anda pencong (skew- Hansen, di bawah), digantikan dengan kebarangkalian sebenar bahawa , tetapi ialah rujukan standard yang digunakan untuk kegigihan yang dilaporkan.
EGARCH: Memodelkan log-Varians, Tiada Kekangan Kepositifan
GJR mengekang anda dalam baju sesak kepositifan varians: setiap kombinasi parameter perlu disemak terhadap kekangan ketaksamaan, yang menjengkelkan semasa pengoptimuman dan lebih teruk semasa penganggaran semula bergolek apabila tetingkap sekali-sekala merayau ke rantau tak boleh laksana. Exponential GARCH Nelson (1991) mengelak ini sepenuhnya dengan memodelkan logaritma varians bersyarat. Kerana boleh menjadi sebarang nombor nyata, secara automatik positif tidak kira apa parameternya. Tiada kekangan untuk dikenakan.
Tulis rekursi dari segi inovasi piawai :
Dua terma membawa kejutan, dan memisahkannya ialah keseluruhan ideanya:
- Terma magnitud bertindak balas terhadap saiz kejutan, tanda dibuang. Menolak memusatkannya supaya kejutan bermagnitud purata tidak menyumbang apa-apa. Untuk normal piawai, ; untuk Student- piawai nilai mutlak jangkaan lebih kecil dan bergantung kepada , tetapi
archmengendalikan ini secara dalaman. - Terma tanda ialah ketaksimetrian. Ia linear dalam inovasi bertanda, jadi negatif menolak ke arah bertentangan daripada yang positif.
Konvensyen tanda penting dan menyandung orang. Dalam parameterisasi ini kesan leverage (berita buruk menaikkan volatiliti) sepadan dengan : kejutan negatif kemudiannya menjadikan , meningkatkan log-varians. Ini ialah tanda bertentangan daripada GJR. Sentiasa baca dokumentasi model sendiri untuk konvensyen dan bukannya mengandaikan; arch melaporkan EGARCH dengan tandanya sendiri, dan kita menyemaknya terhadap keluk kesan berita di bawah dan bukannya mempercayai ingatan kita.
Kerana segala-galanya bersifat tambahan dalam log, kegigihan EGARCH(1,1) ditadbir oleh satu pekali autoregresif pada ; kepegunan hanya memerlukan . Itu ialah syarat yang jauh lebih bersih daripada ketaksamaan GJR, dan ia ialah kelebihan praktikal sebenar apabila anda menyuai semula pada tetingkap bergolek.
Satu kehalusan yang berbaloi dinyatakan: sambutan EGARCH terhadap kejutan bersifat eksponen dalam inovasi (anda mengeksponenkan pada akhir), manakala GJR bersifat kuadratik. EGARCH oleh itu bertindak balas lebih ganas terhadap kejutan besar - satu ciri dalam kripto, di mana peristiwa ekor ialah yang penting, tetapi juga sebab EGARCH sekali-sekala boleh menghasilkan ramalan varians besar yang tak munasabah selepas hari terpencil. Tiada yang lebih baik secara universal; anda memilih mengikut kesuaian luar sampel dan mengikut backtest risiko, yang merupakan intipati keseluruhan siri ini.
Keluk Kesan Berita
Cara paling bersih untuk melihat perbezaan antara GARCH simetri, GJR, dan EGARCH ialah keluk kesan berita (Engle dan Ng, 1993): pegang tetap pada aras jangka panjangnya dan plot varians bersyarat tempoh seterusnya sebagai fungsi kejutan terakhir . Ia menjawab "diberi kejutan bersaiz dan bertanda ini, berapa banyak model menaikkan volatiliti esok?"
- GARCH simetri menghasilkan parabola simetri berpusat pada sifar. Kejutan dan mendarat pada ketinggian yang sama. Inilah kecacatan yang tepat kita membetulkannya.
- GJR menghasilkan parabola dengan kink pada sifar - lebih curam di sebelah kiri (kejutan negatif) daripada kanan apabila . Kedua-dua separuh mempunyai kelengkungan dan masing-masing.
- EGARCH menghasilkan bentuk-V eksponen tak simetri: kedua-dua lengan mempunyai kecerunan berbeza kerana terma , dan keseluruhannya melengkung ke atas lebih cepat daripada parabola kerana pengeksponenan akhir.
Kita plot ketiga-tiganya daripada parameter yang disuaikan kemudian, dalam bahagian pelaksanaan - ia ialah diagnostik paling berguna tunggal untuk menyampaikan apa yang ketaksimetrian belikan untuk anda.
Ekor Tebal: Inovasi Student-t dan Skew-t
Ketaksimetrian membetulkan sambutan model terhadap tanda kejutan. Ia tidak melakukan apa-apa mengenai taburan kejutan itu sendiri. GARCH biasa menganggap , dan andaian itu hampir selalu salah untuk kripto. Walaupun selepas GARCH membuang pengelompokan volatiliti, reja piawai mengekalkan kurtosis berlebihan - ia berekor tebal. Kemungkinan Gaussian, menyuaikan bahu taburan, memberi berat kurang kepada berapa kerap hari piawai -, -, atau -sigma sebenarnya berlaku.
Akibat untuk risiko adalah langsung. VaR 99% Gaussian menggunakan kuantil , jadi ia meramal . Jika taburan piawai sebenar ialah Student- dengan, katakan, darjah kebebasan, kuantil 1% sebenar hampir - VaR Gaussian optimistik lebih kurang pada aras keyakinan itu. Anda akan melanggarnya jauh lebih kerap daripada 1% masa dan secara sistematik terkejut oleh hari "mustahil". Ini bukan keanehan kripto; Bollerslev (1987) memperkenalkan -GARCH tepat kerana reja ekuiti dan FX menunjukkan ekor tebal yang sama. Kripto hanyalah versi yang lebih melampau bagi masalah yang sama.
Student-t Piawai
Ketumpatan Student- mempunyai parameter darjah kebebasan yang mengawal ketebalan ekor: kecil bermaksud ekor tebal, dan apabila taburan menumpu kepada Gaussian. Halangannya ialah taburan mentah mempunyai varians , jadi kita mesti memiawaikannya kepada varians unit sebelum menggunakannya sebagai inovasi - jika tidak "" dalam rekursi GARCH tidak sebenarnya menjadi sisihan piawai bersyarat.
Inovasi Student- piawai dengan varians unit mempunyai ketumpatan
Perhatikan di dalam - itulah pemiawaian, penskalaan semula supaya . Sumbangan log-kemungkinan bagi satu pemerhatian, diberi varians bersyarat GARCH dan , ialah
Terma ialah Jacobian bagi transformasi daripada kepada - terma sama yang anda lihat dalam kemungkinan GARCH Gaussian dalam Bahagian 1. Hanya bentuk yang berubah. Memaksimumkan secara bersama ke atas parameter GARCH dan ialah tepat apa yang arch lakukan apabila anda menghantar dist='t'.
Anggaran itu sendiri bermaklumat. Untuk pulangan harian BTC/ETH anda biasanya mendarat dalam julat - ekor tebal, tetapi dengan varians terhingga (yang memerlukan ) dan biasanya kurtosis terhingga (yang memerlukan ). Jika suaian anda jatuh di bawah 4, sedarilah bahawa kurtosis sampel secara teknikal tak terhingga dalam model dan sesetengah penganggar menjadi tak stabil; ia ialah isyarat untuk melihat dengan teliti terhadap titik terpencil dan kualiti data.
Skew-t Hansen
Student- berekor tebal tetapi masih simetri - ekor kiri dan kanan sama beratnya. Reja pulangan kripto sering juga pencong: ekor kiri (kejatuhan) lebih berat daripada kanan. Skew- Hansen (1994) menyamaratakan piawai dengan parameter kepencongan bersama :
di mana pemalar , , dan dipilih supaya mempunyai min sifar dan varians unit untuk setiap yang sah. Taburan berpecah pada , menggunakan penskalaan berbeza dalam setiap keping untuk membengkokkan lebih banyak jisim ke satu ekor.
Tafsiran: memberikan taburan pencong kiri (sisi bawah lebih berat), yang merupakan penemuan biasa untuk kripto dan apa yang anda jangka berpasangan dengan kesan leverage. mendapatkan semula Student- simetri, jadi ujian memberitahu anda sama ada terma skew membeli apa-apa. Dalam arch ini ialah dist='skewt', yang menganggarkan kedua-dua dan . Ganjarannya ialah VaR yang kuantil ekor kirinya secara jujur lebih berat daripada kuantil ekor kanannya - tepat apa yang anda mahu apabila kerugian yang anda cuba selamat daripadanya adalah tak simetri. Ini berkait langsung dengan ketaksimetrian kerugian berbanding keuntungan dalam hasil kedudukan: pengeluaran turun memerlukan lebih daripada untuk pulih, jadi memodelkan salah ekor kiri lebih mahal daripada memodelkan salah ekor kanan.
Pelaksanaan Python
Kita kini menyuaikan semua ini dengan pustaka arch. Persediaan mencerminkan Bahagian 1: tarik pulangan harian, skala dengan 100 untuk penyaman berangka (pengoptimum GARCH berkelakuan buruk apabila pulangan ialah ), dan suaikan dengan min pemalar. Jika anda mahu intraday atau model min berbeza, jenteranya adalah serupa.
Persediaan dan Data
import numpy as np
import pandas as pd
from arch import arch_model
from arch.univariate import GARCH, EGARCH, ConstantMean, StudentsT, SkewStudent
from scipy import stats
def fetch_returns(symbol="BTC-USD", start="2019-01-01", end="2025-12-31"):
"""Daily log returns, in percent (scaled x100 for the optimizer)."""
import yfinance as yf
px = yf.download(symbol, start=start, end=end)["Close"].dropna()
ret = 100.0 * np.log(px / px.shift(1)).dropna()
ret.name = symbol
return ret
r = fetch_returns("BTC-USD")
print(f"{len(r)} daily observations, "
f"annualized vol ~ {r.std() * np.sqrt(365):.0f}%")
Kripto berdagang 24/7, jadi kita mentahunkan dengan 365, bukan 252 - punca kekeliruan kecil tetapi berulang apabila anda membandingkan Sharpe atau vol kripto terhadap nombor meja ekuiti.
Menyuaikan Empat Model
Corak dalam arch: vol='Garch' dengan p=1, q=1 ialah GARCH simetri; menambah o=1 menghidupkan terma ambang GJR; vol='EGARCH' beralih kepada model log-varians. Taburan inovasi ditetapkan dengan dist: 'normal', 't', 'skewt'.
def fit(returns, vol="Garch", p=1, o=0, q=1, dist="normal"):
am = arch_model(returns, mean="Constant",
vol=vol, p=p, o=o, q=q, dist=dist)
res = am.fit(disp="off")
return res
models = {
"GARCH-N": fit(r, vol="Garch", o=0, dist="normal"), # Part 1 baseline
"GJR-t": fit(r, vol="Garch", o=1, dist="t"), # asymmetry + fat tails
"EGARCH-t": fit(r, vol="EGARCH", o=1, dist="t"), # log-variance asymmetry
"GJR-skewt": fit(r, vol="Garch", o=1, dist="skewt"), # + skew
}
for name, res in models.items():
print(f"\n===== {name} =====")
print(res.summary().tables[1]) # parameter table
Untuk vol='EGARCH', argumen o mengawal terma tak simetri () dan p/q mengawal terma magnitud dan lag; o=1, p=1, q=1 ialah EGARCH(1,1) standard. Satu gotcha: nama parameter EGARCH dalam arch ialah huruf yang sama tetapi konvensyen tanda pada terma ketaksimetrian ialah konvensyen Nelson, jadi anggaran negatif ialah kesan leverage. Kita mengesahkan ini daripada keluk kesan berita dan bukannya daripada ingatan.
Membaca Suaian GJR
Jadual parameter GJR- kelihatan lebih kurang seperti ini (nilai ilustrasi, bukan eksperimen yang dilaporkan - suai semula pada data anda sendiri):
coef std err t P>|t|
omega 0.0480 0.017 2.82 0.005
alpha[1] 0.0620 0.018 3.44 0.001
gamma[1] 0.0910 0.028 3.25 0.001
beta[1] 0.8850 0.021 42.1 0.000
nu 4.30 0.55 7.82 0.000
Cara membacanya:
gamma[1] = 0.091dengan statistik melebihi 3 ialah kesan leverage yang signifikan secara statistik. Selepas kejutan negatif kesan kejutan kuasa dua ialah ; selepas kejutan positif ia hanyalah . Berita buruk menggerakkan volatiliti model ini lebih kurang sebanyak berita baik bersaiz sama.nu = 4.3mengesahkan ekor tebal - jauh daripada Gaussian (), dan cukup rendah sehingga momen keempat hampir tidak terhingga. VaR Gaussian pada siri ini akan optimistik dengan teruk.- Kegigihan ialah - sangat tinggi, seperti biasa untuk kripto harian: kejutan mereput perlahan dan volatiliti berkelompok kuat.
Baris tunggal paling penting untuk disemak ialah baris . Jika nilai--nya besar, terma tak simetri tidak mendapat tempatnya pada aset dan tetingkap ini, dan anda harus lebih suka model simetri yang lebih ringkas. Ini ialah disiplin pemilihan model, bukan hiasan - lebih lanjut mengenainya di bawah.
Membandingkan Model mengikut Kriteria Maklumat
Log-kemungkinan sentiasa bertambah baik apabila anda menambah parameter, jadi anda tidak boleh memilih pada log-kemungkinan sahaja. Gunakan AIC/BIC, yang menghukum bilangan parameter (BIC lebih agresif):
def compare(models: dict) -> pd.DataFrame:
rows = []
for name, res in models.items():
rows.append({
"model": name,
"n_params": len(res.params),
"loglik": res.loglikelihood,
"AIC": res.aic,
"BIC": res.bic,
})
df = pd.DataFrame(rows).set_index("model")
return df.sort_values("BIC")
print(compare(models))
Peraturan tafsiran ibu jari: peningkatan BIC lebih daripada ~6 berbanding garis dasar ialah bukti kukuh bahawa struktur tambahan itu nyata; perbezaan 1-2 ialah hingar. Jika GJR-t mengalahkan GARCH-N sebanyak 30+ mata BIC tetapi GJR-skewt mengalahkan GJR-t hanya sebanyak 1, kekalkan dan gugurkan skew - parameter skew tidak membayar untuk dirinya pada data ini. Jangan baca AIC/BIC sebagai pengganti pengesahan luar sampel; ia memberi ganjaran kepada suaian dalam sampel yang diselaraskan untuk kerumitan, yang perlu tetapi tidak mencukupi. Ujian sebenar ialah backtest VaR dan, akhirnya, penilaian walk-forward.
Memplot Keluk Kesan Berita
Ini ialah plot ganjaran - ia menjadikan ketaksimetrian kelihatan dan mengesahkan konvensyen tanda EGARCH.
import matplotlib.pyplot as plt
def news_impact_curve(res, shock_grid):
"""
Next-period conditional variance as a function of the last shock,
holding sigma_{t-1} at the model's unconditional level.
Works for symmetric GARCH, GJR (o=1), and EGARCH.
"""
p = res.params
vol_name = res.model.volatility.__class__.__name__
sigma2_bar = np.mean(res.conditional_volatility ** 2)
omega = p["omega"]
alpha = p.get("alpha[1]", 0.0)
gamma = p.get("gamma[1]", 0.0)
beta = p.get("beta[1]", 0.0)
if vol_name == "EGARCH":
sig_prev = np.sqrt(sigma2_bar)
z = shock_grid / sig_prev
E_abs = np.sqrt(2 / np.pi) # approx; arch uses the fitted dist's E|z|
log_s2 = (omega + beta * np.log(sigma2_bar)
+ alpha * (np.abs(z) - E_abs) + gamma * z)
return np.exp(log_s2)
else:
ind = (shock_grid < 0).astype(float)
return omega + (alpha + gamma * ind) * shock_grid**2 + beta * sigma2_bar
shocks = np.linspace(-8, 8, 401) # daily % shocks
plt.figure(figsize=(8, 5))
for name in ["GARCH-N", "GJR-t", "EGARCH-t"]:
nic = news_impact_curve(models[name], shocks)
plt.plot(shocks, nic, label=name, lw=2)
plt.axvline(0, color="gray", lw=0.8, ls="--")
plt.xlabel("Last shock $\\varepsilon_{t-1}$ (daily %)")
plt.ylabel("Next-period conditional variance $\\sigma_t^2$")
plt.title("News impact curve: symmetric vs GJR vs EGARCH (BTC)")
plt.legend()
plt.tight_layout()
Apabila anda menjalankan ini, keluk GARCH-N simetri ialah parabola bersih berpusat pada sifar - kejutan dan memberikan varians yang sama. GJR-t ialah parabola dengan kink pada asalan, lebih tinggi pada lengan kiri. EGARCH-t ialah bentuk-V eksponen, dan jika lengan kirinya duduk di atas lengan kanannya anda telah mengesahkan kesan leverage dan konvensyen tanda dalam satu pandangan. Jika lengan kiri EGARCH duduk di bawah kanan, sama ada dianggarkan positif (rejim vol-naik) atau anda mempunyai tanda terbalik - plot memberitahu anda yang mana tanpa sebarang tekaan.
Perbandingan Bersebelahan Empat Model
Sebelum kita beralih kepada risiko, ia membantu untuk memegang empat model bersebelahan. Setiap baris ialah keputusan reka bentuk, dan lajur menunjukkan apa yang keputusan itu kos dan beli.
| Ciri | GARCH-N | GJR-t | EGARCH-t | GJR-skewt |
|---|---|---|---|---|
| Ketaksimetrian (tanda kejutan) | tiada | ambang | bertanda | ambang |
| Bentuk ekor inovasi | Gaussian | Student- | Student- | skew- |
| Skew dalam inovasi | tidak | tidak | tidak | ya () |
| Kekangan kepositifan | ya | ya () | tiada (bentuk log) | ya |
| Syarat kepegunan | ||||
| Params tambahan vs garis dasar | 0 | |||
| Keputusan kripto biasa | gagal backtest VaR | kuat, teguh | kuat, teguh | marginal berbanding GJR-t |
Corak untuk dihayati: lompatan dari lajur 1 ke lajur 2 - menambah kedua-dua ketaksimetrian dan ekor tebal sekaligus - ialah tempat hampir semua penambahbaikan penentukuran risiko berada. Penghalusan seterusnya (bentuk fungsi EGARCH, terma skew) adalah nyata tetapi peringkat kedua, dan pada banyak siri kripto ia berada dalam hingar. Belanjakan bajet pemodelan anda pada lompatan pertama dan bersikap skeptik terhadap yang selebihnya.
Aplikasi Risiko: VaR dan Expected Shortfall
Menyuaikan model volatiliti yang lebih mewah hanya berbaloi jika ia menambah baik keputusan. Keputusan paling bersih untuk ditambah baik ialah ramalan risiko-ekor satu langkah: berapa buruk keadaan esok? Kita menghasilkan Value-at-Risk dan Expected Shortfall satu-hari-ke-hadapan (a.k.a. Conditional VaR, yang saluran paip portfolio HRP/CVaR gunakan sebagai objektifnya) terus daripada ramalan GARCH-/skew- yang disuaikan.
Daripada Taburan Bersyarat kepada VaR
Jentera GARCH memberikan ramalan satu langkah bagi min bersyarat dan sisihan piawai bersyarat . Pulangan dimodelkan sebagai dengan diambil daripada taburan piawai yang disuaikan (Gaussian, , atau skew-). Jadi kuantil- bagi pulangan hanyalah transformasi afin bagi kuantil- bagi taburan piawai:
di mana ialah kuantil (CDF songsang) bagi inovasi piawai dan tanda tolak pendahulu mengikut konvensyen bahawa VaR ialah nombor kerugian positif. Untuk VaR 99%, dan anda memasukkan . Keseluruhan manfaat /skew- muncul di sini: lebih negatif daripada Gaussian , jadi VaR secara jujur lebih besar.
Expected Shortfall
VaR memberitahu anda ambang; ia tidak berkata apa-apa mengenai betapa buruknya pelanggaran apabila ia berlaku. Expected Shortfall - purata kerugian bersyarat pada melebihi VaR - memberitahu, dan ia koheren (subaditif), yang merupakan sebab ia ialah ukuran risiko di sebalik pengoptimuman CVaR dan mengapa Basel beralih kepadanya. Untuk model lokasi-skala,
Terma jangkaan ekor bersyarat mempunyai bentuk tertutup untuk taburan standard. Untuk Gaussian, dengan ,
di mana ialah pdf normal piawai. Untuk Student- piawai dengan darjah kebebasan dan (pada skala piawai), jangkaan ekor ialah
di mana ialah pdf piawai. Expected Shortfall melebihi Gaussian lebih daripada VaR melebihinya, kerana ekor bukan sahaja lebih jauh keluar - ia lebih tebal, jadi purata kerugian melangkaui ambang tidak seimbang besarnya. Gap tambahan itu ialah nombor yang model Gaussian sembunyikan daripada anda.
Mengira VaR dan ES daripada Model arch yang Disuaikan
Taburan arch mendedahkan kaedah ppf (kuantil), jadi kita boleh mendapatkan kuantil piawai secara langsung dan mengelak menurunkan semula apa-apa. Untuk ES kita menyepadu secara berangka, yang teguh dan berfungsi secara seragam merentasi normal/t/skewt.
from scipy import integrate
def var_es_forecast(res, alpha=0.99):
"""
One-step-ahead VaR and ES at level alpha, on the same (x100) scale
as the returns fed to the model. Divide by 100 for fractional units.
"""
fc = res.forecast(horizon=1, reindex=False)
mu = fc.mean.iloc[-1, 0]
sigma = np.sqrt(fc.variance.iloc[-1, 0])
dist = res.model.distribution # StudentsT / SkewStudent / Normal
dp = [res.params[k] for k in res.params.index
if k in ("nu", "eta", "lambda", "lam")]
z_q = dist.ppf(1 - alpha, dp) if dp else dist.ppf(1 - alpha)
z_q = float(np.atleast_1d(z_q)[0])
def pdf(z):
arr = np.atleast_1d(z).astype(float)
lp = dist.loglikelihood(dp, arr, np.ones_like(arr), individual=True) \
if dp else dist.loglikelihood([], arr, np.ones_like(arr),
individual=True)
return np.exp(lp)
num, _ = integrate.quad(lambda z: z * pdf(z), -30, z_q, limit=200)
es_z = num / (1 - alpha) # E[z | z <= z_q]
var = -(mu + sigma * z_q)
es = -(mu + sigma * es_z)
return {"mu": mu, "sigma": sigma, "z_q": z_q,
"VaR": var, "ES": es}
for name in ["GARCH-N", "GJR-t", "GJR-skewt"]:
out = var_es_forecast(models[name], alpha=0.99)
print(f"{name:11s} sigma={out['sigma']:.2f}% "
f"z_q={out['z_q']:+.2f} "
f"VaR99={out['VaR']:.2f}% ES99={out['ES']:.2f}%")
Lajur z_q ialah keseluruhan cerita dalam satu nombor. Model Gaussian menggunakan ; dengan menggunakan sesuatu berhampiran ; skew- menolak kuantil kiri lebih jauh lagi sambil menarik yang kanan masuk. yang sama, VaR yang jauh lebih besar. Jika anda telah menjalankan VaR Gaussian pada kripto, inilah gap yang anda telah menyerap secara senyap.
Satu Langkah vs Berbilang Langkah: Satu Peringatan
Segala-galanya di atas ialah ramalan satu-hari-ke-hadapan, dan itulah tempat VaR GARCH paling bersih. Dua perkara merumitkan ufuk yang lebih panjang dan anda harus mengetahuinya sebelum menganggarkan.
Pertama, ramalan varians min-berbalik. Varians bersyarat -langkah-ke-hadapan daripada GARCH pegun menumpu ke arah aras tak bersyarat apabila bertambah, dan varians -hari terkumpul ialah jumlah ramalan setiap langkah - ia bukan melainkan volatiliti berada pada min jangka panjangnya. Penskalaan "punca-kuasa-dua-masa" naif mengabaikan min-balik ini dan salah tepat selepas kejutan, apabila anda paling memerlukan nombor tersebut. Gunakan laluan varians berbilang langkah model itu sendiri.
Kedua, taburan pulangan berbilang hari bukanlah bentuk yang sama seperti inovasi satu hari. Menjumlahkan beberapa kejutan harian bertaburan (melalui rekursi GARCH tak linear) tidak memberikan taburan pada ufuk -hari; tiada bentuk tertutup yang bersih. Untuk VaR berbilang hari laluan jujur ialah simulasi: ambil laluan inovasi daripada taburan piawai yang disuaikan, jalankannya melalui rekursi GARCH untuk mendapatkan laluan pulangan tersimulasi, agregatkan kepada pulangan -hari, dan baca kuantil empirik. Itu juga secara semula jadi mengendalikan kes skew-, di mana tiada kuantil berbilang ufuk analitik wujud langsung. Formula analitik satu langkah dalam siaran ini adalah tepat; layan sebarang jalan pintas berbilang langkah sebagai anggaran untuk disahkan.
Mem-backtest VaR: Kupiec dan Christoffersen
Ramalan VaR ialah dakwaan probabilistik: "kerugian akan melebihi ambang ini pada hanya hari." Anda mengujinya dengan mengira pelanggaran (hari apabila kerugian terealisasi melebihi VaR ramalan) sepanjang penilaian walk-forward dan menyemak dua perkara. Pertama, adakah kadar pelanggaran betul? Kedua, adakah pelanggaran bebas, atau adakah ia berkelompok (yang bermaksud model gagal tepat apabila ia penting, semasa lonjakan volatiliti)?
Biar ialah jujukan pelanggaran, bilangan pelanggaran sepanjang hari, dan kadar tercerap. Kadar sasaran .
Ujian liputan tak bersyarat Kupiec (1995) menyemak melalui nisbah kemungkinan:
Ujian kebebasan Christoffersen (1998) menyemak bahawa pelanggaran hari ini tidak diramal oleh pelanggaran semalam. Biar mengira peralihan daripada keadaan ke keadaan dalam jujukan pelanggaran, , , dan . Maka
Kedua-duanya bergabung menjadi ujian liputan bersyarat , yang secara serentak menyemak kadar betul dan kebebasan. Sesuatu model boleh lulus Kupiec (bilangan pelanggaran yang betul) namun gagal Christoffersen (kesemuanya berhimpun dalam satu minggu kejatuhan) - itulah mod kegagalan yang paling anda mahu tangkap, kerana pelanggaran berkelompok ialah yang meletupkan akaun.
from scipy.stats import chi2
def var_backtest(losses, var, p):
"""
losses, var: 1D arrays, same length; loss>0 is a loss, var>0 threshold.
p = 1 - alpha (target violation rate, e.g. 0.01 for 99% VaR).
Returns Kupiec, Christoffersen-independence, and conditional-coverage LR.
"""
losses = np.asarray(losses)
var = np.asarray(var)
I = (losses > var).astype(int) # violation indicators
T = len(I)
N = int(I.sum())
pi_hat = N / T
eps = 1e-12
ll_null = N * np.log(p + eps) + (T - N) * np.log(1 - p + eps)
ll_alt = N * np.log(pi_hat + eps) + (T - N) * np.log(1 - pi_hat + eps)
LR_uc = -2 * (ll_null - ll_alt)
p_uc = 1 - chi2.cdf(LR_uc, df=1)
n00 = np.sum((I[:-1] == 0) & (I[1:] == 0))
n01 = np.sum((I[:-1] == 0) & (I[1:] == 1))
n10 = np.sum((I[:-1] == 1) & (I[1:] == 0))
n11 = np.sum((I[:-1] == 1) & (I[1:] == 1))
pi01 = n01 / (n00 + n01) if (n00 + n01) else 0.0
pi11 = n11 / (n10 + n11) if (n10 + n11) else 0.0
pi = (n01 + n11) / (n00 + n01 + n10 + n11)
def _ll(pi01, pi11, pi_pooled, use_pooled):
if use_pooled:
a = (n00 + n10) * np.log(1 - pi_pooled + eps)
b = (n01 + n11) * np.log(pi_pooled + eps)
return a + b
return (n00 * np.log(1 - pi01 + eps) + n01 * np.log(pi01 + eps)
+ n10 * np.log(1 - pi11 + eps) + n11 * np.log(pi11 + eps))
LR_ind = -2 * (_ll(pi01, pi11, pi, True) - _ll(pi01, pi11, pi, False))
p_ind = 1 - chi2.cdf(LR_ind, df=1)
LR_cc = LR_uc + LR_ind
p_cc = 1 - chi2.cdf(LR_cc, df=2)
return {
"T": T, "violations": N,
"obs_rate": pi_hat, "target_rate": p,
"LR_uc": LR_uc, "p_uc": p_uc,
"LR_ind": LR_ind, "p_ind": p_ind,
"LR_cc": LR_cc, "p_cc": p_cc,
}
Untuk menjana input losses/var secara jujur, anda menyuai semula (atau sekurang-kurangnya meramal semula) pada tetingkap mengembang atau bergolek dan merekod VaR satu-langkah-ke-hadapan untuk setiap hari luar sampel, kemudian membandingkannya dengan kerugian terealisasi untuk hari itu. Jangan sekali-kali mem-backtest VaR dalam sampel - model yang disuaikan pada kejatuhan yang sama yang ia diminta untuk meramal akan kelihatan jauh lebih baik daripada sepatutnya. Ini ialah disiplin yang sama dengan pariti backtest-langsung: penilaian mesti hanya menggunakan maklumat yang tersedia pada masa keputusan.
def walk_forward_var(returns, alpha=0.99, start=750, refit_every=25,
vol="Garch", o=1, dist="t"):
"""
Expanding-window one-step VaR. Refit every `refit_every` days
(refitting daily is correct but slow; every ~25 days is a common
compromise -- validate the shortcut on your data).
"""
losses, vars_ = [], []
res = None
for t in range(start, len(returns)):
if res is None or (t - start) % refit_every == 0:
am = arch_model(returns.iloc[:t], mean="Constant",
vol=vol, p=1, o=o, q=1, dist=dist)
res = am.fit(disp="off")
fc = res.forecast(horizon=1, reindex=False)
mu = fc.mean.iloc[-1, 0]
sig = np.sqrt(fc.variance.iloc[-1, 0])
dp = [res.params[k] for k in res.params.index
if k in ("nu", "eta", "lambda", "lam")]
z_q = float(np.atleast_1d(
res.model.distribution.ppf(1 - alpha, dp) if dp
else res.model.distribution.ppf(1 - alpha))[0])
var_t = -(mu + sig * z_q)
vars_.append(var_t)
losses.append(-returns.iloc[t]) # realized loss for that day
return np.array(losses), np.array(vars_)
losses, vars_ = walk_forward_var(r, alpha=0.99, dist="t")
print(var_backtest(losses, vars_, p=0.01))
Bacaannya: VaR 99% yang tertentukur baik menunjukkan kadar tercerap berhampiran 1%, Kupiec tak signifikan (p_uc besar), dan Christoffersen tak signifikan (p_ind besar) - tiada pengelompokan. Dalam amalan, hasil jujur pada kripto ialah GARCH-Normal gagal Kupiec (terlalu banyak pelanggaran, p_uc sangat kecil) manakala GJR- atau EGARCH- lulus atau hampir. Kontras itu ialah keseluruhan hujah siaran ini dijelmakan sebagai ujian hipotesis. Jika model pun menunjukkan pelanggaran berkelompok (p_ind kecil), dinamik volatiliti anda masih tersalah tentu - selalunya tanda anda memerlukan ingatan lebih panjang (component/FIGARCH) atau lapisan rejim, yang berkait dengan pengesanan rejim dengan HMM.
Meletakkan Model mengikut Kerugian Ekor, Bukan Sekadar Lulus/Gagal
Kupiec dan Christoffersen memberikan anda keputusan binari - model ditolak atau tidak ditolak. Itu perlu tetapi kasar: dua model boleh kedua-duanya "lulus" sedangkan satu jauh lebih tajam. Untuk meletakkan ramalan VaR yang bersaing, skorkannya dengan fungsi kerugian yang konsisten sepenuhnya untuk kuantil, kerugian pinball (kuantil):
di mana ialah kuantil VaR (bertanda) dan pulangan terealisasi. Dipuratakan sepanjang hari luar sampel, kerugian pinball min yang lebih rendah bermaksud kuantil yang lebih tertentukur dan lebih tajam; kerana kerugian itu konsisten untuk kuantil-, meminimumkannya tidak memberi ganjaran kepada model kerana malas melebar. Untuk membandingkan dua model secara formal, suapkan perbezaan kerugian setiap hari mereka kepada ujian Diebold-Mariano.
def pinball_loss(returns, var, alpha=0.99):
tau = 1 - alpha
q = -np.asarray(var) # VaR is a positive loss; quantile is negative
r = np.asarray(returns)
hit = (r < q).astype(float)
return np.mean((tau - hit) * (r - q))
Untuk Expected Shortfall secara khusus, perhatikan bahawa ES tidak boleh dielisit dengan sendirinya (tiada fungsi kerugian yang peminimumnya ialah ES sahaja), yang merupakan kerumitan teori tulen: anda menilai ES secara bersama dengan VaR menggunakan peraturan pemarkahan Fissler-Ziggel, atau anda kembali kepada amalan lebih ringkas menyemak bahawa magnitud pelanggaran purata sepadan dengan ES yang diramal model. Semakan ES kasar tetapi berguna: antara hari pelanggaran VaR, bandingkan min kerugian terealisasi dengan min ES ramalan pada hari-hari itu - ia sepatutnya hampir.
Rangka pengawalseliaan ialah pendekatan lampu isyarat Basel: sepanjang 250 hari dagangan, 0-4 pelanggaran VaR 99% ialah "hijau" (boleh diterima), 5-9 ialah "kuning" (penelitian), 10+ ialah "merah" (model ditolak dan pengganda modal meningkat). Ia ialah sepupu Kupiec yang lebih kasar, tetapi ia ialah bahasa yang jawatankuasa risiko sebenarnya bertutur, dan ia berbaloi dilaporkan bersama statistik LR.
Pertimbangan Praktikal
Apabila Parameter Tambahan Tidak Berbaloi
Lalai yang jujur ialah keraguan terhadap kerumitan. Setiap parameter yang anda tambah ialah tombol yang pengoptimum boleh terlebih suai, dan GARCH ekor tebal tak simetri mempunyai beberapa. Panduan konkrit:
- Sampel tak cair atau pendek. Dengan beberapa ratus pemerhatian harian, ralat piawai pada dan akan besar, dan anda akan "mengesan" ketaksimetrian yang sebenarnya hingar persampelan. Pada altcoin baru atau nipis, GARCH- simetri sering ialah model paling kompleks yang data boleh sokong. Menyuaikan EGARCH skew- kepada 200 hari ialah menipu diri sendiri.
- Terma skew kerap tidak melepasi kosnya. Dalam amalan, beralih Normal → ialah penambahbaikan yang besar dan boleh dipercayai (ekor tebal adalah nyata dan kuat). Beralih → skew- sering marginal - keuntungan BIC 1 atau 2, kadangkala negatif. Tambah skew hanya apabila data jelas memintanya.
- EGARCH vs GJR biasanya seri pada data harian. Ia mengekod cerita kualitatif yang sama dengan bentuk fungsi yang berbeza. Pilih mengikut backtest VaR luar sampel, bukan mengikut yang mempunyai log-kemungkinan lebih baik dalam sampel.
- Frekuensi lebih tinggi mengubah jawapan. Pada bar setiap jam atau minit, kemusiman intraday dan struktur mikro mendominasi, dan GARCH bergaya harian biasa tersalah tentu tanpa mengira ketaksimetrian. Masalah berbeza, peralatan berbeza.
Ini ialah pengajaran yang sama dengan penilaian jujur tanpa kelebihan teguh: model yang lebih kompleks yang tidak bertahan ujian luar sampel adalah lebih buruk daripada model ringkas yang digantikannya, kerana ia membawa ilusi ketepatan. Laporkan keputusan negatif - "skew tidak membantu pada ETH" - sebagai penemuan sebenar, dan gunakan pengoptimuman walk-forward sebagai penimbang tara, bukan AIC dalam sampel.
Inilah Marginal yang Semua Orang Lain Bina Di Atasnya
Model di sini bukan titik akhir; ia ialah blok binaan univariat untuk jentera risiko-bersama. Siaran model copula untuk risiko kripto bersama menggunakan EGARCH/GJR- tepat sebagai marginal GARCH-EVT sebelum menyuaikan vine copula - anda suaikan GARCH ekor tebal tak simetri setiap aset, ekstrak reja piawai, dan hanya kemudian memodelkan pergantungan silang aset. Jika marginal anda ialah GARCH Gaussian simetri, copula mewarisi ralat ekornya tidak kira sebaik mana model pergantungannya. Marginal sampah, VaR bersama sampah.
Untuk masalah volatiliti multivariat - korelasi berubah masa dan bukannya varians setiap aset - lihat Bahagian 3, DCC-GARCH, yang melapiskan model korelasi dinamik di atas suaian univariat ini. Dan untuk menukar ramalan volatiliti menjadi penetapan saiz kedudukan dan backtest dagangan, Bahagian 4 mengenai penyasaran volatiliti menggunakan ramalan daripada model yang tepat ini untuk menskala pendedahan secara songsang kepada risiko yang diramal.
Alternatif Bebas Taburan
Segala-galanya dalam bahagian risiko bergantung pada andaian parametrik: bahawa reja piawai mengikut atau skew-. Andaian itu boleh diuji dan biasanya munasabah, tetapi ia boleh gagal. Jika anda lebih suka tidak komited kepada sebarang bentuk ekor, ramalan konformal memberikan selang ramalan bebas taburan dengan jaminan liputan sampel terhingga - falsafah yang benar-benar berbeza yang tidak membuat sebarang dakwaan mengenai taburan inovasi. Kedua-dua pendekatan saling melengkapi: GARCH- parametrik memberikan anda ketumpatan bersyarat penuh (dan dengan itu ES, yang selang konformal tidak sediakan secara langsung), manakala konformal memberikan liputan yang bertahan walaupun apabila ketumpatan anda salah. Dalam pengeluaran, menggunakan kedua-duanya sebagai semakan silang ialah insurans yang murah.
Kebersihan Berangka dan Aliran Kerja
- Skala pulangan dengan 100. Pengoptimum GARCH menumpu jauh lebih boleh dipercayai pada pulangan peratus daripada pada pulangan pecahan mentah. Ingat untuk menyahskala VaR/ES jika anda melaporkan dalam unit pecahan.
- Perhatikan kegigihan. Jika menganggarkan di atas ~0.999, model hampir bersepadu (seperti IGARCH); ramalan min-berbalik sangat perlahan dan ramalan varians ufuk panjang menjadi tak boleh dipercayai. Tidak semestinya salah, tetapi bendera ia.
- Kegagalan penumpuan pada tetingkap bergolek. Bentuk log EGARCH mengelak kekangan kepositifan tetapi masih boleh gagal menumpu pada tetingkap patologi. Balut
fit()dalam try/except dan kembali kepada parameter tetingkap sebelumnya dan bukannya meranapkan backtest langsung. - Model min. Kita menggunakan min pemalar sepanjang. Untuk kebanyakan kripto harian min bersyarat hampir sifar dan ditenggelami oleh volatiliti; jangan belanjakan kerumitan model cuba meramalnya melainkan anda mempunyai sebab sebenar.
Ringkasan
- GARCH(1,1) biasa mempunyai dua kecacatan struktur: ia simetri (bertindak balas terhadap dan secara serupa kerana kejutan masuk sebagai ) dan ia menganggap inovasi Gaussian (memberi harga terlalu rendah ekor tebal kripto). Kedua-duanya membebankan wang sebenar melalui VaR optimistik.
- GJR-GARCH menambah terma ambang . yang signifikan ialah kesan leverage: berita buruk menaikkan volatiliti lebih banyak. Kepositifan memerlukan ; kegigihan ialah .
- EGARCH memodelkan , jadi tiada kekangan kepositifan dan kepegunan hanyalah . Ketaksimetrian masuk melalui terma bertanda (leverage ialah dalam konvensyen ini) dipisahkan daripada terma magnitud .
- Keluk kesan berita - varians tempoh seterusnya vs kejutan terakhir - menjadikan ketaksimetrian kelihatan dan mengesahkan konvensyen tanda EGARCH dalam sekali pandang.
- Inovasi Student- (
dist='t') membetulkan ekor melalui darjah kebebasan (biasanya 3-6 untuk kripto); skew- Hansen (dist='skewt') menambah kepencongan untuk ekor kiri yang lebih berat. Beralih Normal → ialah keuntungan besar yang boleh dipercayai; → skew- sering marginal. - VaR dan ES mengikut daripada taburan bersyarat yang disuaikan: , dengan kuantil ekor tebal menjadikan risiko secara jujur lebih besar daripada Gaussian. ES (koheren, CVaR) menangkap purata kerugian melangkaui VaR.
- Backtest dengan Kupiec dan Christoffersen. Kupiec menyemak kadar pelanggaran; Christoffersen menyemak bahawa pelanggaran tidak berkelompok. Sesuatu model boleh lulus satu dan gagal yang lain - pelanggaran berkelompok ialah mod kegagalan berbahaya. Backtest secara ketat luar sampel.
- Disiplin melebihi kerumitan. Tambah ketaksimetrian/skew hanya apabila ia bertahan BIC dan backtest VaR luar sampel. Pada siri pendek atau tak cair, model lebih ringkas biasanya menang.
References:
- Nelson, D. B. (1991). Conditional heteroskedasticity in asset returns: A new approach. Econometrica, 59(2), 347-370. DOI
- Glosten, L. R., Jagannathan, R., & Runkle, D. E. (1993). On the relation between the expected value and the volatility of the nominal excess return on stocks. Journal of Finance, 48(5), 1779-1801. DOI
- Bollerslev, T. (1987). A conditionally heteroskedastic time series model for speculative prices and rates of return. Review of Economics and Statistics, 69(3), 542-547. DOI
- Hansen, B. E. (1994). Autoregressive conditional density estimation. International Economic Review, 35(3), 705-730. DOI
- Engle, R. F., & Ng, V. K. (1993). Measuring and testing the impact of news on volatility. Journal of Finance, 48(5), 1749-1778. DOI
- Christoffersen, P. F. (1998). Evaluating interval forecasts. International Economic Review, 39(4), 841-862. DOI
- Kupiec, P. H. (1995). Techniques for verifying the accuracy of risk measurement models. Journal of Derivatives, 3(2), 73-84. DOI
- Black, F. (1976). Studies of stock price volatility changes. Proceedings of the American Statistical Association, Business and Economic Statistics Section, 177-181.
- McNeil, A. J., Frey, R., & Embrechts, P. (2015). Quantitative Risk Management: Concepts, Techniques and Tools (2nd ed.). Princeton University Press.
- Sheppard, K. (2023). arch: Autoregressive conditional heteroskedasticity models in Python. GitHub.
MarketMaker.cc Team
Penyelidikan & Strategi Kuantitatif